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); } }
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"); } }
/// <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);