private async Task updateMediaPosterAsync(ListView inSender, MediaSearchResult inMedia, string inOverrideImageAddressPrefix = null) { // Written, 21.09.2020 if (inMedia?.poster_path is null) { this.imageLoading_label.Text = "No poster present.."; } else { if (inMedia.poster_image is null) { this.imageLoading_label.Text = "Loading poster.."; try { await inMedia.retrieveMediaImages(inOverrideImageAddressPrefix); } catch { this.imageLoading_label.Text = "Error loading poster"; return; } } } //if (inMedia == (inSender?.SelectedItems[0].Tag)) this.updatePosterImageDisplay(); this.imageLoading_label.Text = string.Empty; }
/// <summary> /// Updates the search media actions. /// </summary> private async Task updateSearchMediaActionsAsync() { // Written, 17.12.2019 if (this.searchResults_listView.SelectedItems.Count == 1) { MediaSearchResult media = this.searchResults_listView.SelectedItems[0].Tag as MediaSearchResult; this.search_selectedMedia = media; this.actions_groupBox.Text = "Actions: " + media.name; this.mediaPoster_pictureBox.Image = media.poster_image; this.search_viewDetails_button.Enabled = true; this.search_viewDetails_button.Visible = true; this.favoriteMediaItem_button.Enabled = true; this.favoriteMediaItem_button.Visible = true; this.watchMediaItem_button.Enabled = true; this.watchMediaItem_button.Visible = true; if (media is MovieSearchResult) { this.yts_button.Enabled = true; this.yts_button.Visible = true; this.yts_button.Text = "Search YTS"; } else { this.yts_button.Enabled = false; this.yts_button.Visible = false; this.yts_button.Text = "yts_button"; } List <IdResultObject> favoritedMedia = new List <IdResultObject>(); favoritedMedia.AddRange(this.viewAccount.favoritedMovies); favoritedMedia.AddRange(this.viewAccount.favoritedTvSeries); bool favorited = favoritedMedia.Any(_fm => _fm.id == media.id); this.favoriteMediaItem_button.Text = !favorited ? "favorite" : "unfavorite"; List <IdResultObject> watchlistMedia = new List <IdResultObject>(); watchlistMedia.AddRange(this.viewAccount.watchlistMovies); watchlistMedia.AddRange(this.viewAccount.watchlistTvSeries); bool watchlisted = watchlistMedia.Any(_wm => _wm.id == media.id); this.watchMediaItem_button.Text = !watchlisted ? "watch" : "unwatch"; this.search_viewDetails_button.Text = "View Details: " + media.name; await this.updateMediaPosterAsync(this.searchResults_listView, media); } else { this.actions_groupBox.Text = "Actions"; this.search_viewDetails_button.Enabled = false; this.search_viewDetails_button.Visible = false; this.favoriteMediaItem_button.Enabled = false; this.favoriteMediaItem_button.Visible = false; this.watchMediaItem_button.Enabled = false; this.watchMediaItem_button.Visible = false; this.yts_button.Enabled = false; this.yts_button.Visible = false; this.search_viewDetails_button.Text = "View Details"; this.mediaPoster_pictureBox.Image = null; this.imageLoading_label.Text = string.Empty; } }
public void ApiTest() { ParsedMedia parsedMedia = _filenameParser.Parse("The.Secret.Life.of.Walter.Mitty.2013.1080p.BluRay.x264.YIFY"); MediaSearchResult searchResult = _apiSearchService.SearchMultiByQuery(parsedMedia.Title)[0]; MediaDetail apiResult = _apiSearchService.GetItemDetail(searchResult.MediaType, searchResult.Id); Console.WriteLine(apiResult); }
/// <summary> /// Initializes a new isntance of this. and sets the media. /// </summary> /// <param name="inMedia">Sets the media to this.</param> public ViewReviewsDialog(MediaSearchResult inMedia) { InitializeComponent(); // Written, 21.01.2020 this.media = inMedia; this.selectedReview = this.media.reviews[0]; this.init(); }
/// <summary> /// Initializes a new instance of this. /// </summary> /// <param name="inMedia">The media to view.</param> public ViewMediaDialog(MediaSearchResult inMedia, ViewAccount inViewAccount) { // Written, 17.12.2019 InitializeComponent(); this.media = inMedia; this.viewAccount = inViewAccount; this.Text = String.Format("View Details - {0}", this.media.name); }
/// <summary> /// updates the favorite media actions. /// </summary> /// <param name="inSender">Listview sender.</param> /// <param name="inMediaType">The media type that is to be updated.</param> private async Task updateHomeMediaActionsAsync(ListView inSender, MediaSearchResult inMedia = null) { // Written, 24.12.2019 if (inSender?.SelectedItems.Count == 1 || inMedia != null) { MediaSearchResult media = (inSender?.SelectedItems[0].Tag as MediaSearchResult) ?? inMedia; if (media != null) { this.home_selectedMedia = media; this.actions_groupBox.Text = "Actions: " + media.name; this.mediaPoster_pictureBox.Image = media.poster_image; this.home_viewDetails_button.Enabled = true; this.home_viewDetails_button.Visible = true; this.movieRefresh_button.Enabled = true; this.movieRefresh_button.Visible = true; this.tvRefresh_button.Enabled = true; this.tvRefresh_button.Visible = true; if (media is MovieSearchResult) { this.yts_button.Enabled = true; this.yts_button.Visible = true; this.yts_button.Text = "Search YTS"; } else { this.yts_button.Enabled = false; this.yts_button.Visible = false; this.yts_button.Text = "yts_button"; } this.home_viewDetails_button.Text = "View Details: " + media.name; await this.updateMediaPosterAsync(inSender, media); } } else { this.actions_groupBox.Text = "Actions"; this.home_viewDetails_button.Enabled = false; this.home_viewDetails_button.Visible = false; this.movieRefresh_button.Enabled = false; this.movieRefresh_button.Visible = false; this.tvRefresh_button.Enabled = false; this.tvRefresh_button.Visible = false; this.yts_button.Enabled = false; this.yts_button.Visible = false; this.home_viewDetails_button.Text = "View Details"; this.mediaPoster_pictureBox.Image = null; this.imageLoading_label.Text = string.Empty; } }
public static List <MediaControl> GetMediaSearchResultAsMediaControls(MediaSearchResult mediaSearchResult) { var mediaControls = new List <MediaControl>(); Page httpHandler = (Page)HttpContext.Current.Handler; foreach (ParsnipData.Media.Media temp in mediaSearchResult.Media) { MediaControl myMediaControl = (MediaControl)httpHandler.LoadControl("~/Custom_Controls/Media/MediaControl.ascx"); myMediaControl.MySearch = mediaSearchResult.SearchTerms; myMediaControl.MyMedia = temp; mediaControls.Add(myMediaControl); } return(mediaControls.ToList()); }
private async void search_button_Click(object sender, EventArgs e) { // Written, 10.12.2019 this.searchInput_textBox.Enabled = false; this.search_button.Enabled = false; this.search_button.Text = "Searching.."; if (!String.IsNullOrEmpty(this.searchInput_textBox.Text)) { this.preUpdateLists(this.searchResults_listView); await this.updateSearchMediaActionsAsync(); MultiSearchResult multiSearch = await MultiSearchResult.searchAsync(this.searchInput_textBox.Text, 1); List <ListViewItem> items = new List <ListViewItem>(); for (int i = 0; i < ApplicationInfomation.NUMBER_OF_ITEMS_PER_PAGE; i++) { MediaSearchResult media = multiSearch.movie_results[i]; if (media == null) { media = multiSearch.tv_results[i]; } if (media != null) { string mediaTypeString = media is MovieSearchResult ? "Movie" : media is TvSearchResult ? "Tv" : "Null"; string[] subItems = new string[] { media.name, media.overview, media.release_date, media.vote_average.ToString(), mediaTypeString }; items.Add(new ListViewItem(subItems) { Tag = media }); } } this.postUpdateLists(this.searchResults_listView, items.ToArray()); } this.searchInput_textBox.Enabled = true; this.search_button.Enabled = true; this.search_button.Text = "Search"; }
public async Task <IHttpActionResult> SearchFiles(ODataActionParameters parameters) { MediaSearchResult result = null; await this.ProcessEntityAsync(async() => { var maxTop = WebApiCachingControllingData.Data().MaxTop; var query = parameters.GetValueSafe <MediaSearchQuery>("Query") ?? new MediaSearchQuery { PageSize = maxTop }; query.PageSize = Math.Min(query.PageSize, maxTop); result = await Service.SearchFilesAsync(query, _defaultLoadFlags); }); return(Ok(result.Select(x => Convert(x)).AsQueryable())); }
private async void watchMediaItem_button_Click(object sender, EventArgs e) { // Written, 01.01.2020 this.watchMediaItem_button.Enabled = false; this.watchMediaItem_button.Text = "processing.."; MediaSearchResult selectedResult = this.searchResults_listView.SelectedItems[0].Tag as MediaSearchResult; MediaTypeEnum mediaType = selectedResult is TvSearchResult ? MediaTypeEnum.tv : MediaTypeEnum.movie; List <IdResultObject> watchlistedMedia = new List <IdResultObject>(); watchlistedMedia.AddRange(this.viewAccount.watchlistMovies); watchlistedMedia.AddRange(this.viewAccount.watchlistTvSeries); bool watchlisted = watchlistedMedia.Any(_fm => _fm.id == selectedResult.id); await this.viewAccount.user.watchlistMediaItem(mediaType, selectedResult.id, !watchlisted); switch (mediaType) { case MediaTypeEnum.movie: await this.viewAccount.retrieveWatchlistMoviesAsync(); break; case MediaTypeEnum.tv: await this.viewAccount.retrieveWatchlistTvSeriesAsync(); break; } this.watchMediaItem_button.Text = "updating.."; if (mediaType == MediaTypeEnum.movie) { await this.updateHomeMoviesAsync(); } else { await this.updateHomeTvSeriesAsync(); } await this.updateSearchMediaActionsAsync(); this.watchMediaItem_button.Enabled = true; }
private async void viewDetails_button_Click(object sender, EventArgs e) { // Written, 31.12.2019 MediaSearchResult mediaToView = this.getMediaToView(); ViewMediaDialog viewMediaDialog = new ViewMediaDialog(mediaToView, this.viewAccount); viewMediaDialog.ShowDialog(); if (this.tabControl.SelectedTab == this.search_tabPage) { await this.updateSearchMediaActionsAsync(); } if (mediaToView is TvSearchResult) { await this.updateHomeTvSeriesAsync(); } else if (mediaToView is MovieSearchResult) { await this.updateHomeMoviesAsync(); } }
// Written, 02.12.2019 static async Task Main(string[] args) { // Written, 02.12.2019 Console.WriteLine("The Library v1.1 Trending Test\nEnter either, 'all', 'movie', 'tv' or 'person' to get trending items"); string mediaTypeInput = Console.ReadLine(); bool vaildTrendingMediaType = true; TrendingAllowedMediaTypesEnum trendMediaType = TrendingAllowedMediaTypesEnum.all; switch (mediaTypeInput) { case "all": trendMediaType = TrendingAllowedMediaTypesEnum.all; break; case "movie": trendMediaType = TrendingAllowedMediaTypesEnum.movie; break; case "tv": trendMediaType = TrendingAllowedMediaTypesEnum.tv; break; case "person": trendMediaType = TrendingAllowedMediaTypesEnum.person; break; default: vaildTrendingMediaType = false; break; } if (vaildTrendingMediaType) { Console.WriteLine("Enter either, 'day' or 'week' to get daily or weekly trending items."); string timeWindowInput = Console.ReadLine(); bool vaildTimeWindowInput = true; TrendingTimeWindowEnum trendingTimeWindow = TrendingTimeWindowEnum.day; switch (timeWindowInput) { case "day": trendingTimeWindow = TrendingTimeWindowEnum.day; break; case "week": trendingTimeWindow = TrendingTimeWindowEnum.week; break; default: vaildTimeWindowInput = false; break; } if (vaildTimeWindowInput) { Trending trending = await Trending.retrieveTrendingAsync(trendMediaType, trendingTimeWindow); for (int i = 0; i < trending.trendingResults.GetLength(0); i++) { IdResultObject idResult = trending.trendingResults[i]; Console.Write("{0}.) [{1}]", i + 1, idResult.GetType().Name); if (idResult is MediaSearchResult) { MediaSearchResult media = idResult as MediaSearchResult; Console.Write(" | {0} ({1})", media.name, media.release_date); } else { if (idResult is PeopleSearchResult) { PersonResult person = await PersonResult.retrieveDetailsAsync(idResult.id); Console.Write(" | {0} ({1})", person.name, person.birthday); } } Console.WriteLine(); } } else { Console.WriteLine("Error: Invaild time window input, '{0}'. Expecting either: 'day' or 'week'.", timeWindowInput); } } else { Console.WriteLine("Error: Invaild trend media type, '{0}'. Expecting one of: 'all', 'movie', 'tv' or 'person'.", mediaTypeInput); } 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); } }
// Written, 27.11.2019 static async Task Main(string[] args) { // Written, 27.11.2019 Console.WriteLine("The Library v1.1 Search People Test\nEnter Phrase and press Enter to search for people"); string searchPhrase = Console.ReadLine(); bool searchOK = true; PeopleSearchResult[] peopleSearchResults = null; Console.WriteLine("\n\nPeople Search Function\n-------------------------------------------"); try { peopleSearchResults = await PeopleSearchResult.searchAsync(searchPhrase, 1); for (int i = 0; i < peopleSearchResults.GetLength(0); i++) { Console.WriteLine("{0}.) {1}", i + 1, peopleSearchResults[i].id); } Console.WriteLine("Total Results: " + peopleSearchResults.GetLength(0)); } catch { searchOK = false; } if (searchOK) { if (peopleSearchResults.GetLength(0) > 0) { Console.WriteLine("Enter people number to retrieve details."); if (Int32.TryParse(Console.ReadLine(), out int searchNum)) { try { PersonResult result = null; if (searchNum <= peopleSearchResults.GetLength(0)) { result = await PersonResult.retrieveDetailsAsync(peopleSearchResults[searchNum - 1].id); result.known_for = peopleSearchResults[searchNum - 1].known_for; } else { throw new NullReferenceException("result is null"); } Console.WriteLine("Selected PersonID: {0}\nName: {1}\nAdult Content: {2}\nProfile Image Path: {3}", result.id, result.name, result.adult ? "Yes" : "No", result.profile_path); if (result.known_for != null) { if (result.known_for.GetLength(0) > 0) { Console.WriteLine("Known for ({0}):", result.known_for.GetLength(0)); for (int i = 0; i < result.known_for.GetLength(0); i++) { MediaSearchResult mediaSearchResult = null; switch (result.known_for[i].mediaType) { case MediaTypeEnum.movie: mediaSearchResult = await MovieResult.retrieveDetailsAsync(result.known_for[i].id); break; case MediaTypeEnum.tv: mediaSearchResult = await TvSeriesResult.retrieveDetailsAsync(result.known_for[i].id); break; } Console.WriteLine("\t{2}.) [{1}] ID: {0}", result.known_for[i].id, result.known_for[i].mediaTypeString, i + 1); if (mediaSearchResult != null) { Console.WriteLine("\t{0} ({1})", mediaSearchResult.name, mediaSearchResult.release_date); } } } } } catch (NullReferenceException ex) { Console.WriteLine("Error: NullReferenceException. Probably number out of range. STACKTRACE: {0}", ex.StackTrace); } } 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); } }