aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-06 00:21:23 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-06 00:21:23 -0400
commit58eb50095676ec8bb4f7d4e1d0fc766dd3280305 (patch)
tree9e183c21f39db3f826dcfecde24df6b16b0037ca /MediaBrowser.Providers
parent195391aba0aee34d819b95cc60d271c0ab6b048e (diff)
fixes #914 - Add option to save metadata hidden
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/FolderImages/DefaultImageProvider.cs8
-rw-r--r--MediaBrowser.Providers/Manager/ImageSaver.cs8
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs3
-rw-r--r--MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs14
-rw-r--r--MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs6
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,