public SearchResultsAsync SearchAll(Func <SearchParamBuilder, SearchParamBuilder> paramBuilder, int pageSize = 20) { CheckIfLocaleSet(); return(SearchAll(paramBuilder(SearchParamBuilder.Create()).Build(), pageSize)); }
private static async Task <HashSet <StreamingProvider> > MovieCanBeStreamedOn(StreamingProvider[] providers, JustWatchClient justWatch, Movie movie) { var parameters = SearchParamBuilder.Create() .WithProviders(providers) .WithMonetizationTypes("flatrate") .WithContentTypes("movie") .WithPageSize(10) .WithQuery(movie.Title); if (movie.Year.HasValue) { parameters.WithReleaseYear(movie.Year.Value); } var results = await justWatch.Search(parameters); var tmdbId = movie.TmdbId?.ToString(); foreach (var result in results.Items) { // Check if IDs match or title is exact match if (!result.Title.Equals(movie.Title, StringComparison.InvariantCultureIgnoreCase) && !result.Scoring.Any(s => s.ProviderType.Equals("tmdb:id", StringComparison.InvariantCultureIgnoreCase) && s.Value.Equals(tmdbId, StringComparison.InvariantCultureIgnoreCase))) { // not a match continue; } return(result.Offers.Where(o => o.MonetizationType.Equals("flatrate", StringComparison.InvariantCultureIgnoreCase)) .Select(o => providers.FirstOrDefault(p => p.Id == o.ProviderId)).Where(p => p != null) .ToHashSet()); } return(new HashSet <StreamingProvider>()); }
public async Task <SearchResults> Search(Func <SearchParamBuilder, SearchParamBuilder> paramBuilder) { CheckIfLocaleSet(); return(await Search(paramBuilder(SearchParamBuilder.Create()).Build())); }