From a86b71899ec52c44ddc6c3018e8cc5e9d7ff4d62 Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Thu, 27 Dec 2018 18:27:57 -0500 Subject: Add GPL modules --- .../Providers/IProviderManager.cs | 178 +++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 MediaBrowser.Controller/Providers/IProviderManager.cs (limited to 'MediaBrowser.Controller/Providers/IProviderManager.cs') diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs new file mode 100644 index 0000000000..f1930ee2ff --- /dev/null +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -0,0 +1,178 @@ +using MediaBrowser.Common.Net; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Library; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Providers; +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading; +using System.Threading.Tasks; +using MediaBrowser.Model.Events; + +namespace MediaBrowser.Controller.Providers +{ + /// + /// Interface IProviderManager + /// + public interface IProviderManager + { + /// + /// Queues the refresh. + /// + void QueueRefresh(Guid itemId, MetadataRefreshOptions options, RefreshPriority priority); + + /// + /// Refreshes the full item. + /// + /// The item. + /// The options. + /// The cancellation token. + /// Task. + Task RefreshFullItem(BaseItem item, MetadataRefreshOptions options, CancellationToken cancellationToken); + + /// + /// Refreshes the metadata. + /// + /// The item. + /// The options. + /// The cancellation token. + /// Task. + Task RefreshSingleItem(BaseItem item, MetadataRefreshOptions options, CancellationToken cancellationToken); + + /// + /// Saves the image. + /// + /// The item. + /// The URL. + /// The type. + /// Index of the image. + /// The cancellation token. + /// Task. + Task SaveImage(BaseItem item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken); + + /// + /// Saves the image. + /// + /// The item. + /// The source. + /// Type of the MIME. + /// The type. + /// Index of the image. + /// The cancellation token. + /// Task. + Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken); + + /// + /// Saves the image. + /// + /// Task. + Task SaveImage(BaseItem item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken); + + /// + /// Adds the metadata providers. + /// + void AddParts(IEnumerable imageProviders, IEnumerable metadataServices, IEnumerable metadataProviders, + IEnumerable savers, + IEnumerable externalIds); + + /// + /// Gets the available remote images. + /// + /// The item. + /// The query. + /// The cancellation token. + /// Task{IEnumerable{RemoteImageInfo}}. + Task> GetAvailableRemoteImages(BaseItem item, RemoteImageQuery query, CancellationToken cancellationToken); + + /// + /// Gets the image providers. + /// + /// The item. + /// IEnumerable{ImageProviderInfo}. + IEnumerable GetRemoteImageProviderInfo(BaseItem item); + + /// + /// Gets all metadata plugins. + /// + /// IEnumerable{MetadataPlugin}. + MetadataPluginSummary[] GetAllMetadataPlugins(); + + /// + /// Gets the external urls. + /// + /// The item. + /// IEnumerable{ExternalUrl}. + IEnumerable GetExternalUrls(BaseItem item); + + /// + /// Gets the external identifier infos. + /// + /// The item. + /// IEnumerable{ExternalIdInfo}. + IEnumerable GetExternalIdInfos(IHasProviderIds item); + + /// + /// Saves the metadata. + /// + /// The item. + /// Type of the update. + /// Task. + void SaveMetadata(BaseItem item, ItemUpdateType updateType); + + /// + /// Saves the metadata. + /// + void SaveMetadata(BaseItem item, ItemUpdateType updateType, IEnumerable savers); + + /// + /// Gets the metadata options. + /// + /// The item. + /// MetadataOptions. + MetadataOptions GetMetadataOptions(BaseItem 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; + + /// + /// Gets the search image. + /// + /// Name of the provider. + /// The URL. + /// The cancellation token. + /// Task{HttpResponseInfo}. + Task GetSearchImage(string providerName, string url, CancellationToken cancellationToken); + + Dictionary GetRefreshQueue(); + + void OnRefreshStart(BaseItem item); + void OnRefreshProgress(BaseItem item, double progress); + void OnRefreshComplete(BaseItem item); + + double? GetRefreshProgress(Guid id); + + event EventHandler> RefreshStarted; + event EventHandler> RefreshCompleted; + event EventHandler>> RefreshProgress; + } + + public enum RefreshPriority + { + High = 0, + Normal = 1, + Low = 2 + } +} \ No newline at end of file -- cgit v1.2.3