From 13e4b2a6a76df957a85e444822c816b42f2bb60c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 19 Feb 2014 23:53:15 -0500 Subject: add search methods to remote metadata providers --- MediaBrowser.Controller/Entities/BaseItem.cs | 26 ---------------------- MediaBrowser.Controller/Entities/Folder.cs | 3 --- MediaBrowser.Controller/Library/DeleteOptions.cs | 8 +++++++ MediaBrowser.Controller/Library/ILibraryManager.cs | 16 +++++++++++-- .../MediaBrowser.Controller.csproj | 1 + .../Persistence/IItemRepository.cs | 7 ++++++ .../Providers/IProviderManager.cs | 14 ++++++++++++ .../Providers/IRemoteMetadataProvider.cs | 26 +++++++++++----------- 8 files changed, 57 insertions(+), 44 deletions(-) create mode 100644 MediaBrowser.Controller/Library/DeleteOptions.cs (limited to 'MediaBrowser.Controller') 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 } } - /// - /// Determine if we have changed vs the passed in copy - /// - /// The copy. - /// true if the specified copy has changed; otherwise, false. - /// - 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 /// The parent. /// BaseItem. BaseItem ResolvePath(FileSystemInfo fileInfo, Folder parent = null); - + /// /// Resolves a set of files into a list of BaseItem /// @@ -335,7 +335,19 @@ namespace MediaBrowser.Controller.Library /// Deletes the item. /// /// The item. + /// The options. /// Task. - 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 @@ + 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 @@ -95,6 +95,13 @@ namespace MediaBrowser.Controller.Persistence /// IEnumerable{ChildDefinition}. IEnumerable GetChildren(Guid parentId); + /// + /// Gets the type of the items of. + /// + /// The type. + /// IEnumerable{Guid}. + IEnumerable GetItemsOfType(Type type); + /// /// Saves the children. /// 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 /// The item. /// MetadataOptions. MetadataOptions GetMetadataOptions(IHasImages item); + + /// + /// Gets the remote search results. + /// + /// The type of the t item type. + /// The type of the t lookup type. + /// The search information. + /// The cancellation token. + /// Task{IEnumerable{SearchResult{``1}}}. + Task> GetRemoteSearchResults( + RemoteSearchQuery 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 : IMetadataProvider, IRemoteMetadataProvider + public interface IRemoteMetadataProvider : IMetadataProvider, IRemoteMetadataProvider, IRemoteSearchProvider where TItemType : IHasMetadata, IHasLookupInfo where TLookupInfoType : ItemLookupInfo, new() { Task> GetMetadata(TLookupInfoType info, CancellationToken cancellationToken); } - public interface IRemoteSearchProvider + public interface IRemoteSearchProvider : IMetadataProvider where TLookupInfoType : ItemLookupInfo { - string Name { get; } + Task> GetSearchResults(TLookupInfoType searchInfo, CancellationToken cancellationToken); - Task>> GetSearchResults(TLookupInfoType searchInfo, CancellationToken cancellationToken); + /// + /// Gets the image response. + /// + /// The URL. + /// The cancellation token. + /// Task{HttpResponseInfo}. + Task GetImageResponse(string url, CancellationToken cancellationToken); } - public class SearchResult - where T : ItemLookupInfo - { - public T Item { get; set; } - - public string ImageUrl { get; set; } - } - public class RemoteSearchQuery where T : ItemLookupInfo { -- cgit v1.2.3