public async Task <IEnumerable <RemoteSubtitleInfo> > Search(SubtitleSearchRequest request, CancellationToken cancellationToken) { var prov = request.ProviderIds?.FirstOrDefault(p => p.Key.ToLower() == "imdb" || p.Key.ToLower() == "tmdb" || p.Key.ToLower() == "tvdb"); if (prov == null) { return(new List <RemoteSubtitleInfo>()); } if (request.ContentType == VideoContentType.Episode && (request.ParentIndexNumber == null || request.IndexNumber == null)) { return(new List <RemoteSubtitleInfo>()); } var title = request.ContentType == VideoContentType.Movie ? request.Name : request.SeriesName; var subtitle = new Providers.Subtitle(_httpClient, _logger, _appHost, _localizationManager, _jsonSerializer); var subtitleResult = await subtitle.Search( title, request.ProductionYear, request.Language, request.ContentType, prov.Value.Value, request.ParentIndexNumber ?? 0, request.IndexNumber ?? 0, cancellationToken); var subtitles = subtitleResult as RemoteSubtitleInfo[] ?? subtitleResult.ToArray(); _logger?.Debug($"Subf2m= result found={subtitles.Count()}"); return(subtitles); }
public Task <SubtitleResponse> GetSubtitles(string id, CancellationToken cancellationToken) { var subtitle = new Providers.Subtitle(_httpClient, _logger, _appHost, _localizationManager, _jsonSerializer); return(subtitle.Download(id, cancellationToken)); }