private int?GetSeriesIdFromOtherCodes(SeriesSpecifier ss) { if (ss.ImdbCode.HasValue()) { FindContainer?x = Client.FindAsync(FindExternalSource.Imdb, ss.ImdbCode).Result; if (ss.Type == MediaConfiguration.MediaType.tv) { foreach (var show in x.TvResults) { return(show.Id); } } } if (ss.TvdbSeriesId > 0) { var x = Client.FindAsync(FindExternalSource.TvDb, ss.TvdbSeriesId.ToString()).Result; if (ss.Type == MediaConfiguration.MediaType.tv) { foreach (var show in x.TvResults) { return(show.Id); } } } return(null); }
public async Task <FindContainer> FindByExternalIdAsync( string externalId, FindExternalSource source, string language, CancellationToken cancellationToken) { var key = $"find-{source.ToString()}-{externalId.ToString(CultureInfo.InvariantCulture)}-{language}"; if (_memoryCache.TryGetValue(key, out FindContainer result)) { return(result); } await EnsureClientConfigAsync().ConfigureAwait(false); result = await _tmDbClient.FindAsync( source, externalId, TmdbUtils.NormalizeLanguage(language), cancellationToken).ConfigureAwait(false); if (result != null) { _memoryCache.Set(key, result, TimeSpan.FromHours(CacheDurationInHours)); } return(result); }
public SearchMovie GetByImdbId(string imdbId) { base.Track(); var data = tmdbClient.FindAsync(TMDbLib.Objects.Find.FindExternalSource.Imdb, imdbId).Result; return(data.MovieResults[0]); }
public async Task <List <SearchBase> > FindAsync(string query, string language, MediaType mediaType, CancellationToken cancellationToken) { bool searchByImdbId = Regex.IsMatch(query, @"tt\d{7}") || Regex.IsMatch(query, @"nm\d{7}"); List <SearchBase> results = new List <SearchBase>(); List <SearchMovie> movies = null; List <SearchTv> tvShows = null; List <SearchPerson> people = null; if (searchByImdbId) { var tmdbResult = await TMDbClient.FindAsync(FindExternalSource.Imdb, query, language, cancellationToken); movies = tmdbResult.MovieResults; tvShows = tmdbResult.TvResults; people = tmdbResult.PersonResults; } switch (mediaType) { case MediaType.Movie: if (!searchByImdbId) { movies = await SearchMovieAsync(query, language, 0, cancellationToken); } results.AddRange(movies.Where(x => x.Title == query).OrderByDescending(x => x.Popularity).Union(movies.Where(x => x.Title != query).OrderByDescending(x => x.Popularity))); break; case MediaType.Tv: if (!searchByImdbId) { tvShows = await SearchTvShowAsync(query, language, 0, cancellationToken); } results.AddRange(tvShows.Where(x => x.Name == query).OrderByDescending(x => x.Popularity).Union(tvShows.Where(x => x.Name != query).OrderByDescending(x => x.Popularity))); break; case MediaType.Person: if (!searchByImdbId) { people = await SearchPersonAsync(query, language, 0, cancellationToken); } results.AddRange(people.Where(x => x.Name == query).OrderByDescending(x => x.Popularity).Union(people.Where(x => x.Name != query).OrderByDescending(x => x.Popularity))); break; } return(results); }
public async Task TestFindImdbTvShowAsync() { FindContainer result = await TMDbClient.FindAsync(FindExternalSource.Imdb, IdHelper.ImdbBreakingBadId); await Verify(result); }
public async Task TestFindImdbPerson() { FindContainer result = await TMDbClient.FindAsync(FindExternalSource.Imdb, IdHelper.ImdbBruceWillis); await Verify(result); }
public async Task TestFindImdbMovie() { FindContainer result = await TMDbClient.FindAsync(FindExternalSource.Imdb, IdHelper.ImdbTerminatorId); await Verify(result); }