diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-09-06 00:21:23 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-09-06 00:21:23 -0400 |
| commit | 58eb50095676ec8bb4f7d4e1d0fc766dd3280305 (patch) | |
| tree | 9e183c21f39db3f826dcfecde24df6b16b0037ca /MediaBrowser.Providers | |
| parent | 195391aba0aee34d819b95cc60d271c0ab6b048e (diff) | |
fixes #914 - Add option to save metadata hidden
Diffstat (limited to 'MediaBrowser.Providers')
5 files changed, 23 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/FolderImages/DefaultImageProvider.cs b/MediaBrowser.Providers/FolderImages/DefaultImageProvider.cs index 0f7e6d10a7..ce6694edc1 100644 --- a/MediaBrowser.Providers/FolderImages/DefaultImageProvider.cs +++ b/MediaBrowser.Providers/FolderImages/DefaultImageProvider.cs @@ -7,12 +7,13 @@ using MediaBrowser.Model.Providers; using MediaBrowser.Providers.Genres; using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Providers.FolderImages { - public class DefaultImageProvider : IRemoteImageProvider + public class DefaultImageProvider : IRemoteImageProvider, IHasChangeMonitor { private readonly IHttpClient _httpClient; @@ -130,5 +131,10 @@ namespace MediaBrowser.Providers.FolderImages ResourcePool = GenreImageProvider.ImageDownloadResourcePool }); } + + public bool HasChanged(IHasMetadata item, IDirectoryService directoryService, DateTime date) + { + return GetSupportedImages(item).Any(i => !item.HasImage(i)); + } } } diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs index d7110c1ec5..1acc1738c6 100644 --- a/MediaBrowser.Providers/Manager/ImageSaver.cs +++ b/MediaBrowser.Providers/Manager/ImageSaver.cs @@ -216,6 +216,14 @@ namespace MediaBrowser.Providers.Manager { await source.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false); } + + if (_config.Configuration.SaveMetadataHidden) + { + file.Refresh(); + + // Add back the attribute + file.Attributes |= FileAttributes.Hidden; + } } finally { diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs index f48707582c..31796aeb09 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs @@ -501,8 +501,7 @@ namespace MediaBrowser.Providers.MediaInfo var downloadedLanguages = await new SubtitleDownloader(_logger, _subtitleManager) .DownloadSubtitles(video, - currentStreams, - externalSubtitleStreams, + currentStreams.Concat(externalSubtitleStreams).ToList(), subtitleOptions.SkipIfGraphicalSubtitlesPresent, subtitleOptions.SkipIfAudioTrackMatches, subtitleOptions.DownloadLanguages, diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs b/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs index 9b9883ac1a..6230e73475 100644 --- a/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs +++ b/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs @@ -25,8 +25,7 @@ namespace MediaBrowser.Providers.MediaInfo } public async Task<List<string>> DownloadSubtitles(Video video, - List<MediaStream> internalMediaStreams, - List<MediaStream> externalSubtitleStreams, + List<MediaStream> mediaStreams, bool skipIfGraphicalSubtitlesPresent, bool skipIfAudioTrackMatches, IEnumerable<string> languages, @@ -60,7 +59,7 @@ namespace MediaBrowser.Providers.MediaInfo { try { - var downloaded = await DownloadSubtitles(video, internalMediaStreams, externalSubtitleStreams, skipIfGraphicalSubtitlesPresent, skipIfAudioTrackMatches, lang, mediaType, cancellationToken) + var downloaded = await DownloadSubtitles(video, mediaStreams, skipIfGraphicalSubtitlesPresent, skipIfAudioTrackMatches, lang, mediaType, cancellationToken) .ConfigureAwait(false); if (downloaded) @@ -78,8 +77,7 @@ namespace MediaBrowser.Providers.MediaInfo } private async Task<bool> DownloadSubtitles(Video video, - List<MediaStream> internalMediaStreams, - IEnumerable<MediaStream> externalSubtitleStreams, + List<MediaStream> mediaStreams, bool skipIfGraphicalSubtitlesPresent, bool skipIfAudioTrackMatches, string language, @@ -87,12 +85,12 @@ namespace MediaBrowser.Providers.MediaInfo CancellationToken cancellationToken) { // There's already subtitles for this language - if (externalSubtitleStreams.Any(i => string.Equals(i.Language, language, StringComparison.OrdinalIgnoreCase))) + if (mediaStreams.Any(i => i.Type == MediaStreamType.Subtitle && i.IsTextSubtitleStream && string.Equals(i.Language, language, StringComparison.OrdinalIgnoreCase))) { return false; } - var audioStreams = internalMediaStreams.Where(i => i.Type == MediaStreamType.Audio).ToList(); + var audioStreams = mediaStreams.Where(i => i.Type == MediaStreamType.Audio).ToList(); var defaultAudioStreams = audioStreams.Where(i => i.IsDefault).ToList(); // If none are marked as default, just take a guess @@ -110,7 +108,7 @@ namespace MediaBrowser.Providers.MediaInfo // There's an internal subtitle stream for this language if (skipIfGraphicalSubtitlesPresent && - internalMediaStreams.Any(i => i.Type == MediaStreamType.Subtitle && !i.IsTextSubtitleStream && string.Equals(i.Language, language, StringComparison.OrdinalIgnoreCase))) + mediaStreams.Any(i => i.Type == MediaStreamType.Subtitle && !i.IsTextSubtitleStream && string.Equals(i.Language, language, StringComparison.OrdinalIgnoreCase))) { return false; } diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs b/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs index 63df3f50d5..d913bd076e 100644 --- a/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs +++ b/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs @@ -105,14 +105,10 @@ namespace MediaBrowser.Providers.MediaInfo { var mediaStreams = video.GetMediaSources(false).First().MediaStreams; - var externalSubtitleStreams = mediaStreams.Where(i => i.Type == MediaStreamType.Subtitle && i.IsExternal).ToList(); - var currentStreams = mediaStreams.Except(externalSubtitleStreams).ToList(); - var downloadedLanguages = await new SubtitleDownloader(_logger, _subtitleManager) .DownloadSubtitles(video, - currentStreams, - externalSubtitleStreams, + mediaStreams, options.SkipIfGraphicalSubtitlesPresent, options.SkipIfAudioTrackMatches, options.DownloadLanguages, |
