using MediaBrowser.Common.Net; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Providers; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Providers { public interface IRemoteMetadataProvider : IMetadataProvider { } public interface IRemoteMetadataProvider : IMetadataProvider, IRemoteMetadataProvider, IRemoteSearchProvider where TItemType : IHasMetadata, IHasLookupInfo where TLookupInfoType : ItemLookupInfo, new() { Task> GetMetadata(TLookupInfoType info, CancellationToken cancellationToken); } public interface IRemoteSearchProvider : IMetadataProvider { /// /// Gets the image response. /// /// The URL. /// The cancellation token. /// Task{HttpResponseInfo}. Task GetImageResponse(string url, CancellationToken cancellationToken); } public interface IRemoteSearchProvider : IRemoteSearchProvider where TLookupInfoType : ItemLookupInfo { Task> GetSearchResults(TLookupInfoType searchInfo, CancellationToken cancellationToken); } public class RemoteSearchQuery where T : ItemLookupInfo { public T SearchInfo { get; set; } /// /// If set will only search within the given provider /// public string SearchProviderName { get; set; } /// /// Gets or sets a value indicating whether [include disabled providers]. /// /// true if [include disabled providers]; otherwise, false. public bool IncludeDisabledProviders { get; set; } } }