public async Task <TvShowRequestBuilder> GetShowInfo(int id) { ShowInfo = await TvApi.ShowLookupByTheTvDbId(id); Results = await MovieDbApi.SearchTv(ShowInfo.name); foreach (TvSearchResult result in Results) { if (result.Name.Equals(ShowInfo.name, StringComparison.InvariantCultureIgnoreCase)) { TheMovieDbRecord = result; var showIds = await MovieDbApi.GetTvExternals(result.Id); ShowInfo.externals.imdb = showIds.imdb_id; BackdropPath = result.BackdropPath; break; } } DateTime.TryParse(ShowInfo.premiered, out var dt); FirstAir = dt; // For some reason the poster path is always http PosterPath = ShowInfo.image?.medium.ToHttpsUrl(); return(this); }
static void Main(string[] args) { // Written, 01.01.2020 Console.WriteLine("Testing PageResult\nMovie Search Result Test:"); PageResult <MovieSearchResult> moviePageResult = new PageResult <MovieSearchResult>(null) { searchPhrase = "the simpsons", methodName = "searchAsync", }; Task task = moviePageResult.nextPage(); task.Wait(); for (int i = 0; i < moviePageResult.results.Length; i++) { Console.WriteLine("{0}.) {1}", i + 1, moviePageResult.results[i].name); } Console.WriteLine("Multi Search Result Test:"); PageResult <MultiSearchResult> multiPageResult = new PageResult <MultiSearchResult>(new MultiSearchResult()) { searchPhrase = "the simpsons", methodName = "searchAsync" }; Task task1 = multiPageResult.nextPage(); task1.Wait(); int totalResults = 0; for (int i = 0; i < ApplicationInfomation.NUMBER_OF_ITEMS_PER_PAGE; i++) { MovieSearchResult movie = multiPageResult.accumulator.movies[i]; if (movie != null) { Console.WriteLine("\t[MOVIE] {0} ({1})", movie.name, movie.release_date); totalResults++; } else { TvSearchResult tvSeries = multiPageResult.accumulator.tvSeries[i]; if (tvSeries != null) { Console.WriteLine("\t[TV] {0} ({1})", tvSeries.name, tvSeries.release_date); totalResults++; } else { PeopleSearchResult person = multiPageResult.accumulator.people[i]; if (person != null) { Console.WriteLine("\t[PERSON] {0} ({1})", person.id, person.profile_path); totalResults++; } } } } Console.WriteLine("Total Results: {0}", totalResults); Console.ReadKey(); }
public static bool?GetStatus(TvSearchResult result, int?seasonNumber, Func <EpisodeRequest, bool> selector) { if (seasonNumber == null) { return(result.SeasonRequests.SelectMany(x => x.Episodes).All(selector)); } return(result.SeasonRequests.First(x => x.SeasonNumber == seasonNumber).Episodes.All(selector)); }
static async Task Main(string[] args) { // Written, 29.11.2019 Console.WriteLine("The Library v1.1 Multi-Search Test\nEnter Phrase and press Enter to search for movies, tv series and people as a multi-search request."); string searchPhrase = Console.ReadLine(); MultiSearchResult multiSearch = null; Console.WriteLine("\n\nMulti-Search Function\n-------------------------------------------"); try { multiSearch = await MultiSearchResult.searchAsync(searchPhrase, 1); } catch (AggregateException ex) { string exMessage = ex.Message; for (int i = 0; i < ex.InnerExceptions.Count; i++) { exMessage += String.Format("\n{0}.) {1}", i + 1, ex.InnerExceptions[i].Message); } Console.WriteLine("An error occured while performing multi-search function: {0}", exMessage); } int totalResults = 0; for (int i = 0; i < ApplicationInfomation.NUMBER_OF_ITEMS_PER_PAGE; i++) { MovieSearchResult movie = multiSearch.movies[i]; if (movie != null) { Console.WriteLine("\t[MOVIE] {0} ({1})", movie.name, movie.release_date); totalResults++; } else { TvSearchResult tvSeries = multiSearch.tvSeries[i]; if (tvSeries != null) { Console.WriteLine("\t[TV] {0} ({1})", tvSeries.name, tvSeries.release_date); totalResults++; } else { PeopleSearchResult person = multiSearch.people[i]; if (person != null) { Console.WriteLine("\t[PERSON] {0} ({1})", person.id, person.profile_path); totalResults++; } } } } Console.WriteLine("Total Results: {0}", totalResults); Console.WriteLine("\n\nPress R to restart or press any key to exit"); if (Console.ReadKey().Key == ConsoleKey.R) { Console.Clear(); await Main(null); } }
static async Task Main(string[] args) { // Written, 01.12.2019 Console.WriteLine("The Library v1.1 Review Test\nEnter Phrase and press Enter to search for movie & tv series reviews"); string searchPhrase = Console.ReadLine(); bool searchOK = true; MovieSearchResult[] movieSearchResults = null; Console.WriteLine("\n\nMovie Search Function\n-------------------------------------------"); try { movieSearchResults = await MovieSearchResult.searchAsync(searchPhrase, 1); for (int i = 0; i < movieSearchResults.GetLength(0); i++) { Console.WriteLine("{0}.) {1}", i + 1, movieSearchResults[i].name); } Console.WriteLine("Total Results: " + movieSearchResults.GetLength(0)); } catch { searchOK = false; } TvSearchResult[] tvSearchResults = null; Console.WriteLine("\n\nTv Search Function\n----------------------------------------------"); try { tvSearchResults = await TvSearchResult.searchAsync(searchPhrase, 1); for (int i = 0; i < tvSearchResults.GetLength(0); i++) { Console.WriteLine("{0}.) {1}", i + movieSearchResults.GetLength(0) + 1, tvSearchResults[i].name); } Console.WriteLine("Total Results: " + tvSearchResults.GetLength(0)); } catch { searchOK = false; } if (searchOK) { if (movieSearchResults.GetLength(0) + tvSearchResults.GetLength(0) > 0) { Console.WriteLine("Enter movie or tv series number to retrieve details."); if (Int32.TryParse(Console.ReadLine(), out int searchNum)) { try { MediaSearchResult result = null; if (searchNum <= movieSearchResults.GetLength(0)) { result = movieSearchResults[searchNum - 1]; } else { int tvSearchNum = searchNum - movieSearchResults.GetLength(0); if (tvSearchNum <= tvSearchResults.GetLength(0)) { result = tvSearchResults[tvSearchNum - 1]; } else { throw new NullReferenceException("result is null."); } } if (result is MovieSearchResult) { Console.WriteLine("[MOVIE] Selected, {0}\nRetrieving movie reviews for ID: {1}..", result.name, result.id); await(result as MovieSearchResult).retrieveReviewsAsync(); } else { if (result is TvSearchResult) { Console.WriteLine("[TV] Selected, {0}\nRetrieving tv series reviews for ID: {1}..", result.name, result.id); await(result as TvSeriesResult).retrieveReviewsAsync(); } } if (result.reviews.GetLength(0) < 1) { Console.WriteLine("\nNo reviews recorded"); } else { for (int i = 0; i < result.reviews.GetLength(0); i++) { Review review = result.reviews[i]; Console.WriteLine("\n{0}.) {1} by {2}\n{3}\n...See [{4}]", i + 1, review.reviewID, review.author, review.content, review.url); } } } catch (NullReferenceException) { Console.WriteLine("Error: NullReferenceException. Probably number out of range."); } } else { Console.WriteLine("\nError: number expected"); } } else { Console.WriteLine("\nNo results found"); } } Console.WriteLine("\n\nPress R to restart or press any key to exit"); if (Console.ReadKey().Key == ConsoleKey.R) { Console.Clear(); await Main(null); } }
// Written, 24.11.2019 static async Task Main(string[] args) { // Written, 25.11.2019 Console.WriteLine("The Library v1.1 Search Test\nEnter Phrase and press Enter to search for movies and tv series individually "); string searchPhrase = Console.ReadLine(); bool searchOK = true; MovieSearchResult[] movieSearchResults = null; Console.WriteLine("\n\nMovie Search Function\n-------------------------------------------"); try { movieSearchResults = await MovieSearchResult.searchAsync(searchPhrase, 1); for (int i = 0; i < movieSearchResults.GetLength(0); i++) { Console.WriteLine("{0}.) {1}", i + 1, movieSearchResults[i].name); } Console.WriteLine("Total Results: " + movieSearchResults.GetLength(0)); } catch { searchOK = false; } TvSearchResult[] tvSearchResults = null; Console.WriteLine("\n\nTv Search Function\n----------------------------------------------"); try { tvSearchResults = await TvSearchResult.searchAsync(searchPhrase, 1); for (int i = 0; i < tvSearchResults.GetLength(0); i++) { Console.WriteLine("{0}.) {1}", i + movieSearchResults.GetLength(0) + 1, tvSearchResults[i].name); } Console.WriteLine("Total Results: " + tvSearchResults.GetLength(0)); } catch { searchOK = false; } if (searchOK) { if (movieSearchResults.GetLength(0) + tvSearchResults.GetLength(0) > 0) { Console.WriteLine("Enter movie or tv series number to retrieve details."); if (Int32.TryParse(Console.ReadLine(), out int searchNum)) { try { MediaSearchResult result = null; if (searchNum <= movieSearchResults.GetLength(0)) { result = movieSearchResults[searchNum - 1]; } else { int tvSearchNum = searchNum - movieSearchResults.GetLength(0); if (tvSearchNum <= tvSearchResults.GetLength(0)) { result = tvSearchResults[tvSearchNum - 1]; } else { throw new NullReferenceException("result is null."); } } if (result is TvSearchResult) { Console.WriteLine("[TV] Selected, {0}\nRetrieving tv series details for ID: {1}..", (result as TvSearchResult).name, result.id); TvSeriesResult tvResult = await TvSeriesResult.retrieveDetailsAsync(result.id); Console.WriteLine("\nDETAILS RETRIEVED:\nName: {0}\nFirst Aired: {1}\nOverview: {2}\nRating: {3}\nSeasons #: {4}\nEpisodes #: {5}\nAvg ep runtime: {6}minutes\nType: {7}\nStatus: {8}", tvResult.name, tvResult.release_date, tvResult.overview, tvResult.vote_average, tvResult.number_of_seasons, tvResult.number_of_episodes, tvResult.episode_run_time[0], tvResult.type, tvResult.status); } else { if (result is MovieSearchResult) { Console.WriteLine("[MOVIE] Selected, {0}\nRetrieving movie details for ID: {1}..", (result as MovieSearchResult).name, result.id); MovieResult movieResult = await MovieResult.retrieveDetailsAsync(result.id); Console.WriteLine("\nDETAILS RETRIEVED:\nName: {0}\nRelease Date: {1}\nOverview: {2}\nRating: {3}", movieResult.name, movieResult.release_date, movieResult.overview, movieResult.vote_average); } } } catch (NullReferenceException) { Console.WriteLine("Error: NullReferenceException. Probably number out of range."); } } else { Console.WriteLine("\nError: number expected"); } } else { Console.WriteLine("\nNo results found"); } } Console.WriteLine("\n\nPress R to restart or press any key to exit"); if (Console.ReadKey().Key == ConsoleKey.R) { Console.Clear(); await Main(null); } }