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 --- .../Providers/IProviderManager.cs | 14 ++++++++++++ .../Providers/IRemoteMetadataProvider.cs | 26 +++++++++++----------- 2 files changed, 27 insertions(+), 13 deletions(-) (limited to 'MediaBrowser.Controller/Providers') diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index eb4d3d9a65..ab3bf96cfd 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 2684900793..f00a22a3a4 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