diff options
Diffstat (limited to 'MediaBrowser.Providers/ImagesByName')
8 files changed, 0 insertions, 1154 deletions
diff --git a/MediaBrowser.Providers/ImagesByName/GameGenreImageProvider.cs b/MediaBrowser.Providers/ImagesByName/GameGenreImageProvider.cs deleted file mode 100644 index a0dbb83dc4..0000000000 --- a/MediaBrowser.Providers/ImagesByName/GameGenreImageProvider.cs +++ /dev/null @@ -1,160 +0,0 @@ -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Net; -using MediaBrowser.Model.Providers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class GameGenreImageProvider : BaseMetadataProvider - { - private readonly IProviderManager _providerManager; - private readonly SemaphoreSlim _resourcePool = new SemaphoreSlim(5, 5); - - public GameGenreImageProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager) - : base(logManager, configurationManager) - { - _providerManager = providerManager; - } - - public override bool Supports(BaseItem item) - { - return item is GameGenre; - } - - public override bool RequiresInternet - { - get - { - return true; - } - } - - public override ItemUpdateType ItemUpdateType - { - get - { - return ItemUpdateType.ImageUpdate; - } - } - - protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - return false; - } - - // Try again periodically in case new images were added - if ((DateTime.UtcNow - providerInfo.LastRefreshed).TotalDays > 7) - { - return true; - } - - return base.NeedsRefreshInternal(item, providerInfo); - } - - protected override bool RefreshOnVersionChange - { - get - { - return true; - } - } - - protected override string ProviderVersion - { - get - { - return "8"; - } - } - - public override async Task<bool> FetchAsync(BaseItem item, bool force, BaseProviderInfo providerInfo, CancellationToken cancellationToken) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - var images = await _providerManager.GetAvailableRemoteImages(item, cancellationToken, GameGenresManualImageProvider.ProviderName).ConfigureAwait(false); - - await DownloadImages(item, images.ToList(), cancellationToken).ConfigureAwait(false); - - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - private async Task DownloadImages(BaseItem item, List<RemoteImageInfo> images, CancellationToken cancellationToken) - { - if (!item.LockedFields.Contains(MetadataFields.Images)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Primary)) - { - await SaveImage(item, images, ImageType.Primary, cancellationToken).ConfigureAwait(false); - } - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Thumb)) - { - await SaveImage(item, images, ImageType.Thumb, cancellationToken).ConfigureAwait(false); - } - } - - if (!item.LockedFields.Contains(MetadataFields.Backdrops)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (item.BackdropImagePaths.Count == 0) - { - foreach (var image in images.Where(i => i.Type == ImageType.Backdrop)) - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, ImageType.Backdrop, null, cancellationToken) - .ConfigureAwait(false); - - break; - } - } - } - } - - - private async Task SaveImage(BaseItem item, IEnumerable<RemoteImageInfo> images, ImageType type, CancellationToken cancellationToken) - { - foreach (var image in images.Where(i => i.Type == type)) - { - try - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, type, null, cancellationToken).ConfigureAwait(false); - break; - } - catch (HttpException ex) - { - // Sometimes fanart has bad url's in their xml - if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound) - { - continue; - } - break; - } - } - } - - public override MetadataProviderPriority Priority - { - get { return MetadataProviderPriority.Third; } - } - } -} diff --git a/MediaBrowser.Providers/ImagesByName/GameGenresManualImageProvider.cs b/MediaBrowser.Providers/ImagesByName/GameGenresManualImageProvider.cs deleted file mode 100644 index 8207bb0428..0000000000 --- a/MediaBrowser.Providers/ImagesByName/GameGenresManualImageProvider.cs +++ /dev/null @@ -1,128 +0,0 @@ -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Providers; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class GameGenresManualImageProvider : IImageProvider - { - private readonly IServerConfigurationManager _config; - private readonly IHttpClient _httpClient; - private readonly IFileSystem _fileSystem; - - private readonly SemaphoreSlim _listResourcePool = new SemaphoreSlim(1, 1); - - public GameGenresManualImageProvider(IServerConfigurationManager config, IHttpClient httpClient, IFileSystem fileSystem) - { - _config = config; - _httpClient = httpClient; - _fileSystem = fileSystem; - } - - public string Name - { - get { return ProviderName; } - } - - public static string ProviderName - { - get { return "Media Browser"; } - } - - public bool Supports(IHasImages item) - { - return item is GameGenre; - } - - public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, ImageType imageType, CancellationToken cancellationToken) - { - return GetImages(item, imageType == ImageType.Primary, imageType == ImageType.Thumb, cancellationToken); - } - - public Task<IEnumerable<RemoteImageInfo>> GetAllImages(IHasImages item, CancellationToken cancellationToken) - { - return GetImages(item, true, true, cancellationToken); - } - - private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, bool posters, bool thumbs, CancellationToken cancellationToken) - { - var list = new List<RemoteImageInfo>(); - - if (posters) - { - var posterPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotegamegenreposters.txt"); - - await EnsurePosterList(posterPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, posterPath, ImageType.Primary, "folder")); - } - - cancellationToken.ThrowIfCancellationRequested(); - - if (thumbs) - { - var thumbsPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotegamegenrethumbs.txt"); - - await EnsureThumbsList(thumbsPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, thumbsPath, ImageType.Thumb, "thumb")); - } - - return list.Where(i => i != null); - } - - private RemoteImageInfo GetImage(IHasImages item, string filename, ImageType type, string remoteFilename) - { - var list = ImageUtils.GetAvailableImages(filename); - - var match = ImageUtils.FindMatch(item, list); - - if (!string.IsNullOrEmpty(match)) - { - var url = GetUrl(match, remoteFilename); - - return new RemoteImageInfo - { - ProviderName = Name, - Type = type, - Url = url - }; - } - - return null; - } - - private string GetUrl(string image, string filename) - { - return string.Format("https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/gamegenres/{0}/{1}.jpg", image, filename); - } - - private Task EnsureThumbsList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/gamegenrethumbs.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - private Task EnsurePosterList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/gamegenreposters.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - public int Priority - { - get { return 0; } - } - } -} diff --git a/MediaBrowser.Providers/ImagesByName/GenreImageProvider.cs b/MediaBrowser.Providers/ImagesByName/GenreImageProvider.cs deleted file mode 100644 index 5744ef5fad..0000000000 --- a/MediaBrowser.Providers/ImagesByName/GenreImageProvider.cs +++ /dev/null @@ -1,160 +0,0 @@ -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Net; -using MediaBrowser.Model.Providers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class GenreImageProvider : BaseMetadataProvider - { - private readonly IProviderManager _providerManager; - private readonly SemaphoreSlim _resourcePool = new SemaphoreSlim(5, 5); - - public GenreImageProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager) - : base(logManager, configurationManager) - { - _providerManager = providerManager; - } - - public override bool Supports(BaseItem item) - { - return item is Genre; - } - - public override bool RequiresInternet - { - get - { - return true; - } - } - - public override ItemUpdateType ItemUpdateType - { - get - { - return ItemUpdateType.ImageUpdate; - } - } - - protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - return false; - } - - // Try again periodically in case new images were added - if ((DateTime.UtcNow - providerInfo.LastRefreshed).TotalDays > 7) - { - return true; - } - - return base.NeedsRefreshInternal(item, providerInfo); - } - - protected override bool RefreshOnVersionChange - { - get - { - return true; - } - } - - protected override string ProviderVersion - { - get - { - return "8"; - } - } - - public override async Task<bool> FetchAsync(BaseItem item, bool force, BaseProviderInfo providerInfo, CancellationToken cancellationToken) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - var images = await _providerManager.GetAvailableRemoteImages(item, cancellationToken, GenresManualImageProvider.ProviderName).ConfigureAwait(false); - - await DownloadImages(item, images.ToList(), cancellationToken).ConfigureAwait(false); - - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - private async Task DownloadImages(BaseItem item, List<RemoteImageInfo> images, CancellationToken cancellationToken) - { - if (!item.LockedFields.Contains(MetadataFields.Images)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Primary)) - { - await SaveImage(item, images, ImageType.Primary, cancellationToken).ConfigureAwait(false); - } - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Thumb)) - { - await SaveImage(item, images, ImageType.Thumb, cancellationToken).ConfigureAwait(false); - } - } - - if (!item.LockedFields.Contains(MetadataFields.Backdrops)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (item.BackdropImagePaths.Count == 0) - { - foreach (var image in images.Where(i => i.Type == ImageType.Backdrop)) - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, ImageType.Backdrop, null, cancellationToken) - .ConfigureAwait(false); - - break; - } - } - } - } - - - private async Task SaveImage(BaseItem item, IEnumerable<RemoteImageInfo> images, ImageType type, CancellationToken cancellationToken) - { - foreach (var image in images.Where(i => i.Type == type)) - { - try - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, type, null, cancellationToken).ConfigureAwait(false); - break; - } - catch (HttpException ex) - { - // Sometimes fanart has bad url's in their xml - if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound) - { - continue; - } - break; - } - } - } - - public override MetadataProviderPriority Priority - { - get { return MetadataProviderPriority.Third; } - } - } -} diff --git a/MediaBrowser.Providers/ImagesByName/GenresManualImageProvider.cs b/MediaBrowser.Providers/ImagesByName/GenresManualImageProvider.cs deleted file mode 100644 index 469e133d05..0000000000 --- a/MediaBrowser.Providers/ImagesByName/GenresManualImageProvider.cs +++ /dev/null @@ -1,128 +0,0 @@ -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Providers; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class GenresManualImageProvider : IImageProvider - { - private readonly IServerConfigurationManager _config; - private readonly IHttpClient _httpClient; - private readonly IFileSystem _fileSystem; - - private readonly SemaphoreSlim _listResourcePool = new SemaphoreSlim(1, 1); - - public GenresManualImageProvider(IServerConfigurationManager config, IHttpClient httpClient, IFileSystem fileSystem) - { - _config = config; - _httpClient = httpClient; - _fileSystem = fileSystem; - } - - public string Name - { - get { return ProviderName; } - } - - public static string ProviderName - { - get { return "Media Browser"; } - } - - public bool Supports(IHasImages item) - { - return item is Genre; - } - - public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, ImageType imageType, CancellationToken cancellationToken) - { - return GetImages(item, imageType == ImageType.Primary, imageType == ImageType.Thumb, cancellationToken); - } - - public Task<IEnumerable<RemoteImageInfo>> GetAllImages(IHasImages item, CancellationToken cancellationToken) - { - return GetImages(item, true, true, cancellationToken); - } - - private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, bool posters, bool thumbs, CancellationToken cancellationToken) - { - var list = new List<RemoteImageInfo>(); - - if (posters) - { - var posterPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotegenreposters.txt"); - - await EnsurePosterList(posterPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, posterPath, ImageType.Primary, "folder")); - } - - cancellationToken.ThrowIfCancellationRequested(); - - if (thumbs) - { - var thumbsPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotegenrethumbs.txt"); - - await EnsureThumbsList(thumbsPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, thumbsPath, ImageType.Thumb, "thumb")); - } - - return list.Where(i => i != null); - } - - private RemoteImageInfo GetImage(IHasImages item, string filename, ImageType type, string remoteFilename) - { - var list = ImageUtils.GetAvailableImages(filename); - - var match = ImageUtils.FindMatch(item, list); - - if (!string.IsNullOrEmpty(match)) - { - var url = GetUrl(match, remoteFilename); - - return new RemoteImageInfo - { - ProviderName = Name, - Type = type, - Url = url - }; - } - - return null; - } - - private string GetUrl(string image, string filename) - { - return string.Format("https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/genres/{0}/{1}.jpg", image, filename); - } - - private Task EnsureThumbsList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/genrethumbs.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - private Task EnsurePosterList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/genreposters.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - public int Priority - { - get { return 0; } - } - } -} diff --git a/MediaBrowser.Providers/ImagesByName/MusicGenreImageProvider.cs b/MediaBrowser.Providers/ImagesByName/MusicGenreImageProvider.cs deleted file mode 100644 index 5b05a7b631..0000000000 --- a/MediaBrowser.Providers/ImagesByName/MusicGenreImageProvider.cs +++ /dev/null @@ -1,161 +0,0 @@ -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Net; -using MediaBrowser.Model.Providers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class MusicGenreImageProvider : BaseMetadataProvider - { - private readonly IProviderManager _providerManager; - private readonly SemaphoreSlim _resourcePool = new SemaphoreSlim(5, 5); - - public MusicGenreImageProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager) - : base(logManager, configurationManager) - { - _providerManager = providerManager; - } - - public override bool Supports(BaseItem item) - { - return item is MusicGenre; - } - - public override bool RequiresInternet - { - get - { - return true; - } - } - - public override ItemUpdateType ItemUpdateType - { - get - { - return ItemUpdateType.ImageUpdate; - } - } - - protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - return false; - } - - // Try again periodically in case new images were added - if ((DateTime.UtcNow - providerInfo.LastRefreshed).TotalDays > 7) - { - return true; - } - - return base.NeedsRefreshInternal(item, providerInfo); - } - - protected override bool RefreshOnVersionChange - { - get - { - return true; - } - } - - protected override string ProviderVersion - { - get - { - return "8"; - } - } - - public override async Task<bool> FetchAsync(BaseItem item, bool force, BaseProviderInfo providerInfo, CancellationToken cancellationToken) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - var images = await _providerManager.GetAvailableRemoteImages(item, cancellationToken, MusicGenresManualImageProvider.ProviderName).ConfigureAwait(false); - - await DownloadImages(item, images.ToList(), cancellationToken).ConfigureAwait(false); - - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - private async Task DownloadImages(BaseItem item, List<RemoteImageInfo> images, CancellationToken cancellationToken) - { - if (!item.LockedFields.Contains(MetadataFields.Images)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Primary)) - { - await SaveImage(item, images, ImageType.Primary, cancellationToken).ConfigureAwait(false); - } - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Thumb)) - { - await SaveImage(item, images, ImageType.Thumb, cancellationToken).ConfigureAwait(false); - } - } - - if (!item.LockedFields.Contains(MetadataFields.Backdrops)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (item.BackdropImagePaths.Count == 0) - { - foreach (var image in images.Where(i => i.Type == ImageType.Backdrop)) - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, ImageType.Backdrop, null, cancellationToken) - .ConfigureAwait(false); - - break; - } - } - } - } - - - private async Task SaveImage(BaseItem item, IEnumerable<RemoteImageInfo> images, ImageType type, CancellationToken cancellationToken) - { - foreach (var image in images.Where(i => i.Type == type)) - { - try - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, type, null, cancellationToken).ConfigureAwait(false); - break; - } - catch (HttpException ex) - { - // Sometimes fanart has bad url's in their xml - if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound) - { - continue; - } - break; - } - } - } - - public override MetadataProviderPriority Priority - { - get { return MetadataProviderPriority.Third; } - } - } -} diff --git a/MediaBrowser.Providers/ImagesByName/MusicGenresManualImageProvider.cs b/MediaBrowser.Providers/ImagesByName/MusicGenresManualImageProvider.cs deleted file mode 100644 index f21e867d1a..0000000000 --- a/MediaBrowser.Providers/ImagesByName/MusicGenresManualImageProvider.cs +++ /dev/null @@ -1,129 +0,0 @@ -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Providers; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class MusicGenresManualImageProvider : IImageProvider - { - private readonly IServerConfigurationManager _config; - private readonly IHttpClient _httpClient; - private readonly IFileSystem _fileSystem; - - private readonly SemaphoreSlim _listResourcePool = new SemaphoreSlim(1, 1); - - public MusicGenresManualImageProvider(IServerConfigurationManager config, IHttpClient httpClient, IFileSystem fileSystem) - { - _config = config; - _httpClient = httpClient; - _fileSystem = fileSystem; - } - - public string Name - { - get { return ProviderName; } - } - - public static string ProviderName - { - get { return "Media Browser"; } - } - - public bool Supports(IHasImages item) - { - return item is MusicGenre; - } - - public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, ImageType imageType, CancellationToken cancellationToken) - { - return GetImages(item, imageType == ImageType.Primary, imageType == ImageType.Thumb, cancellationToken); - } - - public Task<IEnumerable<RemoteImageInfo>> GetAllImages(IHasImages item, CancellationToken cancellationToken) - { - return GetImages(item, true, true, cancellationToken); - } - - private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, bool posters, bool thumbs, CancellationToken cancellationToken) - { - var list = new List<RemoteImageInfo>(); - - if (posters) - { - var posterPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotemusicgenreposters.txt"); - - await EnsurePosterList(posterPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, posterPath, ImageType.Primary, "folder")); - } - - cancellationToken.ThrowIfCancellationRequested(); - - if (thumbs) - { - var thumbsPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotemusicgenrethumbs.txt"); - - await EnsureThumbsList(thumbsPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, thumbsPath, ImageType.Thumb, "thumb")); - } - - return list.Where(i => i != null); - } - - private RemoteImageInfo GetImage(IHasImages item, string filename, ImageType type, string remoteFilename) - { - var list = ImageUtils.GetAvailableImages(filename); - - var match = ImageUtils.FindMatch(item, list); - - if (!string.IsNullOrEmpty(match)) - { - var url = GetUrl(match, remoteFilename); - - return new RemoteImageInfo - { - ProviderName = Name, - Type = type, - Url = url - }; - } - - return null; - } - - private string GetUrl(string image, string filename) - { - return string.Format("https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/musicgenres/{0}/{1}.jpg", image, filename); - } - - private Task EnsureThumbsList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/musicgenrethumbs.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - private Task EnsurePosterList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/musicgenreposters.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - public int Priority - { - get { return 0; } - } - } -} diff --git a/MediaBrowser.Providers/ImagesByName/StudioImageProvider.cs b/MediaBrowser.Providers/ImagesByName/StudioImageProvider.cs deleted file mode 100644 index 3035b60143..0000000000 --- a/MediaBrowser.Providers/ImagesByName/StudioImageProvider.cs +++ /dev/null @@ -1,160 +0,0 @@ -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Net; -using MediaBrowser.Model.Providers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class StudioImageProvider : BaseMetadataProvider - { - private readonly IProviderManager _providerManager; - private readonly SemaphoreSlim _resourcePool = new SemaphoreSlim(5, 5); - - public StudioImageProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager) - : base(logManager, configurationManager) - { - _providerManager = providerManager; - } - - public override bool Supports(BaseItem item) - { - return item is Studio; - } - - public override bool RequiresInternet - { - get - { - return true; - } - } - - public override ItemUpdateType ItemUpdateType - { - get - { - return ItemUpdateType.ImageUpdate; - } - } - - protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - return false; - } - - // Try again periodically in case new images were added - if ((DateTime.UtcNow - providerInfo.LastRefreshed).TotalDays > 7) - { - return true; - } - - return base.NeedsRefreshInternal(item, providerInfo); - } - - protected override bool RefreshOnVersionChange - { - get - { - return true; - } - } - - protected override string ProviderVersion - { - get - { - return "6"; - } - } - - public override async Task<bool> FetchAsync(BaseItem item, bool force, BaseProviderInfo providerInfo, CancellationToken cancellationToken) - { - if (item.HasImage(ImageType.Primary) && item.HasImage(ImageType.Thumb)) - { - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - var images = await _providerManager.GetAvailableRemoteImages(item, cancellationToken, StudiosManualImageProvider.ProviderName).ConfigureAwait(false); - - await DownloadImages(item, images.ToList(), cancellationToken).ConfigureAwait(false); - - SetLastRefreshed(item, DateTime.UtcNow, providerInfo); - return true; - } - - private async Task DownloadImages(BaseItem item, List<RemoteImageInfo> images, CancellationToken cancellationToken) - { - if (!item.LockedFields.Contains(MetadataFields.Images)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Primary)) - { - await SaveImage(item, images, ImageType.Primary, cancellationToken).ConfigureAwait(false); - } - cancellationToken.ThrowIfCancellationRequested(); - - if (!item.HasImage(ImageType.Thumb)) - { - await SaveImage(item, images, ImageType.Thumb, cancellationToken).ConfigureAwait(false); - } - } - - if (!item.LockedFields.Contains(MetadataFields.Backdrops)) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (item.BackdropImagePaths.Count == 0) - { - foreach (var image in images.Where(i => i.Type == ImageType.Backdrop)) - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, ImageType.Backdrop, null, cancellationToken) - .ConfigureAwait(false); - - break; - } - } - } - } - - - private async Task SaveImage(BaseItem item, IEnumerable<RemoteImageInfo> images, ImageType type, CancellationToken cancellationToken) - { - foreach (var image in images.Where(i => i.Type == type)) - { - try - { - await _providerManager.SaveImage(item, image.Url, _resourcePool, type, null, cancellationToken).ConfigureAwait(false); - break; - } - catch (HttpException ex) - { - // Sometimes fanart has bad url's in their xml - if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound) - { - continue; - } - break; - } - } - } - - public override MetadataProviderPriority Priority - { - get { return MetadataProviderPriority.Third; } - } - } -} diff --git a/MediaBrowser.Providers/ImagesByName/StudiosManualImageProvider.cs b/MediaBrowser.Providers/ImagesByName/StudiosManualImageProvider.cs deleted file mode 100644 index 062f08020f..0000000000 --- a/MediaBrowser.Providers/ImagesByName/StudiosManualImageProvider.cs +++ /dev/null @@ -1,128 +0,0 @@ -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Providers; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Providers.ImagesByName -{ - public class StudiosManualImageProvider : IImageProvider - { - private readonly IServerConfigurationManager _config; - private readonly IHttpClient _httpClient; - private readonly IFileSystem _fileSystem; - - private readonly SemaphoreSlim _listResourcePool = new SemaphoreSlim(1, 1); - - public StudiosManualImageProvider(IServerConfigurationManager config, IHttpClient httpClient, IFileSystem fileSystem) - { - _config = config; - _httpClient = httpClient; - _fileSystem = fileSystem; - } - - public string Name - { - get { return ProviderName; } - } - - public static string ProviderName - { - get { return "Media Browser"; } - } - - public bool Supports(IHasImages item) - { - return item is Studio; - } - - public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, ImageType imageType, CancellationToken cancellationToken) - { - return GetImages(item, imageType == ImageType.Primary, imageType == ImageType.Thumb, cancellationToken); - } - - public Task<IEnumerable<RemoteImageInfo>> GetAllImages(IHasImages item, CancellationToken cancellationToken) - { - return GetImages(item, true, true, cancellationToken); - } - - private async Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, bool posters, bool thumbs, CancellationToken cancellationToken) - { - var list = new List<RemoteImageInfo>(); - - if (posters) - { - var posterPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotestudioposters.txt"); - - await EnsurePosterList(posterPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, posterPath, ImageType.Primary, "folder")); - } - - cancellationToken.ThrowIfCancellationRequested(); - - if (thumbs) - { - var thumbsPath = Path.Combine(_config.ApplicationPaths.CachePath, "imagesbyname", "remotestudiothumbs.txt"); - - await EnsureThumbsList(thumbsPath, cancellationToken).ConfigureAwait(false); - - list.Add(GetImage(item, thumbsPath, ImageType.Thumb, "thumb")); - } - - return list.Where(i => i != null); - } - - private RemoteImageInfo GetImage(IHasImages item, string filename, ImageType type, string remoteFilename) - { - var list = ImageUtils.GetAvailableImages(filename); - - var match = ImageUtils.FindMatch(item, list); - - if (!string.IsNullOrEmpty(match)) - { - var url = GetUrl(match, remoteFilename); - - return new RemoteImageInfo - { - ProviderName = Name, - Type = type, - Url = url - }; - } - - return null; - } - - private string GetUrl(string image, string filename) - { - return string.Format("https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/studios/{0}/{1}.jpg", image, filename); - } - - private Task EnsureThumbsList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/studiothumbs.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - private Task EnsurePosterList(string file, CancellationToken cancellationToken) - { - const string url = "https://raw.github.com/MediaBrowser/MediaBrowser.Resources/master/images/imagesbyname/studioposters.txt"; - - return ImageUtils.EnsureList(url, file, _httpClient, _fileSystem, _listResourcePool, cancellationToken); - } - - public int Priority - { - get { return 0; } - } - } -} |
