aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-09-09 23:47:58 -0400
committerGitHub <noreply@github.com>2017-09-09 23:47:58 -0400
commitdbf23fbd126a141c5c2cc05215c328d153b8255c (patch)
tree051101085376bd10a7c7be29532dcd4ae4e1b60d /MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
parent926d976e84b62fd939811221d92fca45c96c02de (diff)
parent9440fdc719880ba9b8a7ecf5991cff98774bf49c (diff)
Merge pull request #2875 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs')
-rw-r--r--MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs53
1 files changed, 29 insertions, 24 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs b/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
index 79e89a110..7c6b55d3a 100644
--- a/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
+++ b/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
@@ -33,15 +33,39 @@ namespace MediaBrowser.Providers.MediaInfo
IEnumerable<string> languages,
CancellationToken cancellationToken)
{
+ var downloadedLanguages = new List<string>();
+
+ foreach (var lang in languages)
+ {
+ var downloaded = await DownloadSubtitles(video, mediaStreams, skipIfEmbeddedSubtitlesPresent,
+ skipIfAudioTrackMatches, requirePerfectMatch, lang, cancellationToken).ConfigureAwait(false);
+
+ if (downloaded)
+ {
+ downloadedLanguages.Add(lang);
+ }
+ }
+
+ return downloadedLanguages;
+ }
+
+ public Task<bool> DownloadSubtitles(Video video,
+ List<MediaStream> mediaStreams,
+ bool skipIfEmbeddedSubtitlesPresent,
+ bool skipIfAudioTrackMatches,
+ bool requirePerfectMatch,
+ string lang,
+ CancellationToken cancellationToken)
+ {
if (video.LocationType != LocationType.FileSystem ||
video.VideoType != VideoType.VideoFile)
{
- return new List<string>();
+ return Task.FromResult(false);
}
if (!video.IsCompleteMedia)
{
- return new List<string>();
+ return Task.FromResult(false);
}
VideoContentType mediaType;
@@ -57,30 +81,11 @@ namespace MediaBrowser.Providers.MediaInfo
else
{
// These are the only supported types
- return new List<string>();
+ return Task.FromResult(false);
}
- var downloadedLanguages = new List<string>();
-
- foreach (var lang in languages)
- {
- try
- {
- var downloaded = await DownloadSubtitles(video, mediaStreams, skipIfEmbeddedSubtitlesPresent, skipIfAudioTrackMatches, requirePerfectMatch, lang, mediaType, cancellationToken)
- .ConfigureAwait(false);
-
- if (downloaded)
- {
- downloadedLanguages.Add(lang);
- }
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error downloading subtitles", ex);
- }
- }
-
- return downloadedLanguages;
+ return DownloadSubtitles(video, mediaStreams, skipIfEmbeddedSubtitlesPresent, skipIfAudioTrackMatches,
+ requirePerfectMatch, lang, mediaType, cancellationToken);
}
private async Task<bool> DownloadSubtitles(Video video,