Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public Task <SubtitleResponse> GetSubtitles(string id, CancellationToken cancellationToken)
        {
            var subtitle = new Providers.Subtitle(_httpClient, _logger, _appHost, _localizationManager, _jsonSerializer);

            return(subtitle.Download(id, cancellationToken));
        }