diff options
Diffstat (limited to 'MediaBrowser.Providers/Subtitles/OpenSubtitleDownloader.cs')
| -rw-r--r-- | MediaBrowser.Providers/Subtitles/OpenSubtitleDownloader.cs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/MediaBrowser.Providers/Subtitles/OpenSubtitleDownloader.cs b/MediaBrowser.Providers/Subtitles/OpenSubtitleDownloader.cs index 6025493e79..7309513d63 100644 --- a/MediaBrowser.Providers/Subtitles/OpenSubtitleDownloader.cs +++ b/MediaBrowser.Providers/Subtitles/OpenSubtitleDownloader.cs @@ -1,5 +1,6 @@ using MediaBrowser.Common.Net; using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using MediaBrowser.Model.MediaInfo; using OpenSubtitlesHandler; @@ -37,13 +38,23 @@ namespace MediaBrowser.Providers.Subtitles public Task<SubtitleResponse> GetSubtitles(SubtitleRequest request, CancellationToken cancellationToken) { - return GetMediaSubtitleSubtitles(request, cancellationToken); + return GetSubtitlesInternal(request, cancellationToken); } - public async Task<SubtitleResponse> GetMediaSubtitleSubtitles(SubtitleRequest request, CancellationToken cancellationToken) + private async Task<SubtitleResponse> GetSubtitlesInternal(SubtitleRequest request, + CancellationToken cancellationToken) { var response = new SubtitleResponse(); + var imdbIdText = request.GetProviderId(MetadataProviders.Imdb); + long imdbId; + + if (string.IsNullOrWhiteSpace(imdbIdText) || + long.TryParse(imdbIdText.TrimStart('t'), NumberStyles.Any, _usCulture, out imdbId)) + { + return response; + } + switch (request.ContentType) { case SubtitleMediaType.Episode: @@ -102,7 +113,7 @@ namespace MediaBrowser.Providers.Subtitles x => request.ContentType == SubtitleMediaType.Episode ? int.Parse(x.SeriesSeason) == request.ParentIndexNumber && int.Parse(x.SeriesEpisode) == request.IndexNumber - : long.Parse(x.IDMovieImdb) == request.ImdbId; + : long.Parse(x.IDMovieImdb) == imdbId; var results = ((MethodResponseSubtitleSearch)result).Results; var bestResult = results.Where(x => x.SubBad == "0" && mediaFilter(x)) |
