internal static IMDbMovie MineFilmDetailsFromAdditionalPages (bool showProgress, IMDbFilmDetails filmDetails, IMDbMovie movie, string movieUrl) { if (!showProgress) return movie; string creditsUrl = movieUrl + "fullcredits"; string longOverviewUrl = movieUrl + "plotsummary"; string goofUrl = movieUrl + "goofs"; string triviaUrl = movieUrl + "trivia"; string quotesUrl = movieUrl + "quotes"; MainImportingEngine.ThisProgress.Progress (MainImportingEngine.CurrentProgress, "Getting actors..."); //filmDetails.GetActorsUsingRegex(ref movie, creditsUrl); MainImportingEngine.ThisProgress.Progress (MainImportingEngine.CurrentProgress, "Getting plot summary..."); //filmDetails.GetLongOverview(ref movie, longOverviewUrl); //MainImportingEngine.ThisProgress.Progress // (MainImportingEngine.CurrentProgress, "Getting trivia..."); //filmDetails.GetTrivia(ref movie, triviaUrl); //MainImportingEngine.ThisProgress.Progress // (MainImportingEngine.CurrentProgress, "Getting goofs..."); //filmDetails.GetGoofs(ref movie, goofUrl); //MainImportingEngine.ThisProgress.Progress // (MainImportingEngine.CurrentProgress, "Getting quotes..."); //filmDetails.GetQuotes(ref movie, quotesUrl); //TODO: Get these additional IMDb film details //Get Stars //Get Awards //Get Credits //Get Plot Keywords //Get Official Websites //Get Production Country //Get Language //Get Box Office Budget //Get Box Office Gross //Get Color //Get Aspect Ratio //Get Connections //Get Soundtracks //Get User Review return movie; }
private static IMDbMovie MineFilmDetailsFromMainPage (IMDbFilmDetails filmDetails, string trimmedHtml, IMDbMovie movie ) { IMDbRegEx imDbRegEx = new IMDbRegEx(); imDbRegEx.SetRegExPatterns(); IMDbFilmDetails.MineProductionYearUsingRegex(movie, trimmedHtml, imDbRegEx); //IMDbFilmDetails.MineProductionYearUsingXpath(movie, trimmedHtml); IMDbFilmDetails.GetActorsUsingXpath(movie, trimmedHtml); IMDbFilmDetails.GetReleaseDate(movie, trimmedHtml, imDbRegEx); IMDbFilmDetails.GetTagline(movie, trimmedHtml, imDbRegEx); IMDbFilmDetails.GetRuntime(movie, trimmedHtml, imDbRegEx); IMDbFilmDetails.GetRating(movie, trimmedHtml, imDbRegEx); IMDbFilmDetails.ExtractRatingDescription(movie, trimmedHtml, imDbRegEx); IMDbFilmDetails.GetReview(movie, trimmedHtml, imDbRegEx); IMDbFilmDetails.GetStudio(movie, trimmedHtml, imDbRegEx); //IMDbFilmDetails.MineOverviewUsingRegex(movie, trimmedHtml, imDbRegEx); IMDbFilmDetails.MineOverviewUsingXpath(movie, trimmedHtml); //filmDetails.MineDirectorUsingRegex(ref movie, trimmedHtml); filmDetails.MineDirectorUsingXpath(ref movie, trimmedHtml); //filmDetails.MineWriterUsingRegex(ref movie, trimmedHtml); filmDetails.MineWriterUsingXpath(ref movie, trimmedHtml); filmDetails.GetGenres(ref movie, trimmedHtml); return movie; }
//TODO: Remove Debugger logs for all movie details. //TODO: Add indivindual settings for each extra film detail type. internal static IIMDbMovie DownloadMovieDetailsFromIMDb (string imdbID, bool showProgress ) { var movie = new IMDbMovie(); var filmDetails = new IMDbFilmDetails(); var webClient = new WebClient(); try { var movieUrl = IMDbMovieDetailsDownloaderHelpers .ConstructMovieUrl(imdbID); var html = IMDbMovieDetailsDownloaderHelpers .DownloadBaseTitleHtml (movieUrl, webClient); if (IMDbMovieDetailsDownloaderHelpers .CheckForValidHtmlData(html)) return null; //TODO: IMDb Movie Details Extraction does not work if the main html page trimming is activated. The html trimming regex should be fixed. //string trimmedHTML = CleanHtmlPage(html); //if (String.IsNullOrEmpty(trimmedHTML)) // trimmedHTML = html; string trimmedHtml = html; //Debugger.LogMessageToFile("Base Title html: " + trimmedHtml); movie.Title = IMDbMovieDetailsDownloaderHelpers .ExtractFilmTitle (imdbID, trimmedHtml); movie = MineFilmDetails (showProgress, trimmedHtml, movieUrl, movie, filmDetails); } catch (Exception e) { Debugger.LogMessageToFile ("The GetMovieInfo() method returned an exception: " + Environment.NewLine + e ); } return movie; }
private static IMDbMovie MineFilmDetails (bool showProgress, string trimmedHtml, string movieUrl, IMDbMovie movie, IMDbFilmDetails filmDetails) { if (showProgress) { MainImportingEngine.ThisProgress.Progress (MainImportingEngine.CurrentProgress, "Downloading details from IMDb for '" + movie.Title + "'..."); } movie = MineFilmDetailsFromMainPage (filmDetails, trimmedHtml, movie); movie = IMDbMovieDetailsDownloaderHelpers .MineFilmDetailsFromAdditionalPages (showProgress, filmDetails, movie, movieUrl); return movie; }