aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-19 23:53:15 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-19 23:53:15 -0500
commit13e4b2a6a76df957a85e444822c816b42f2bb60c (patch)
tree35140e9b5447937ad70744c6605b9c890cb342a2 /MediaBrowser.Controller
parent120c8bcbb9381086bf9171eae1ba2df9b3c11bde (diff)
add search methods to remote metadata providers
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs26
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs3
-rw-r--r--MediaBrowser.Controller/Library/DeleteOptions.cs8
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs16
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Controller/Persistence/IItemRepository.cs7
-rw-r--r--MediaBrowser.Controller/Providers/IProviderManager.cs14
-rw-r--r--MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs26
8 files changed, 57 insertions, 44 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 224907a72..cf79148f6 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -912,32 +912,6 @@ namespace MediaBrowser.Controller.Entities
}
}
- /// <summary>
- /// Determine if we have changed vs the passed in copy
- /// </summary>
- /// <param name="copy">The copy.</param>
- /// <returns><c>true</c> if the specified copy has changed; otherwise, <c>false</c>.</returns>
- /// <exception cref="System.ArgumentNullException"></exception>
- public virtual bool HasChanged(BaseItem copy)
- {
- if (copy == null)
- {
- throw new ArgumentNullException();
- }
- if (IsInMixedFolder != copy.IsInMixedFolder)
- {
- Logger.Debug(Name + " changed due to different value for IsInMixedFolder.");
- return true;
- }
-
- var changed = copy.DateModified != DateModified;
- if (changed)
- {
- Logger.Debug(Name + " changed - original creation: " + DateCreated + " new creation: " + copy.DateCreated + " original modified: " + DateModified + " new modified: " + copy.DateModified);
- }
- return changed;
- }
-
public virtual string GetClientTypeName()
{
return GetType().Name;
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index c08a2ddf2..ead899873 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -181,8 +181,6 @@ namespace MediaBrowser.Controller.Entities
item.Parent = null;
- LibraryManager.ReportItemRemoved(item);
-
return ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken);
}
@@ -220,7 +218,6 @@ namespace MediaBrowser.Controller.Entities
{LocalizedStrings.Instance.GetString("GenreDispPref")},
{LocalizedStrings.Instance.GetString("DirectorDispPref")},
{LocalizedStrings.Instance.GetString("YearDispPref")},
- //{LocalizedStrings.Instance.GetString("OfficialRatingDispPref"), null},
{LocalizedStrings.Instance.GetString("StudioDispPref")}
};
diff --git a/MediaBrowser.Controller/Library/DeleteOptions.cs b/MediaBrowser.Controller/Library/DeleteOptions.cs
new file mode 100644
index 000000000..81ed90899
--- /dev/null
+++ b/MediaBrowser.Controller/Library/DeleteOptions.cs
@@ -0,0 +1,8 @@
+
+namespace MediaBrowser.Controller.Library
+{
+ public class DeleteOptions
+ {
+ public bool DeleteFileLocation { get; set; }
+ }
+}
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index a34cfa78e..0b1ac9137 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -41,7 +41,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="parent">The parent.</param>
/// <returns>BaseItem.</returns>
BaseItem ResolvePath(FileSystemInfo fileInfo, Folder parent = null);
-
+
/// <summary>
/// Resolves a set of files into a list of BaseItem
/// </summary>
@@ -335,7 +335,19 @@ namespace MediaBrowser.Controller.Library
/// Deletes the item.
/// </summary>
/// <param name="item">The item.</param>
+ /// <param name="options">The options.</param>
/// <returns>Task.</returns>
- Task DeleteItem(BaseItem item);
+ Task DeleteItem(BaseItem item, DeleteOptions options);
+ }
+
+ public static class LibraryManagerExtensions
+ {
+ public static Task DeleteItem(this ILibraryManager manager, BaseItem item)
+ {
+ return manager.DeleteItem(item, new DeleteOptions
+ {
+ DeleteFileLocation = true
+ });
+ }
}
} \ No newline at end of file
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 32f2d151d..c88164897 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -111,6 +111,7 @@
<Compile Include="Entities\IHasAwards.cs" />
<Compile Include="Entities\Photo.cs" />
<Compile Include="FileOrganization\IFileOrganizationService.cs" />
+ <Compile Include="Library\DeleteOptions.cs" />
<Compile Include="Library\ILibraryPostScanTask.cs" />
<Compile Include="Library\IMetadataSaver.cs" />
<Compile Include="Library\ItemUpdateType.cs" />
diff --git a/MediaBrowser.Controller/Persistence/IItemRepository.cs b/MediaBrowser.Controller/Persistence/IItemRepository.cs
index cc4314256..02bca739f 100644
--- a/MediaBrowser.Controller/Persistence/IItemRepository.cs
+++ b/MediaBrowser.Controller/Persistence/IItemRepository.cs
@@ -96,6 +96,13 @@ namespace MediaBrowser.Controller.Persistence
IEnumerable<Guid> GetChildren(Guid parentId);
/// <summary>
+ /// Gets the type of the items of.
+ /// </summary>
+ /// <param name="type">The type.</param>
+ /// <returns>IEnumerable{Guid}.</returns>
+ IEnumerable<BaseItem> GetItemsOfType(Type type);
+
+ /// <summary>
/// Saves the children.
/// </summary>
/// <param name="parentId">The parent id.</param>
diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs
index eb4d3d9a6..ab3bf96cf 100644
--- a/MediaBrowser.Controller/Providers/IProviderManager.cs
+++ b/MediaBrowser.Controller/Providers/IProviderManager.cs
@@ -96,5 +96,19 @@ namespace MediaBrowser.Controller.Providers
/// <param name="item">The item.</param>
/// <returns>MetadataOptions.</returns>
MetadataOptions GetMetadataOptions(IHasImages item);
+
+ /// <summary>
+ /// Gets the remote search results.
+ /// </summary>
+ /// <typeparam name="TItemType">The type of the t item type.</typeparam>
+ /// <typeparam name="TLookupType">The type of the t lookup type.</typeparam>
+ /// <param name="searchInfo">The search information.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{IEnumerable{SearchResult{``1}}}.</returns>
+ Task<IEnumerable<RemoteSearchResult>> GetRemoteSearchResults<TItemType, TLookupType>(
+ RemoteSearchQuery<TLookupType> searchInfo,
+ CancellationToken cancellationToken)
+ where TItemType : BaseItem, new()
+ where TLookupType : ItemLookupInfo;
}
} \ No newline at end of file
diff --git a/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs b/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs
index 268490079..f00a22a3a 100644
--- a/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs
@@ -1,4 +1,6 @@
-using MediaBrowser.Controller.Entities;
+using MediaBrowser.Common.Net;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Providers;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -9,29 +11,27 @@ namespace MediaBrowser.Controller.Providers
{
}
- public interface IRemoteMetadataProvider<TItemType, TLookupInfoType> : IMetadataProvider<TItemType>, IRemoteMetadataProvider
+ public interface IRemoteMetadataProvider<TItemType, in TLookupInfoType> : IMetadataProvider<TItemType>, IRemoteMetadataProvider, IRemoteSearchProvider<TLookupInfoType>
where TItemType : IHasMetadata, IHasLookupInfo<TLookupInfoType>
where TLookupInfoType : ItemLookupInfo, new()
{
Task<MetadataResult<TItemType>> GetMetadata(TLookupInfoType info, CancellationToken cancellationToken);
}
- public interface IRemoteSearchProvider<TLookupInfoType>
+ public interface IRemoteSearchProvider<in TLookupInfoType> : IMetadataProvider
where TLookupInfoType : ItemLookupInfo
{
- string Name { get; }
+ Task<IEnumerable<RemoteSearchResult>> GetSearchResults(TLookupInfoType searchInfo, CancellationToken cancellationToken);
- Task<IEnumerable<SearchResult<TLookupInfoType>>> GetSearchResults(TLookupInfoType searchInfo, CancellationToken cancellationToken);
+ /// <summary>
+ /// Gets the image response.
+ /// </summary>
+ /// <param name="url">The URL.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{HttpResponseInfo}.</returns>
+ Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken);
}
- public class SearchResult<T>
- where T : ItemLookupInfo
- {
- public T Item { get; set; }
-
- public string ImageUrl { get; set; }
- }
-
public class RemoteSearchQuery<T>
where T : ItemLookupInfo
{