Esempio n. 1
0
        public NowPlayingResults GetRegionPageResults(string region, int page)
        {
            var           client  = new RestClient("https://api.themoviedb.org/3/movie/now_playing");
            var           request = new RestRequest(Method.GET);
            bool          done    = true;
            IRestResponse response;


            request.AddParameter("region", region, ParameterType.QueryString);
            request.AddParameter("page", page, ParameterType.QueryString);
            request.AddParameter("language", "en-US", ParameterType.QueryString);
            request.AddParameter("api_key", token, ParameterType.QueryString);


            request.AddParameter("undefined", "{}", ParameterType.RequestBody);
            do
            {
                done = true;
                Console.WriteLine("Grabbing now playing page = " + page);
                response = client.Execute(request);

                if (response.StatusCode == (System.Net.HttpStatusCode) 429)
                {
                    Console.WriteLine("Waiting");
                    int waitTime = Int32.Parse(response.Headers[2].Value.ToString());
                    System.Threading.Thread.Sleep((waitTime + 2) * 1000);
                    done = false;
                }
            } while (!done);

            NowPlayingResults p = JsonConvert.DeserializeObject <NowPlayingResults>(response.Content);

            return(p);
        }
Esempio n. 2
0
        public FullResponse GetNowPlaying()
        {
            List <NowPlayingResults> resultSet = new List <NowPlayingResults>();

            foreach (string region in regions)
            {
                int i           = 1;
                int total_pages = 0;
                do
                {
                    NowPlayingResults npr = GetRegionPageResults(region, i);
                    npr.region  = region;
                    total_pages = npr.total_pages;

                    resultSet.Add(npr);

                    i++;
                } while (i <= total_pages);
            }

            var movieIDs = (from result in resultSet
                            from movie in result.results
                            select movie.id).Distinct().ToList();

            Dictionary <int, MovieDetails>   movieDetails = new Dictionary <int, MovieDetails>();
            Dictionary <int, MovieCredits>   movieCredits = new Dictionary <int, MovieCredits>();
            Dictionary <int, MovieReviews[]> movieReviews = new Dictionary <int, MovieReviews[]>();

            foreach (int movieID in movieIDs)
            {
                movieDetails[movieID] = getDetailsForMovieID(movieID);
                movieCredits[movieID] = getCreditsForMovieID(movieID);
                movieReviews[movieID] = getReviewsForMovieID(movieID);
            }

            FullResponse fr = new FullResponse
            {
                nowPlaying = resultSet,
                details    = movieDetails,
                credits    = movieCredits,
                reviews    = movieReviews
            };

            return(fr);
        }