using MediaBrowser.Common.Net; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Serialization; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Providers.Omdb { public class OmdbItemProvider : ICustomMetadataProvider, ICustomMetadataProvider, ICustomMetadataProvider { private readonly IJsonSerializer _jsonSerializer; private readonly IHttpClient _httpClient; public OmdbItemProvider(IJsonSerializer jsonSerializer, IHttpClient httpClient) { _jsonSerializer = jsonSerializer; _httpClient = httpClient; } public string Name { get { return "IMDb via The Open Movie Database"; } } public Task FetchAsync(Series item, IDirectoryService directoryService, CancellationToken cancellationToken) { return new OmdbProvider(_jsonSerializer, _httpClient).Fetch(item, cancellationToken); } public Task FetchAsync(Movie item, IDirectoryService directoryService, CancellationToken cancellationToken) { return new OmdbProvider(_jsonSerializer, _httpClient).Fetch(item, cancellationToken); } private readonly Task _cachedTask = Task.FromResult(ItemUpdateType.None); public Task FetchAsync(Trailer item, IDirectoryService directoryService, CancellationToken cancellationToken) { if (item.IsLocalTrailer) { return _cachedTask; } return new OmdbProvider(_jsonSerializer, _httpClient).Fetch(item, cancellationToken); } } }