diff options
Diffstat (limited to 'MediaBrowser.Providers/TV/RemoteSeasonProvider.cs')
| -rw-r--r-- | MediaBrowser.Providers/TV/RemoteSeasonProvider.cs | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/MediaBrowser.Providers/TV/RemoteSeasonProvider.cs b/MediaBrowser.Providers/TV/RemoteSeasonProvider.cs index a5408c8de..1f702a2d2 100644 --- a/MediaBrowser.Providers/TV/RemoteSeasonProvider.cs +++ b/MediaBrowser.Providers/TV/RemoteSeasonProvider.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Configuration; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; @@ -23,6 +24,7 @@ namespace MediaBrowser.Providers.TV /// The _provider manager /// </summary> private readonly IProviderManager _providerManager; + private readonly IFileSystem _fileSystem; /// <summary> /// Initializes a new instance of the <see cref="RemoteSeasonProvider"/> class. @@ -31,10 +33,11 @@ namespace MediaBrowser.Providers.TV /// <param name="configurationManager">The configuration manager.</param> /// <param name="providerManager">The provider manager.</param> /// <exception cref="System.ArgumentNullException">httpClient</exception> - public RemoteSeasonProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager) + public RemoteSeasonProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager, IFileSystem fileSystem) : base(logManager, configurationManager) { _providerManager = providerManager; + _fileSystem = fileSystem; } /// <summary> @@ -115,7 +118,7 @@ namespace MediaBrowser.Providers.TV if (imagesFileInfo.Exists) { - return imagesFileInfo.LastWriteTimeUtc > providerInfo.LastRefreshed; + return _fileSystem.GetLastWriteTimeUtc(imagesFileInfo) > providerInfo.LastRefreshed; } } return false; @@ -275,6 +278,7 @@ namespace MediaBrowser.Providers.TV string url = null; int? bannerSeason = null; string resolution = null; + string language = null; while (reader.Read()) { @@ -282,6 +286,12 @@ namespace MediaBrowser.Providers.TV { switch (reader.Name) { + case "Language": + { + language = reader.ReadElementContentAsString() ?? string.Empty; + break; + } + case "BannerType": { bannerType = reader.ReadElementContentAsString() ?? string.Empty; @@ -333,10 +343,21 @@ namespace MediaBrowser.Providers.TV } else if (string.Equals(bannerType2, "seasonwide", StringComparison.OrdinalIgnoreCase)) { - // Just grab the first - if (string.IsNullOrWhiteSpace(data.Banner)) + if (string.IsNullOrWhiteSpace(language) || string.Equals(language, "en", StringComparison.OrdinalIgnoreCase)) { - data.Banner = url; + // Just grab the first + if (string.IsNullOrWhiteSpace(data.Banner)) + { + data.Banner = url; + } + } + else if (string.Equals(language, ConfigurationManager.Configuration.PreferredMetadataLanguage, StringComparison.OrdinalIgnoreCase)) + { + // Just grab the first + if (string.IsNullOrWhiteSpace(data.LanguageBanner)) + { + data.LanguageBanner = url; + } } } } |
