Beispiel #1
0
        private static List <IMDBResult> GetNewestMovies(HomePageType movieType = HomePageType.MoviesInTheaters)
        {
            List <IMDBResult> imdbSimpleModel = new List <IMDBResult>();

            try
            {
                HtmlWeb      web = new HtmlWeb();
                HtmlDocument doc = web.Load($"https://www.imdb.com/movies-in-theaters/");

                var allMovieNodes = doc.DocumentNode.SelectNodes("//*[contains(@class,'list_item')]");

                foreach (var node in allMovieNodes)
                {
                    var model      = new IMDBResult();
                    var smallImage = node.SelectNodes(".//img").FirstOrDefault().Attributes["src"].Value;
                    SetImages(model, smallImage);
                    var title = node.SelectNodes(".//*[contains(@class,'overview-top')]").FirstOrDefault().SelectSingleNode(".//a").Attributes["title"].Value;
                    model.Title = title;
                    model.Title = Regex.Replace(model.Title, @"\((\d{4})\)$", "").TrimEnd();
                    model.Id    = $"tt{Regex.Match(node.SelectSingleNode(".//div[contains(@class, 'image')]").SelectSingleNode(".//a").Attributes["href"].Value, @"\d+").Value}";
                    model.Year  = int.Parse(Regex.Match(title, @"\b\d{4}\b").Value);
                    imdbSimpleModel.Add(model);
                }

                return(imdbSimpleModel);
            }
            catch (Exception ex)
            {
                //Crashes.TrackError(ex);
                return(imdbSimpleModel);
            }
        }
Beispiel #2
0
        private static List <IMDBResult> GetResultSet(IMDBTypes SpecialType, HomePageType homePage = HomePageType.MoviesInTheaters)
        {
            switch (SpecialType)
            {
            case IMDBTypes.ComingSoon: return(GetMoviesComingSoon());

            case IMDBTypes.MostPopularMovies: return(GetMostPopularMovies());

            case IMDBTypes.MostPopularTV: return(GetMostPopularTVShows());

            case IMDBTypes.NewDVDReleases: return(GetNewDVDReleases());

            case IMDBTypes.Newest: return(GetNewestMovies(homePage));

            case IMDBTypes.TopRatedMovies: return(GetTopRatedMovies());

            case IMDBTypes.TopRatedTV: return(GetTopRatedTVShows());

            default: throw new NotImplementedException($"{SpecialType} has not been implemented");
            }
        }
Beispiel #3
0
 /// <summary>
 /// HomePageType is only used when returning IMDBTypes.Newest
 /// </summary>
 /// <param name="SpecialType"></param>
 /// <param name="homePage"></param>
 /// <returns></returns>
 public List <IMDBResult> GetSpecialItems(IMDBTypes SpecialType, HomePageType homePage) => GetResultSet(SpecialType, homePage);