Esempio n. 1
0
        public SearchResultsAsync SearchAll(Func <SearchParamBuilder, SearchParamBuilder> paramBuilder,
                                            int pageSize = 20)
        {
            CheckIfLocaleSet();

            return(SearchAll(paramBuilder(SearchParamBuilder.Create()).Build(), pageSize));
        }
Esempio n. 2
0
        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>());
        }
Esempio n. 3
0
        public async Task <SearchResults> Search(SearchParamBuilder paramBuilder)
        {
            CheckIfLocaleSet();

            return(await Search(paramBuilder.Build()));
        }
Esempio n. 4
0
        public async Task <SearchResults> Search(Func <SearchParamBuilder, SearchParamBuilder> paramBuilder)
        {
            CheckIfLocaleSet();

            return(await Search(paramBuilder(SearchParamBuilder.Create()).Build()));
        }