private void SendCastToFacade(List <TraktPersonShowCast> cast) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (cast == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } // filter Shows var filteredCast = FilterCastShows(cast).Where(m => !string.IsNullOrEmpty(m.Show.Title)).ToList(); // sort Shows filteredCast.Sort(new GUIListItemShowSorter(TraktSettings.SortByCreditShows.Field, TraktSettings.SortByCreditShows.Direction)); int itemId = 0; GUIShowListItem item = null; var ShowImages = new List <GUITmdbImage>(); foreach (var credit in filteredCast) { // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = credit.Show.Ids.Tmdb } }; ShowImages.Add(images); item = new GUIShowListItem(credit.Show.Title, (int)TraktGUIWindows.PersonCreditShows); item.Label2 = credit.Show.Year == null ? "----" : credit.Show.Year.ToString(); item.Show = credit.Show; item.TVTag = credit; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCastSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredCast.Count, filteredCast.Count > 1 ? Translation.Shows : Translation.Show)); // Download Show images Async and set to facade GUIShowListItem.GetImages(ShowImages); }
private void SendCrewToFacade(List<TraktPersonMovieJob> crew) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (crew == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } // filter movies var filteredCrew = FilterCrewMovies(crew).Where(m => !string.IsNullOrEmpty(m.Movie.Title)).ToList(); // sort movies filteredCrew.Sort(new GUIListItemMovieSorter(TraktSettings.SortByCreditMovies.Field, TraktSettings.SortByCreditMovies.Direction)); int itemId = 0; GUIMovieListItem item = null; var movieImages = new List<GUITmdbImage>(); foreach (var job in filteredCrew) { // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = job.Movie.Ids.Tmdb } }; movieImages.Add(images); item = new GUIMovieListItem(job.Movie.Title, (int)TraktGUIWindows.PersonCreditMovies); item.Label2 = job.Movie.Year == null ? "----" : job.Movie.Year.ToString(); item.Movie = job.Movie; item.TVTag = job; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredCrew.Count, filteredCrew.Count > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private GUITmdbImage GetTmdbImage(TraktListItem listItem) { var images = new GUITmdbImage(); switch (listItem.Type) { case "movie": images.MovieImages = new TmdbMovieImages { Id = listItem.Movie.Ids.Tmdb }; break; case "show": images.ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb }; break; case "season": images.ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = listItem.Show.Ids.Tmdb, Season = listItem.Season.Number }; break; case "episode": images.ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = listItem.Show.Ids.Tmdb, Season = listItem.Episode.Season }; break; case "person": images.PeopleImages = new TmdbPeopleImages { Id = listItem.Person.Ids.TmdbId }; break; } return(images); }
private GUITmdbImage GetTmdbImage(TraktCommentItem comment) { var images = new GUITmdbImage(); switch (comment.Type) { case "movie": images.MovieImages = new TmdbMovieImages { Id = comment.Movie.Ids.Tmdb }; break; case "show": images.ShowImages = new TmdbShowImages { Id = comment.Show.Ids.Tmdb }; break; case "season": images.ShowImages = new TmdbShowImages { Id = comment.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = comment.Show.Ids.Tmdb, Season = comment.Season.Number }; break; case "episode": images.ShowImages = new TmdbShowImages { Id = comment.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = comment.Show.Ids.Tmdb, Season = comment.Episode.Season }; break; case "list": break; } return(images); }
private GUITmdbImage GetTmdbImage(TraktCommentItem comment) { var images = new GUITmdbImage(); switch (comment.Type) { case "movie": images.MovieImages = new TmdbMovieImages { Id = comment.Movie.Ids.Tmdb }; break; case "show": images.ShowImages = new TmdbShowImages { Id = comment.Show.Ids.Tmdb }; break; case "season": images.ShowImages = new TmdbShowImages { Id = comment.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = comment.Show.Ids.Tmdb, Season = comment.Season.Number }; break; case "episode": images.ShowImages = new TmdbShowImages { Id = comment.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = comment.Show.Ids.Tmdb, Season = comment.Episode.Season }; break; case "list": break; } return images; }
private void SendSearchResultsToFacade(IEnumerable <TraktPersonSummary> people) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (people == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); People = null; return; } if (people.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); People = null; return; } int itemId = 0; var personImages = new List <GUITmdbImage>(); // Add each movie foreach (var person in people) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Name.Trim(), (int)TraktGUIWindows.SearchPeople); item.TVTag = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnPersonSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) { PreviousSelectedIndex = 0; } Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", people.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", people.Count().ToString(), people.Count() > 1 ? Translation.People : Translation.Person)); // Download images Async and set to facade GUIPersonListItem.GetImages(personImages); }
private void SendSearchResultsToFacade(IEnumerable<TraktPersonSummary> people) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (people == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); People = null; return; } if (people.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); People = null; return; } int itemId = 0; var personImages = new List<GUITmdbImage>(); // Add each movie foreach (var person in people) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Name.Trim(), (int)TraktGUIWindows.SearchPeople); item.TVTag = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnPersonSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) PreviousSelectedIndex = 0; Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", people.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", people.Count().ToString(), people.Count() > 1 ? Translation.People : Translation.Person)); // Download images Async and set to facade GUIPersonListItem.GetImages(personImages); }
private void SendRelatedShowsToFacade(IEnumerable <TraktShowSummary> shows) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (shows == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (shows.Count() == 0) { string title = string.IsNullOrEmpty(relatedShow.Title) ? relatedShow.Slug : relatedShow.Title; GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoRelatedShows, title)); GUIWindowManager.ShowPreviousWindow(); return; } if (HideWatched) { // not interested if we have watched any underlying episodes shows = shows.Where(s => s.Plays() == 0); } int itemId = 0; var showImages = new List <GUITmdbImage>(); foreach (var show in shows) { var item = new GUIShowListItem(show.Title, (int)TraktGUIWindows.RelatedShows); // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = show.Ids.Tmdb } }; showImages.Add(images); item.Label2 = show.Year.ToString(); item.TVTag = show; item.Show = show; item.Show = show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", shows.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", shows.Count().ToString(), shows.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendWatchListShowsToFacade(IEnumerable<TraktShowWatchList> showWatchlist) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (showWatchlist == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (showWatchlist.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoShowWatchList, CurrentUser)); CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } // sort shows var sortedList = showWatchlist.ToList(); sortedList.Sort(new GUIListItemShowSorter(TraktSettings.SortByWatchListShows.Field, TraktSettings.SortByWatchListShows.Direction)); int itemId = 0; var showImages = new List<GUITmdbImage>(); // Add each show foreach (var listItem in sortedList) { // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb } }; showImages.Add(images); GUIShowListItem item = new GUIShowListItem(listItem.Show.Title, (int)TraktGUIWindows.WatchedListShows); item.Label2 = listItem.Show.Year.ToString(); item.TVTag = listItem; item.Show = listItem.Show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= sortedList.Count()) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", sortedList.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", sortedList.Count().ToString(), sortedList.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendRecentlyWatchedToFacade(IEnumerable <TraktMovieHistory> recentlyWatched) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // protected profiles might return null if (recentlyWatched == null || recentlyWatched.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.UserHasNotWatchedMovies); PreviousUser = CurrentUser; CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; var movieImages = new List <GUITmdbImage>(); // Add each item watched foreach (var recent in recentlyWatched) { // bad data in API if (recent.Movie == null) { continue; } // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = recent.Movie.Ids.Tmdb } }; movieImages.Add(images); var item = new GUIMovieListItem(recent.Movie.Title, (int)TraktGUIWindows.RecentWatchedMovies); // add user watched date as second label item.Label2 = recent.WatchedAt.ToPrettyDateTime(); item.Date = recent.WatchedAt.FromISO8601().ToLongDateString(); item.Action = recent.Action; item.TVTag = recent.Movie; item.Movie = recent.Movie; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = CurrentUser != TraktSettings.Username ? recent.Movie.IsWatched() : false; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= recentlyWatched.Count()) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", recentlyWatched.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", recentlyWatched.Count().ToString(), recentlyWatched.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendTrendingShowsToFacade(TraktShowsTrending trendingItems) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (trendingItems == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); TrendingShowPages = null; return; } if (trendingItems.Shows.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoTrendingShows); GUIWindowManager.ShowPreviousWindow(); TrendingShowPages = null; return; } // filter shows var filteredTrendingList = GUICommon.FilterTrendingShows(trendingItems.Shows).Where(s => !string.IsNullOrEmpty(s.Show.Title)).ToList(); // sort shows filteredTrendingList.Sort(new GUIListItemShowSorter(TraktSettings.SortByTrendingShows.Field, TraktSettings.SortByTrendingShows.Direction)); int itemId = 0; var showImages = new List <GUITmdbImage>(); // Add Previous Page Button if (trendingItems.CurrentPage != 1) { var prevPageItem = new GUIShowListItem(Translation.PreviousPage, (int)TraktGUIWindows.TrendingShows); prevPageItem.IsPrevPageItem = true; prevPageItem.IconImage = "traktPreviousPage.png"; prevPageItem.IconImageBig = "traktPreviousPage.png"; prevPageItem.ThumbnailImage = "traktPreviousPage.png"; prevPageItem.OnItemSelected += OnPreviousPageSelected; prevPageItem.IsFolder = true; Facade.Add(prevPageItem); itemId++; } foreach (var trendingItem in filteredTrendingList) { var item = new GUIShowListItem(trendingItem.Show.Title, (int)TraktGUIWindows.TrendingShows); // add image for download var image = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = trendingItem.Show.Ids.Tmdb } }; showImages.Add(image); item.Label2 = trendingItem.Show.Year.ToString(); item.TVTag = trendingItem; item.Show = trendingItem.Show; item.Images = image; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Add Next Page Button if (trendingItems.CurrentPage != trendingItems.TotalPages) { var nextPageItem = new GUIShowListItem(Translation.NextPage, (int)TraktGUIWindows.TrendingShows); nextPageItem.IsNextPageItem = true; nextPageItem.IconImage = "traktNextPage.png"; nextPageItem.IconImageBig = "traktNextPage.png"; nextPageItem.ThumbnailImage = "traktNextPage.png"; nextPageItem.OnItemSelected += OnNextPageSelected; nextPageItem.IsFolder = true; Facade.Add(nextPageItem); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", filteredTrendingList.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredTrendingList.Count(), filteredTrendingList.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); GUIUtils.SetProperty("#Trakt.Trending.PeopleCount", trendingItems.TotalWatchers.ToString()); GUIUtils.SetProperty("#Trakt.Trending.Description", string.Format(Translation.TrendingTVShowsPeople, trendingItems.TotalWatchers.ToString(), trendingItems.TotalItems.ToString())); // Page Properties GUIUtils.SetProperty("#Trakt.Facade.CurrentPage", trendingItems.CurrentPage.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalPages", trendingItems.TotalPages.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalItemsPerPage", TraktSettings.MaxTrendingShowsRequest.ToString()); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendSearchResultsToFacade(IEnumerable <TraktShowSummary> shows) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (shows == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Shows = null; return; } if (shows.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); Shows = null; return; } int itemId = 0; var showImages = new List <GUITmdbImage>(); // Add each show foreach (var show in shows) { // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = show.Ids.Tmdb } }; showImages.Add(images); GUIShowListItem item = new GUIShowListItem(show.Title, (int)TraktGUIWindows.SearchShows); item.Label2 = show.Year.ToString(); item.TVTag = show; item.Show = show; item.Images = images; item.IsPlayed = show.IsWatched(); item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) { PreviousSelectedIndex = 0; } Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", shows.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", shows.Count().ToString(), shows.Count() > 1 ? Translation.TVShows : Translation.TVShow)); // Download images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendPersonSummaryToFacade(TraktPersonSummary person) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (person == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } // publish person properties PublishSkinProperties(person); var personImages = new List <GUITmdbImage>(); int itemId = 0; // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Ids.TmdbId } }; personImages.Add(images); // Add movie and show credit items var item = new GUIPersonListItem(Translation.MovieCredits, (int)TraktGUIWindows.PersonSummary); item.TVTag = View.MovieCredits.ToString(); item.ItemId = Int32.MaxValue - itemId; item.Images = images; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; // add image for download images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.ShowCredits, (int)TraktGUIWindows.PersonSummary); item.TVTag = View.ShowCredits.ToString(); item.ItemId = Int32.MaxValue - itemId; item.Images = images; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; // Set Facade Layout Facade.CurrentLayout = GUIFacadeControl.Layout.List; GUIControl.FocusControl(GetID, Facade.GetID); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); // Download images Async DownloadFanart(person); GUIPersonListItem.GetImages(personImages, false); }
private void SendShowCreditsToFacade(TraktPersonShowCredits credits) { if (credits == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); CurrentView = View.Summary; LoadPersonSummary(); return; } // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // set the current view CurrentView = View.ShowCredits; var personImages = new List <GUITmdbImage>(); int itemId = 0; GUIPersonListItem item = null; #region Cast // Add all the Cast and Crew items if (credits.Cast != null && credits.Cast.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Actor, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Cast.Count); item.TVTag = Credit.Cast; item.Images = images; item.MusicTag = credits; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Crew if (credits.Crew != null) { #region Production if (credits.Crew.Production != null && credits.Crew.Production.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Production, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Production.Count); item.TVTag = Credit.Production; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Directing if (credits.Crew.Directing != null && credits.Crew.Directing.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Directing, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Directing.Count); item.TVTag = Credit.Directing; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Writing if (credits.Crew.Writing != null && credits.Crew.Writing.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Writing, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Writing.Count); item.TVTag = Credit.Writing; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Art if (credits.Crew.Art != null && credits.Crew.Art.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Art, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Art.Count); item.TVTag = Credit.Art; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Camera if (credits.Crew.Camera != null && credits.Crew.Camera.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Camera, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Camera.Count); item.TVTag = Credit.Camera; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Costume and Makeup if (credits.Crew.CostumeAndMakeUp != null && credits.Crew.CostumeAndMakeUp.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.CostumeAndMakeUp, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.CostumeAndMakeUp.Count); item.TVTag = Credit.CostumeAndMakeUp; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Sound if (credits.Crew.Sound != null && credits.Crew.Sound.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Sound, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.MovieCount, credits.Crew.Sound.Count); item.TVTag = Credit.Sound; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion } #endregion if (Facade.Count == 0) { GUIUtils.ShowNotifyDialog(Translation.ShowCredits, Translation.NoCreditsFound); CurrentView = View.Summary; LoadPersonSummary(); return; } // Set Facade Layout Facade.CurrentLayout = GUIFacadeControl.Layout.List; GUIControl.FocusControl(GetID, Facade.GetID); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIPersonListItem.GetImages(personImages, false); }
private void SendBoxOfficeToFacade(IEnumerable<TraktMovieBoxOffice> boxOffice) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (boxOffice == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (boxOffice.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoBoxOffice); GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; var movieImages = new List<GUITmdbImage>(); // Add each movie foreach (var box in boxOffice.Where(b => !string.IsNullOrEmpty(b.Movie.Title))) { var item = new GUIMovieListItem(box.Movie.Title, (int)TraktGUIWindows.BoxOffice); // add image for download var image = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = box.Movie.Ids.Tmdb } }; movieImages.Add(image); item.Label2 = box.Movie.Year == null ? "----" : box.Movie.Year.ToString(); item.TVTag = box; item.Movie = box.Movie; item.Images = image; item.IsPlayed = box.Movie.IsWatched(); item.ItemId = Int32.MaxValue - itemId; // movie in collection doesnt nessararily mean // that the movie is locally available on this computer // as 'keep library clean' might not be enabled //item.IsRemote = !movie.InCollection; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", boxOffice.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", boxOffice.Count().ToString(), boxOffice.Count() > 1 ? Translation.Movies : Translation.Movie)); int totalRevenue = boxOffice.Sum(b => b.Revenue); GUIUtils.SetProperty("#Trakt.BoxOffice.Total.Revenue", string.Format("{0:C0}", totalRevenue)); GUIUtils.SetProperty("#Trakt.BoxOffice.Total.Revenue.Raw", totalRevenue.ToString()); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void LoadTrendingShowsFacade(IEnumerable<TraktShowTrending> trendingItems, GUIFacadeControl facade) { if (TraktSkinSettings.DashboardTrendingCollection == null || !TraktSkinSettings.DashboardTrendingCollection.Exists(d => d.TVShowWindows.Contains(GUIWindowManager.ActiveWindow.ToString()))) return; // get trending settings var trendingSettings = GetTrendingSettings(); if (trendingSettings == null) return; TraktLogger.Debug("Loading Trakt Trending Shows facade"); // if no trending, then nothing to do if (trendingItems == null || trendingItems.Count() == 0) return; // stop any existing image downloads GUIShowListItem.StopDownload = true; // clear facade GUIControl.ClearControl(GUIWindowManager.ActiveWindow, facade.GetID); int itemId = 0; var showImages = new List<GUITmdbImage>(); // filter shows if (TraktSettings.FilterTrendingOnDashboard) trendingItems = GUICommon.FilterTrendingShows(trendingItems); // Add each activity item to the facade foreach (var trendingItem in trendingItems.Take(trendingSettings.FacadeMaxItems)) { if (trendingItem.Show == null) continue; // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = trendingItem.Show.Ids.Tmdb } }; showImages.Add(images); var item = new GUIShowListItem(trendingItem.Show.Title, GUIWindowManager.ActiveWindow); item.Label2 = trendingItem.Show.Year.ToString(); item.TVTag = trendingItem; item.Show = trendingItem.Show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnTrendingShowSelected; try { facade.Add(item); } catch { } itemId++; } // Set Facade Layout facade.SetCurrentLayout(trendingSettings.FacadeType); facade.SetVisibleFromSkinCondition(); // set facade properties GUIUtils.SetProperty("#Trakt.Trending.Shows.Items", string.Format("{0} {1}", trendingItems.Count().ToString(), trendingItems.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); GUIUtils.SetProperty("#Trakt.Trending.Shows.PeopleCount", trendingItems.Sum(t => t.Watchers).ToString()); GUIUtils.SetProperty("#Trakt.Trending.Shows.Description", string.Format(Translation.TrendingTVShowsPeople, trendingItems.Sum(t => t.Watchers).ToString(), trendingItems.Count().ToString())); // Download images Async and set to facade GUIShowListItem.StopDownload = false; GUIShowListItem.GetImages(showImages); TraktLogger.Debug("Finished Loading Trending Shows facade"); }
private void SendCalendarToFacade(Dictionary<string, List<TraktCalendar>> calendar) { // check if we got a bad response if (!IsCached && (calendar.Count() < PreviousCalendarDayCount)) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.ErrorCalendar); // set defaults _CalendarShows = null; _CalendarPremieres = null; _CalendarAllShows = null; LastRequest = new DateTime(); return; } // clear facade GUIControl.ClearControl(GetID, Facade.GetID); int itemCount = 0; var showImages = new List<GUITmdbImage>(); // Add each days episodes to the list // Use Label3 of facade for Day/Group Idenitfier foreach (var day in calendar) { // apply watchlist filter var episodesInDay = day.Value; if (CurrentCalendar == CalendarType.MyShows) { if (TraktSettings.CalendarHideTVShowsInWatchList) { episodesInDay = day.Value.Where(e => !e.Show.IsWatchlisted()).ToList(); } } if (episodesInDay.Count() > 0) { // add day header var item = new GUIListItem(); item.Label3 = GetDayHeader(day.Key.FromISO8601()); item.IconImage = "defaultTraktCalendar.png"; item.IconImageBig = "defaultTraktCalendarBig.png"; item.ThumbnailImage = "defaultTraktCalendarBig.png"; item.OnItemSelected += OnCalendarDateSelected; Utils.SetDefaultIcons(item); Facade.Add(item); foreach (var calendarItem in episodesInDay) { var episodeItem = new GUIEpisodeListItem(calendarItem.ToString(), (int)TraktGUIWindows.Calendar); // add image for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = calendarItem.Show.Ids.Tmdb, Season = calendarItem.Episode.Season, Episode = calendarItem.Episode.Number, AirDate = calendarItem.Episode.FirstAired == null ? null : calendarItem.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); // extended skin properties episodeItem.Date = DateTime.Parse(day.Key).ToLongDateString(); episodeItem.SelectedIndex = (itemCount + 1).ToString(); episodeItem.Images = images; episodeItem.TVTag = calendarItem; episodeItem.Episode = calendarItem.Episode; episodeItem.Show = calendarItem.Show; episodeItem.ItemId = Int32.MaxValue - itemCount; episodeItem.IsPlayed = calendarItem.Episode.IsWatched(calendarItem.Show); episodeItem.IconImage = "defaultTraktEpisode.png"; episodeItem.IconImageBig = "defaultTraktEpisodeBig.png"; episodeItem.ThumbnailImage = "defaultTraktEpisodeBig.png"; episodeItem.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(episodeItem); Facade.Add(episodeItem); itemCount++; } } } // if nothing airing this week, then indicate to user if (!IsCached && (calendar.Count() == PreviousCalendarDayCount)) { GUIListItem item = new GUIListItem(); item.Label3 = Translation.NoEpisodesThisWeek; item.IconImage = "defaultTraktCalendar.png"; item.IconImageBig = "defaultTraktCalendarBig.png"; item.ThumbnailImage = "defaultTraktCalendarBig.png"; item.OnItemSelected += OnCalendarDateSelected; Utils.SetDefaultIcons(item); Facade.Add(item); // Stay on Next Week Item if (PreviousSelectedIndex > 0) PreviousSelectedIndex--; } // Add Next Week Item so user can fetch next weeks calendar GUIListItem nextItem = new GUIListItem(Translation.NextWeek); nextItem.IconImage = "traktNextWeek.png"; nextItem.IconImageBig = "traktNextWeek.png"; nextItem.ThumbnailImage = "traktNextWeek.png"; nextItem.OnItemSelected += OnNextWeekSelected; nextItem.IsFolder = true; Facade.Add(nextItem); // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); // Set the first episode on calendar on initial request (Index 0 is a day header), // Set last position if paging to next week if (!IsCached) Facade.SelectIndex(PreviousSelectedIndex + 1); else // If cached just set to last position Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", itemCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", itemCount.ToString(), itemCount > 1 ? Translation.Episodes : Translation.Episode)); // Download episode images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendCalendarToFacade(Dictionary <string, List <TraktCalendar> > calendar) { // check if we got a bad response if (!IsCached && (calendar.Count() < PreviousCalendarDayCount)) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.ErrorCalendar); // set defaults _CalendarShows = null; _CalendarPremieres = null; _CalendarAllShows = null; LastRequest = new DateTime(); return; } // clear facade GUIControl.ClearControl(GetID, Facade.GetID); int itemCount = 0; var showImages = new List <GUITmdbImage>(); // Add each days episodes to the list // Use Label3 of facade for Day/Group Idenitfier foreach (var day in calendar) { // apply watchlist filter var episodesInDay = day.Value; if (CurrentCalendar == CalendarType.MyShows) { if (TraktSettings.CalendarHideTVShowsInWatchList) { episodesInDay = day.Value.Where(e => !e.Show.IsWatchlisted()).ToList(); } } if (episodesInDay.Count() > 0) { // add day header var item = new GUIListItem(); item.Label3 = GetDayHeader(day.Key.FromISO8601()); item.IconImage = "defaultTraktCalendar.png"; item.IconImageBig = "defaultTraktCalendarBig.png"; item.ThumbnailImage = "defaultTraktCalendarBig.png"; item.OnItemSelected += OnCalendarDateSelected; Utils.SetDefaultIcons(item); Facade.Add(item); foreach (var calendarItem in episodesInDay) { var episodeItem = new GUIEpisodeListItem(calendarItem.ToString(), (int)TraktGUIWindows.Calendar); // add image for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = calendarItem.Show.Ids.Tmdb, Season = calendarItem.Episode.Season, Episode = calendarItem.Episode.Number, AirDate = calendarItem.Episode.FirstAired == null ? null : calendarItem.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); // extended skin properties episodeItem.Date = DateTime.Parse(day.Key).ToLongDateString(); episodeItem.SelectedIndex = (itemCount + 1).ToString(); episodeItem.Images = images; episodeItem.TVTag = calendarItem; episodeItem.Episode = calendarItem.Episode; episodeItem.Show = calendarItem.Show; episodeItem.ItemId = Int32.MaxValue - itemCount; episodeItem.IsPlayed = calendarItem.Episode.IsWatched(calendarItem.Show); episodeItem.IconImage = "defaultTraktEpisode.png"; episodeItem.IconImageBig = "defaultTraktEpisodeBig.png"; episodeItem.ThumbnailImage = "defaultTraktEpisodeBig.png"; episodeItem.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(episodeItem); Facade.Add(episodeItem); itemCount++; } } } // if nothing airing this week, then indicate to user if (!IsCached && (calendar.Count() == PreviousCalendarDayCount)) { GUIListItem item = new GUIListItem(); item.Label3 = Translation.NoEpisodesThisWeek; item.IconImage = "defaultTraktCalendar.png"; item.IconImageBig = "defaultTraktCalendarBig.png"; item.ThumbnailImage = "defaultTraktCalendarBig.png"; item.OnItemSelected += OnCalendarDateSelected; Utils.SetDefaultIcons(item); Facade.Add(item); // Stay on Next Week Item if (PreviousSelectedIndex > 0) { PreviousSelectedIndex--; } } // Add Next Week Item so user can fetch next weeks calendar GUIListItem nextItem = new GUIListItem(Translation.NextWeek); nextItem.IconImage = "traktNextWeek.png"; nextItem.IconImageBig = "traktNextWeek.png"; nextItem.ThumbnailImage = "traktNextWeek.png"; nextItem.OnItemSelected += OnNextWeekSelected; nextItem.IsFolder = true; Facade.Add(nextItem); // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); // Set the first episode on calendar on initial request (Index 0 is a day header), // Set last position if paging to next week if (!IsCached) { Facade.SelectIndex(PreviousSelectedIndex + 1); } else // If cached just set to last position { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", itemCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", itemCount.ToString(), itemCount > 1 ? Translation.Episodes : Translation.Episode)); // Download episode images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendShowSeasonsToFacade(IEnumerable <TraktSeasonSummary> seasons) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (seasons == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (seasons.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSeasonsForShow); GUIWindowManager.ShowPreviousWindow(); return; } // sort ascending or descending order if (!TraktSettings.SortSeasonsAscending) { seasons = seasons.OrderByDescending(s => s.Number).ToList(); } else { seasons = seasons.OrderBy(s => s.Number).ToList(); } int itemId = 0; var seasonImages = new List <GUITmdbImage>(); // skip over any seasons with no episodes foreach (var season in seasons.Where(s => s.EpisodeCount > 0)) { // add image for download var images = new GUITmdbImage { SeasonImages = new TmdbSeasonImages { Id = Show.Ids.Tmdb, Season = season.Number } }; seasonImages.Add(images); // if a custom title is set for the season, use that, otherwise use a translated string string itemLabel = season.Number == 0 ? Translation.Specials : string.Format("{0} {1}", Translation.Season, season.Number.ToString()); if (!string.IsNullOrEmpty(season.Title) && itemLabel != season.Title) { itemLabel = string.Format("{0}. {1}", season.Number, season.Title); } var item = new GUISeasonListItem(itemLabel, (int)TraktGUIWindows.ShowSeasons); item.Label2 = string.Format("{0} {1}", season.EpisodeCount, Translation.Episodes); item.TVTag = season; item.Show = Show; item.Season = season; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = season.IsWatched(Show); item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnSeasonSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", seasons.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", seasons.Count().ToString(), seasons.Count() > 1 ? Translation.Seasons : Translation.Season)); // Download show images Async and set to facade GUISeasonListItem.GetImages(seasonImages); }
private void SendRecentlyAddedToFacade(IEnumerable <TraktActivity.Activity> activities) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // protected profiles might return null if (activities == null || activities.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.UserHasNoRecentAddedEpisodes); PreviousUser = CurrentUser; CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; int episodeCount = 0; var showImages = new List <GUITmdbImage>(); // Add each item added foreach (var activity in activities) { // bad data in API if (activity.Show == null || activity.Episodes == null) { continue; } // trakt returns an episode array per activity // you may add more than one in bulk foreach (var episode in activity.Episodes) { // prevent too many episodes loading in facade // its possible that 1 activity item can represent many episodes // e.g. user could of added 400 episodes of The Simpsons if (episodeCount >= 100) { continue; } var episodeSummary = new TraktEpisodeSummaryEx { Episode = episode, Show = activity.Show }; // skip invalid episodes if (episodeSummary.Episode.Number == 0) { continue; } var item = new GUIEpisodeListItem(episodeSummary.ToString(), (int)TraktGUIWindows.RecentAddedEpisodes); // add images for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = episodeSummary.Show.Ids.Tmdb, Season = episodeSummary.Episode.Season, Episode = episodeSummary.Episode.Number, AirDate = episodeSummary.Episode.FirstAired == null ? null : episodeSummary.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); // add user added date as second label item.Label2 = activity.Timestamp.FromISO8601().ToShortDateString(); item.TVTag = episodeSummary; item.Episode = episode; item.Show = activity.Show; item.Images = images; item.Date = activity.Timestamp.FromISO8601().ToLongDateString(); item.ItemId = Int32.MaxValue - itemId++; item.IsPlayed = episode.IsWatched(activity.Show); item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); episodeCount++; } } // set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= episodeCount) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", episodeCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", episodeCount.ToString(), episodeCount > 1 ? Translation.Episodes : Translation.Episode)); // Download show images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendRelatedMoviesToFacade(IEnumerable <TraktMovieSummary> movies) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (movies == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (movies.Count() == 0) { string title = string.IsNullOrEmpty(relatedMovie.Title) ? relatedMovie.Slug : relatedMovie.Title; GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoRelatedMovies, title)); GUIWindowManager.ShowPreviousWindow(); return; } if (HideWatched) { // not interested if we have watched any movies = movies.Where(s => s.Plays() == 0); } int itemId = 0; var movieImages = new List <GUITmdbImage>(); // Add each movie foreach (var movie in movies.Where(m => !string.IsNullOrEmpty(m.Title))) { var item = new GUIMovieListItem(movie.Title, (int)TraktGUIWindows.RelatedMovies); // add image for download var image = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = movie.Ids.Tmdb } }; movieImages.Add(image); item.Label2 = movie.Year == null ? "----" : movie.Year.ToString(); item.TVTag = movie; item.Movie = movie; item.Images = image; item.IsPlayed = movie.IsWatched(); item.ItemId = Int32.MaxValue - itemId; // movie in collection doesnt nessararily mean // that the movie is locally available on this computer // as 'keep library clean' might not be enabled //item.IsRemote = !movie.InCollection; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", movies.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", movies.Count().ToString(), movies.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendWatchListEpisodesToFacade(IEnumerable<TraktEpisodeWatchList> episodeWatchlist) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (episodeWatchlist == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (episodeWatchlist.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoEpisodeWatchList, CurrentUser)); CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemCount = 0; var showImages = new List<GUITmdbImage>(); // Add each show and underlying episodes // Should we do facade levels (Series,Season,Episodes)? foreach (var watchlistItem in episodeWatchlist) { // add image for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = watchlistItem.Show.Ids.Tmdb, Season = watchlistItem.Episode.Season, Episode = watchlistItem.Episode.Number, AirDate = watchlistItem.Episode.FirstAired == null ? null : watchlistItem.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); var item = new GUIEpisodeListItem(watchlistItem.ToString(), (int)TraktGUIWindows.WatchedListEpisodes); item.Label2 = watchlistItem.Episode.FirstAired == null ? " " : watchlistItem.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString(); item.TVTag = watchlistItem; item.Episode = watchlistItem.Episode; item.Show = watchlistItem.Show; item.Date = watchlistItem.ListedAt.FromISO8601().ToShortDateString(); item.Images = images; item.ItemId = Int32.MaxValue - itemCount; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemCount++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= itemCount) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", itemCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", itemCount.ToString(), itemCount > 1 ? Translation.Episodes : Translation.Episode)); // Download episode images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendPopularMoviesToFacade(TraktMoviesPopular PopularItems) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (PopularItems == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); PopularMoviePages = null; return; } // filter movies var filteredPopularList = FilterPopularMovies(PopularItems.Movies).Where(m => !string.IsNullOrEmpty(m.Title)).ToList(); // sort movies filteredPopularList.Sort(new GUIListItemMovieSorter(TraktSettings.SortByPopularMovies.Field, TraktSettings.SortByPopularMovies.Direction)); int itemId = 0; var movieImages = new List <GUITmdbImage>(); // Add Previous Page Button if (PopularItems.CurrentPage != 1) { var prevPageItem = new GUIMovieListItem(Translation.PreviousPage, (int)TraktGUIWindows.PopularMovies); prevPageItem.IsPrevPageItem = true; prevPageItem.IconImage = "traktPreviousPage.png"; prevPageItem.IconImageBig = "traktPreviousPage.png"; prevPageItem.ThumbnailImage = "traktPreviousPage.png"; prevPageItem.OnItemSelected += OnPreviousPageSelected; prevPageItem.IsFolder = true; Facade.Add(prevPageItem); itemId++; } // Add each movie mark remote if not in collection foreach (var PopularItem in filteredPopularList) { // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = PopularItem.Ids.Tmdb } }; movieImages.Add(images); var item = new GUIMovieListItem(PopularItem.Title, (int)TraktGUIWindows.PopularMovies); item.Label2 = PopularItem.Year == null ? "----" : PopularItem.Year.ToString(); item.TVTag = PopularItem; item.Movie = PopularItem; item.Images = images; item.IsPlayed = PopularItem.IsWatched(); item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Add Next Page Button if (PopularItems.CurrentPage != PopularItems.TotalPages) { var nextPageItem = new GUIMovieListItem(Translation.NextPage, (int)TraktGUIWindows.PopularMovies); nextPageItem.IsNextPageItem = true; nextPageItem.IconImage = "traktNextPage.png"; nextPageItem.IconImageBig = "traktNextPage.png"; nextPageItem.ThumbnailImage = "traktNextPage.png"; nextPageItem.OnItemSelected += OnNextPageSelected; nextPageItem.IsFolder = true; Facade.Add(nextPageItem); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", filteredPopularList.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredPopularList.Count(), filteredPopularList.Count() > 1 ? Translation.Movies : Translation.Movie)); // Page Properties GUIUtils.SetProperty("#Trakt.Facade.CurrentPage", PopularItems.CurrentPage.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalPages", PopularItems.TotalPages.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalItemsPerPage", TraktSettings.MaxPopularMoviesRequest.ToString()); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendRecentlyWatchedToFacade(IEnumerable<TraktEpisodeHistory> recentlyWatched) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // protected profiles might return null if (recentlyWatched == null || recentlyWatched.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.UserHasNotWatchedEpisodes); PreviousUser = CurrentUser; CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; var showImages = new List<GUITmdbImage>(); // Add each item watched foreach (var recent in recentlyWatched) { // bad data in API if (recent.Show == null || recent.Episode == null) continue; // skip invalid episodes if (recent.Episode.Number == 0) continue; string episodeName = string.Format("{0} - {1}x{2} - {3}", recent.Show.Title, recent.Episode.Season, recent.Episode.Number, recent.Episode.Title ?? string.Format("{0} {1}", Translation.Episode, recent.Episode.Number)); var item = new GUIEpisodeListItem(episodeName, (int)TraktGUIWindows.RecentWatchedEpisodes); // add images for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = recent.Show.Ids.Tmdb, Season = recent.Episode.Season, Episode = recent.Episode.Number, AirDate = recent.Episode.FirstAired == null ? null : recent.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); // add user watched date as second label item.Label2 = recent.WatchedAt.ToPrettyDateTime(); item.Date = recent.WatchedAt.FromISO8601().ToLongDateString(); item.TVTag = recent; item.Episode = recent.Episode; item.Show = recent.Show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = CurrentUser != TraktSettings.Username ? recent.Episode.IsWatched(recent.Show) : false; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= recentlyWatched.Count()) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", recentlyWatched.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", recentlyWatched.Count().ToString(), recentlyWatched.Count() > 1 ? Translation.Episodes : Translation.Episode)); // Download show images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendSeasonEpisodesToFacade(IEnumerable<TraktEpisodeSummary> episodes) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (episodes == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (episodes.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoEpisodesInSeason); GUIWindowManager.ShowPreviousWindow(); return; } // Set Common Show Properties GUICommon.SetShowProperties(Show); int itemCount = 0; var episodeImages = new List<GUITmdbImage>(); foreach (var episode in episodes) { // skip invalid episodes if (episode.Number == 0) continue; // use episode short string string itemLabel = string.Format("{0}. {1}", episode.Number.ToString(), string.IsNullOrEmpty(episode.Title) ? Translation.Episode + " " + episode.Number.ToString() : episode.Title); // add image for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = Show.Ids.Tmdb, Episode = episode.Number, Season = episode.Season, AirDate = episode.FirstAired == null ? null : episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() }, }; episodeImages.Add(images); var item = new GUIEpisodeListItem(itemLabel, (int)TraktGUIWindows.SeasonEpisodes); item.Label2 = episode.FirstAired == null ? " " : episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString(); item.TVTag = episode; item.Show = Show; item.Episode = episode; item.IsPlayed = episode.IsWatched(Show); item.Images = images; item.ItemId = Int32.MaxValue - itemCount; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemCount++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= itemCount) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", itemCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", itemCount.ToString(), itemCount > 1 ? Translation.Episodes : Translation.Episode)); // Download episode images Async and set to facade GUIEpisodeListItem.GetImages(episodeImages); }
private void SendSearchResultsToFacade(IEnumerable<TraktShowSummary> shows) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (shows == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Shows = null; return; } if (shows.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); Shows = null; return; } int itemId = 0; var showImages = new List<GUITmdbImage>(); // Add each show foreach (var show in shows) { // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = show.Ids.Tmdb } }; showImages.Add(images); GUIShowListItem item = new GUIShowListItem(show.Title, (int)TraktGUIWindows.SearchShows); item.Label2 = show.Year.ToString(); item.TVTag = show; item.Show = show; item.Images = images; item.IsPlayed = show.IsWatched(); item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) PreviousSelectedIndex = 0; Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", shows.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", shows.Count().ToString(), shows.Count() > 1 ? Translation.TVShows : Translation.TVShow)); // Download images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendWatchListMoviesToFacade(IEnumerable<TraktMovieWatchList> movieWatchlist) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (movieWatchlist == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (movieWatchlist.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoMovieWatchList, CurrentUser)); CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } // sort movies var sortedList = movieWatchlist.Where(m => !string.IsNullOrEmpty(m.Movie.Title)).ToList(); sortedList.Sort(new GUIListItemMovieSorter(TraktSettings.SortByWatchListMovies.Field, TraktSettings.SortByWatchListMovies.Direction)); int itemId = 0; var movieImages = new List<GUITmdbImage>(); // Add each movie foreach (var watchlistItem in sortedList) { // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = watchlistItem.Movie.Ids.Tmdb } }; movieImages.Add(images); var item = new GUIMovieListItem(watchlistItem.Movie.Title, (int)TraktGUIWindows.WatchedListMovies); item.Label2 = watchlistItem.Movie.Year == null ? "----" : watchlistItem.Movie.Year.ToString(); item.TVTag = watchlistItem; item.Movie = watchlistItem.Movie; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = watchlistItem.Movie.IsWatched(); item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= movieWatchlist.Count()) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", movieWatchlist.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", movieWatchlist.Count().ToString(), movieWatchlist.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendRecommendedMoviesToFacade(IEnumerable<TraktMovieSummary> movies) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (movies == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (movies.Count() == 0) { // try again if (genreButton == null) { // restore defaults for next time so we can get recommendations if (CurrentGenre != "All") CurrentGenre = "All"; _RecommendedMovies = null; GUIWindowManager.ShowPreviousWindow(); } else { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoMovieRecommendations); GUIControl.FocusControl(GetID, genreButton.GetID); } return; } // sort movies var movieList = movies.ToList(); movieList.Sort(new GUIListItemMovieSorter(TraktSettings.SortByRecommendedMovies.Field, TraktSettings.SortByRecommendedMovies.Direction)); int itemId = 0; var movieImages = new List<GUITmdbImage>(); // Add each movie foreach (var movie in movieList) { var item = new GUIMovieListItem(movie.Title, (int)TraktGUIWindows.RecommendationsMovies); // add image for download var image = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = movie.Ids.Tmdb } }; movieImages.Add(image); item.Label2 = movie.Year == null ? "----" : movie.Year.ToString(); item.TVTag = movie; item.Movie = movie; item.Images = image; item.ItemId = Int32.MaxValue - itemId; // movie in collection doesnt nessararily mean // that the movie is locally available on this computer // as 'keep library clean' might not be enabled //item.IsRemote = !movie.InCollection; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= movies.Count()) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", movies.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", movies.Count().ToString(), movies.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendRelatedShowsToFacade(IEnumerable<TraktShowSummary> shows) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (shows == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (shows.Count() == 0) { string title = string.IsNullOrEmpty(relatedShow.Title) ? relatedShow.Slug : relatedShow.Title; GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoRelatedShows, title)); GUIWindowManager.ShowPreviousWindow(); return; } if (HideWatched) { // not interested if we have watched any underlying episodes shows = shows.Where(s => s.Plays() == 0); } int itemId = 0; var showImages = new List<GUITmdbImage>(); foreach (var show in shows) { var item = new GUIShowListItem(show.Title, (int)TraktGUIWindows.RelatedShows); // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = show.Ids.Tmdb } }; showImages.Add(images); item.Label2 = show.Year.ToString(); item.TVTag = show; item.Show = show; item.Show = show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", shows.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", shows.Count().ToString(), shows.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendSeasonEpisodesToFacade(IEnumerable <TraktEpisodeSummary> episodes) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (episodes == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (episodes.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoEpisodesInSeason); GUIWindowManager.ShowPreviousWindow(); return; } // Set Common Show Properties GUICommon.SetShowProperties(Show); int itemCount = 0; var episodeImages = new List <GUITmdbImage>(); foreach (var episode in episodes) { // skip invalid episodes if (episode.Number == 0) { continue; } // use episode short string string itemLabel = string.Format("{0}. {1}", episode.Number.ToString(), string.IsNullOrEmpty(episode.Title) ? Translation.Episode + " " + episode.Number.ToString() : episode.Title); // add image for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = Show.Ids.Tmdb, Episode = episode.Number, Season = episode.Season, AirDate = episode.FirstAired == null ? null : episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() }, }; episodeImages.Add(images); var item = new GUIEpisodeListItem(itemLabel, (int)TraktGUIWindows.SeasonEpisodes); item.Label2 = episode.FirstAired == null ? " " : episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString(); item.TVTag = episode; item.Show = Show; item.Episode = episode; item.IsPlayed = episode.IsWatched(Show); item.Images = images; item.ItemId = Int32.MaxValue - itemCount; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemCount++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= itemCount) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", itemCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", itemCount.ToString(), itemCount > 1 ? Translation.Episodes : Translation.Episode)); // Download episode images Async and set to facade GUIEpisodeListItem.GetImages(episodeImages); }
private void SendSearchResultsToFacade(IEnumerable <TraktMovieSummary> movies) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (movies == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Movies = null; return; } if (movies.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); Movies = null; return; } int itemId = 0; var movieImages = new List <GUITmdbImage>(); // Add each movie foreach (var movie in movies) { // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = movie.Ids.Tmdb } }; movieImages.Add(images); GUIMovieListItem item = new GUIMovieListItem(movie.Title, (int)TraktGUIWindows.SearchMovies); item.Label2 = movie.Year == null ? "----" : movie.Year.ToString(); item.TVTag = movie; item.Movie = movie; item.Images = images; item.IsPlayed = movie.IsWatched(); item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) { PreviousSelectedIndex = 0; } Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", movies.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", movies.Count().ToString(), movies.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendRecommendedShowsToFacade(IEnumerable<TraktShowSummary> shows) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (shows == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (shows.Count() == 0) { // try again if (genreButton == null) { // restore defaults for next time so we can get recommendations if (CurrentGenre != "All") CurrentGenre = "All"; _RecommendedShows = null; GUIWindowManager.ShowPreviousWindow(); } else { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoShowRecommendations); GUIControl.FocusControl(GetID, genreButton.GetID); } return; } // sort shows var showList = shows.ToList(); showList.Sort(new GUIListItemShowSorter(TraktSettings.SortByRecommendedShows.Field, TraktSettings.SortByRecommendedShows.Direction)); int itemId = 0; var showImages = new List<GUITmdbImage>(); foreach (var show in showList) { var item = new GUIShowListItem(show.Title, (int)TraktGUIWindows.RecommendationsShows); // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = show.Ids.Tmdb } }; showImages.Add(images); item.Label2 = show.Year.ToString(); item.TVTag = show; item.Show = show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= shows.Count()) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", shows.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", shows.Count().ToString(), shows.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendRecentlyWatchedToFacade(IEnumerable<TraktMovieHistory> recentlyWatched) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // protected profiles might return null if (recentlyWatched == null || recentlyWatched.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.UserHasNotWatchedMovies); PreviousUser = CurrentUser; CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; var movieImages = new List<GUITmdbImage>(); // Add each item watched foreach (var recent in recentlyWatched) { // bad data in API if (recent.Movie == null) continue; // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = recent.Movie.Ids.Tmdb } }; movieImages.Add(images); var item = new GUIMovieListItem(recent.Movie.Title, (int)TraktGUIWindows.RecentWatchedMovies); // add user watched date as second label item.Label2 = recent.WatchedAt.ToPrettyDateTime(); item.Date = recent.WatchedAt.FromISO8601().ToLongDateString(); item.Action = recent.Action; item.TVTag = recent.Movie; item.Movie = recent.Movie; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = CurrentUser != TraktSettings.Username ? recent.Movie.IsWatched() : false; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= recentlyWatched.Count()) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", recentlyWatched.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", recentlyWatched.Count().ToString(), recentlyWatched.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendPersonSummaryToFacade(TraktPersonSummary person) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (person == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } // publish person properties PublishSkinProperties(person); var personImages = new List<GUITmdbImage>(); int itemId = 0; // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Ids.TmdbId } }; personImages.Add(images); // Add movie and show credit items var item = new GUIPersonListItem(Translation.MovieCredits, (int)TraktGUIWindows.PersonSummary); item.TVTag = View.MovieCredits.ToString(); item.ItemId = Int32.MaxValue - itemId; item.Images = images; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; // add image for download images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.ShowCredits, (int)TraktGUIWindows.PersonSummary); item.TVTag = View.ShowCredits.ToString(); item.ItemId = Int32.MaxValue - itemId; item.Images = images; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); // Download images Async DownloadFanart(person); GUIPersonListItem.GetImages(personImages, false); }
private void SendCreditResultsToFacade(TraktCredits credits) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (credits == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Show = null; return; } int itemId = 0; var personImages = new List <GUITmdbImage>(); // Add each character if (Type == CreditType.Cast && credits.Cast != null) { foreach (var person in credits.Cast) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(string.IsNullOrEmpty(person.Character) ? person.Person.Name : string.Format(Translation.ActorAndRole, person.Person.Name, person.Character), (int)TraktGUIWindows.CreditsShow); item.Person = person.Person; item.CreditType = Credit.Cast; item.Character = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCastSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } // add each crew member if (Type == CreditType.Crew && credits.Crew != null) { if (credits.Crew.Directing != null) { foreach (var person in credits.Crew.Directing) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Directing; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Writing != null) { foreach (var person in credits.Crew.Writing) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Writing; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Production != null) { foreach (var person in credits.Crew.Production) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Production; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Art != null) { foreach (var person in credits.Crew.Art) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Art; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Camera != null) { foreach (var person in credits.Crew.Camera) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Camera; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.CostumeAndMakeUp != null) { foreach (var person in credits.Crew.CostumeAndMakeUp) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.CostumeAndMakeUp; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Sound != null) { foreach (var person in credits.Crew.Sound) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Sound; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } } // if nothing to display exit if (Facade.Count == 0) { GUIUtils.ShowNotifyDialog(Type == CreditType.Crew ? Translation.Crew : Translation.Cast, Translation.NoCreditsFound); GUIWindowManager.ShowPreviousWindow(); Show = null; return; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", Facade.Count.ToString(), Facade.Count > 1 ? Translation.People : Translation.Person)); // Download images Async and set to facade GUIPersonListItem.GetImages(personImages, false); }
private void SendWatchListMoviesToFacade(IEnumerable <TraktMovieWatchList> movieWatchlist) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (movieWatchlist == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (movieWatchlist.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoMovieWatchList, CurrentUser)); CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } // sort movies var sortedList = movieWatchlist.Where(m => !string.IsNullOrEmpty(m.Movie.Title)).ToList(); sortedList.Sort(new GUIListItemMovieSorter(TraktSettings.SortByWatchListMovies.Field, TraktSettings.SortByWatchListMovies.Direction)); int itemId = 0; var movieImages = new List <GUITmdbImage>(); // Add each movie foreach (var watchlistItem in sortedList) { // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = watchlistItem.Movie.Ids.Tmdb } }; movieImages.Add(images); var item = new GUIMovieListItem(watchlistItem.Movie.Title, (int)TraktGUIWindows.WatchedListMovies); item.Label2 = watchlistItem.Movie.Year == null ? "----" : watchlistItem.Movie.Year.ToString(); item.TVTag = watchlistItem; item.Movie = watchlistItem.Movie; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = watchlistItem.Movie.IsWatched(); item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= movieWatchlist.Count()) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", movieWatchlist.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", movieWatchlist.Count().ToString(), movieWatchlist.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendSearchResultsToFacade(IEnumerable <TraktEpisodeSummaryEx> episodes) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (episodes == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Episodes = null; return; } if (episodes.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); Episodes = null; return; } int itemId = 0; var showImages = new List <GUITmdbImage>(); // Add each show foreach (var episodeSummary in episodes) { // add images for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = episodeSummary.Show.Ids.Tmdb, Season = episodeSummary.Episode.Season, Episode = episodeSummary.Episode.Number, AirDate = episodeSummary.Episode.FirstAired == null ? null : episodeSummary.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); var item = new GUIEpisodeListItem(episodeSummary.ToString(), (int)TraktGUIWindows.SearchEpisodes); item.Label2 = episodeSummary.Show.Year.ToString(); item.TVTag = episodeSummary; item.Episode = episodeSummary.Episode; item.Show = episodeSummary.Show; item.Images = images; item.IsPlayed = episodeSummary.Episode.IsWatched(episodeSummary.Show); item.ItemId = Int32.MaxValue - itemId; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) { PreviousSelectedIndex = 0; } Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", episodes.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", episodes.Count().ToString(), episodes.Count() > 1 ? Translation.Episodes : Translation.Episode)); // Download images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendPopularMoviesToFacade(TraktMoviesPopular PopularItems) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (PopularItems == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); PopularMoviePages = null; return; } // filter movies var filteredPopularList = FilterPopularMovies(PopularItems.Movies).Where(m => !string.IsNullOrEmpty(m.Title)).ToList(); // sort movies filteredPopularList.Sort(new GUIListItemMovieSorter(TraktSettings.SortByPopularMovies.Field, TraktSettings.SortByPopularMovies.Direction)); int itemId = 0; var movieImages = new List<GUITmdbImage>(); // Add Previous Page Button if (PopularItems.CurrentPage != 1) { var prevPageItem = new GUIMovieListItem(Translation.PreviousPage, (int)TraktGUIWindows.PopularMovies); prevPageItem.IsPrevPageItem = true; prevPageItem.IconImage = "traktPreviousPage.png"; prevPageItem.IconImageBig = "traktPreviousPage.png"; prevPageItem.ThumbnailImage = "traktPreviousPage.png"; prevPageItem.OnItemSelected += OnPreviousPageSelected; prevPageItem.IsFolder = true; Facade.Add(prevPageItem); itemId++; } // Add each movie mark remote if not in collection foreach (var PopularItem in filteredPopularList) { // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = PopularItem.Ids.Tmdb } }; movieImages.Add(images); var item = new GUIMovieListItem(PopularItem.Title, (int)TraktGUIWindows.PopularMovies); item.Label2 = PopularItem.Year == null ? "----" : PopularItem.Year.ToString(); item.TVTag = PopularItem; item.Movie = PopularItem; item.Images = images; item.IsPlayed = PopularItem.IsWatched(); item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Add Next Page Button if (PopularItems.CurrentPage != PopularItems.TotalPages) { var nextPageItem = new GUIMovieListItem(Translation.NextPage, (int)TraktGUIWindows.PopularMovies); nextPageItem.IsNextPageItem = true; nextPageItem.IconImage = "traktNextPage.png"; nextPageItem.IconImageBig = "traktNextPage.png"; nextPageItem.ThumbnailImage = "traktNextPage.png"; nextPageItem.OnItemSelected += OnNextPageSelected; nextPageItem.IsFolder = true; Facade.Add(nextPageItem); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", filteredPopularList.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredPopularList.Count(), filteredPopularList.Count() > 1 ? Translation.Movies : Translation.Movie)); // Page Properties GUIUtils.SetProperty("#Trakt.Facade.CurrentPage", PopularItems.CurrentPage.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalPages", PopularItems.TotalPages.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalItemsPerPage", TraktSettings.MaxPopularMoviesRequest.ToString()); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendShowCreditsToFacade(TraktPersonShowCredits credits) { if (credits == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); CurrentView = View.Summary; LoadPersonSummary(); return; } // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // set the current view CurrentView = View.ShowCredits; var personImages = new List<GUITmdbImage>(); int itemId = 0; GUIPersonListItem item = null; #region Cast // Add all the Cast and Crew items if (credits.Cast != null && credits.Cast.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Actor, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Cast.Count); item.TVTag = Credit.Cast; item.Images = images; item.MusicTag = credits; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Crew if (credits.Crew != null) { #region Production if (credits.Crew.Production != null && credits.Crew.Production.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Production, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Production.Count); item.TVTag = Credit.Production; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Directing if (credits.Crew.Directing != null && credits.Crew.Directing.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Directing, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Directing.Count); item.TVTag = Credit.Directing; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Writing if (credits.Crew.Writing != null && credits.Crew.Writing.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Writing, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Writing.Count); item.TVTag = Credit.Writing; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Art if (credits.Crew.Art != null && credits.Crew.Art.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Art, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Art.Count); item.TVTag = Credit.Art; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Camera if (credits.Crew.Camera != null && credits.Crew.Camera.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Camera, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.Camera.Count); item.TVTag = Credit.Camera; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Costume and Makeup if (credits.Crew.CostumeAndMakeUp != null && credits.Crew.CostumeAndMakeUp.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.CostumeAndMakeUp, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.ShowCount, credits.Crew.CostumeAndMakeUp.Count); item.TVTag = Credit.CostumeAndMakeUp; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion #region Sound if (credits.Crew.Sound != null && credits.Crew.Sound.Count > 0) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = CurrentPerson.Ids.TmdbId } }; personImages.Add(images); item = new GUIPersonListItem(Translation.Sound, (int)TraktGUIWindows.PersonSummary); item.Label2 = string.Format(Translation.MovieCount, credits.Crew.Sound.Count); item.TVTag = Credit.Sound; item.MusicTag = credits; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnItemSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } #endregion } #endregion if (Facade.Count == 0) { GUIUtils.ShowNotifyDialog(Translation.ShowCredits, Translation.NoCreditsFound); CurrentView = View.Summary; LoadPersonSummary(); return; } // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIPersonListItem.GetImages(personImages, false); }
private void SendCreditResultsToFacade(TraktCredits credits) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (credits == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Show = null; return; } int itemId = 0; var personImages = new List<GUITmdbImage>(); // Add each character if (Type == CreditType.Cast && credits.Cast != null) { foreach (var person in credits.Cast) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(string.IsNullOrEmpty(person.Character) ? person.Person.Name : string.Format(Translation.ActorAndRole, person.Person.Name, person.Character), (int)TraktGUIWindows.CreditsShow); item.Person = person.Person; item.CreditType = Credit.Cast; item.Character = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCastSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } // add each crew member if (Type == CreditType.Crew && credits.Crew != null) { if (credits.Crew.Directing != null) { foreach (var person in credits.Crew.Directing) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Directing; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Writing != null) { foreach (var person in credits.Crew.Writing) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Writing; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Production != null) { foreach (var person in credits.Crew.Production) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Production; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Art != null) { foreach (var person in credits.Crew.Art) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Art; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Camera != null) { foreach (var person in credits.Crew.Camera) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Camera; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.CostumeAndMakeUp != null) { foreach (var person in credits.Crew.CostumeAndMakeUp) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.CostumeAndMakeUp; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } if (credits.Crew.Sound != null) { foreach (var person in credits.Crew.Sound) { // add image for download var images = new GUITmdbImage { PeopleImages = new TmdbPeopleImages { Id = person.Person.Ids.TmdbId } }; personImages.Add(images); var item = new GUIPersonListItem(person.Person.Name, (int)TraktGUIWindows.CreditsShow); item.Label2 = GUICommon.GetTranslatedCreditJob(person.Job); item.Person = person.Person; item.CreditType = Credit.Sound; item.Job = person; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnCrewSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } } } // if nothing to display exit if (Facade.Count == 0) { GUIUtils.ShowNotifyDialog(Type == CreditType.Crew ? Translation.Crew : Translation.Cast, Translation.NoCreditsFound); GUIWindowManager.ShowPreviousWindow(); Show = null; return; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", Facade.Count.ToString(), Facade.Count > 1 ? Translation.People : Translation.Person)); // Download images Async and set to facade GUIPersonListItem.GetImages(personImages, false); }
private void SendRecentlyAddedToFacade(IEnumerable<TraktActivity.Activity> activities) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // protected profiles might return null if (activities == null || activities.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.UserHasNoRecentAddedEpisodes); PreviousUser = CurrentUser; CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; int episodeCount = 0; var showImages = new List<GUITmdbImage>(); // Add each item added foreach (var activity in activities) { // bad data in API if (activity.Show == null || activity.Episodes == null) continue; // trakt returns an episode array per activity // you may add more than one in bulk foreach (var episode in activity.Episodes) { // prevent too many episodes loading in facade // its possible that 1 activity item can represent many episodes // e.g. user could of added 400 episodes of The Simpsons if (episodeCount >= 100) continue; var episodeSummary = new TraktEpisodeSummaryEx { Episode = episode, Show = activity.Show }; // skip invalid episodes if (episodeSummary.Episode.Number == 0) continue; var item = new GUIEpisodeListItem(episodeSummary.ToString(), (int)TraktGUIWindows.RecentAddedEpisodes); // add images for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = episodeSummary.Show.Ids.Tmdb, Season = episodeSummary.Episode.Season, Episode = episodeSummary.Episode.Number, AirDate = episodeSummary.Episode.FirstAired == null ? null : episodeSummary.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); // add user added date as second label item.Label2 = activity.Timestamp.FromISO8601().ToShortDateString(); item.TVTag = episodeSummary; item.Episode = episode; item.Show = activity.Show; item.Images = images; item.Date = activity.Timestamp.FromISO8601().ToLongDateString(); item.ItemId = Int32.MaxValue - itemId++; item.IsPlayed = episode.IsWatched(activity.Show); item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); episodeCount++; } } // set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= episodeCount) Facade.SelectIndex(PreviousSelectedIndex - 1); else Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", episodeCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", episodeCount.ToString(), episodeCount > 1 ? Translation.Episodes : Translation.Episode)); // Download show images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendShowSeasonsToFacade(IEnumerable<TraktSeasonSummary> seasons) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (seasons == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (seasons.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSeasonsForShow); GUIWindowManager.ShowPreviousWindow(); return; } // sort ascending or descending order if (!TraktSettings.SortSeasonsAscending) { seasons = seasons.OrderByDescending(s => s.Number).ToList(); } else { seasons = seasons.OrderBy(s => s.Number).ToList(); } int itemId = 0; var seasonImages = new List<GUITmdbImage>(); // skip over any seasons with no episodes foreach (var season in seasons.Where(s => s.EpisodeCount > 0)) { // add image for download var images = new GUITmdbImage { SeasonImages = new TmdbSeasonImages { Id = Show.Ids.Tmdb, Season = season.Number } }; seasonImages.Add(images); string itemLabel = season.Number == 0 ? Translation.Specials : string.Format("{0} {1}", Translation.Season, season.Number.ToString()); var item = new GUISeasonListItem(itemLabel, (int)TraktGUIWindows.ShowSeasons); item.Label2 = string.Format("{0} {1}", season.EpisodeCount, Translation.Episodes); item.TVTag = season; item.Show = Show; item.Season = season; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = season.IsWatched(Show); item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnSeasonSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", seasons.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", seasons.Count().ToString(), seasons.Count() > 1 ? Translation.Seasons : Translation.Season)); // Download show images Async and set to facade GUISeasonListItem.GetImages(seasonImages); }
private void SendWatchListShowsToFacade(IEnumerable <TraktShowWatchList> showWatchlist) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (showWatchlist == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (showWatchlist.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoShowWatchList, CurrentUser)); CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } // sort shows var sortedList = showWatchlist.ToList(); sortedList.Sort(new GUIListItemShowSorter(TraktSettings.SortByWatchListShows.Field, TraktSettings.SortByWatchListShows.Direction)); int itemId = 0; var showImages = new List <GUITmdbImage>(); // Add each show foreach (var listItem in sortedList) { // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb } }; showImages.Add(images); GUIShowListItem item = new GUIShowListItem(listItem.Show.Title, (int)TraktGUIWindows.WatchedListShows); item.Label2 = listItem.Show.Year.ToString(); item.TVTag = listItem; item.Show = listItem.Show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= sortedList.Count()) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", sortedList.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", sortedList.Count().ToString(), sortedList.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendRecommendedMoviesToFacade(IEnumerable <TraktMovieSummary> movies) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (movies == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (movies.Count() == 0) { // try again if (genreButton == null) { // restore defaults for next time so we can get recommendations if (CurrentGenre != "All") { CurrentGenre = "All"; } _RecommendedMovies = null; GUIWindowManager.ShowPreviousWindow(); } else { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoMovieRecommendations); GUIControl.FocusControl(GetID, genreButton.GetID); } return; } // sort movies var movieList = movies.ToList(); movieList.Sort(new GUIListItemMovieSorter(TraktSettings.SortByRecommendedMovies.Field, TraktSettings.SortByRecommendedMovies.Direction)); int itemId = 0; var movieImages = new List <GUITmdbImage>(); // Add each movie foreach (var movie in movieList) { var item = new GUIMovieListItem(movie.Title, (int)TraktGUIWindows.RecommendationsMovies); // add image for download var image = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = movie.Ids.Tmdb } }; movieImages.Add(image); item.Label2 = movie.Year == null ? "----" : movie.Year.ToString(); item.TVTag = movie; item.Movie = movie; item.Images = image; item.ItemId = Int32.MaxValue - itemId; // movie in collection doesnt nessararily mean // that the movie is locally available on this computer // as 'keep library clean' might not be enabled //item.IsRemote = !movie.InCollection; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= movies.Count()) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", movies.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", movies.Count().ToString(), movies.Count() > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private GUITmdbImage GetTmdbImage(TraktListItem listItem) { var images = new GUITmdbImage(); switch (listItem.Type) { case "movie": images.MovieImages = new TmdbMovieImages { Id = listItem.Movie.Ids.Tmdb }; break; case "show": images.ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb }; break; case "season": images.ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = listItem.Show.Ids.Tmdb, Season = listItem.Season.Number }; break; case "episode": images.ShowImages = new TmdbShowImages { Id = listItem.Show.Ids.Tmdb }; images.SeasonImages = new TmdbSeasonImages { Id = listItem.Show.Ids.Tmdb, Season = listItem.Episode.Season }; break; case "person": images.PeopleImages = new TmdbPeopleImages { Id = listItem.Person.Ids.TmdbId }; break; } return images; }
private void SendRecentlyWatchedToFacade(IEnumerable <TraktEpisodeHistory> recentlyWatched) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); // protected profiles might return null if (recentlyWatched == null || recentlyWatched.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.UserHasNotWatchedEpisodes); PreviousUser = CurrentUser; CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; var showImages = new List <GUITmdbImage>(); // Add each item watched foreach (var recent in recentlyWatched) { // bad data in API if (recent.Show == null || recent.Episode == null) { continue; } // skip invalid episodes if (recent.Episode.Number == 0) { continue; } string episodeName = string.Format("{0} - {1}x{2} - {3}", recent.Show.Title, recent.Episode.Season, recent.Episode.Number, recent.Episode.Title ?? string.Format("{0} {1}", Translation.Episode, recent.Episode.Number)); var item = new GUIEpisodeListItem(episodeName, (int)TraktGUIWindows.RecentWatchedEpisodes); // add images for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = recent.Show.Ids.Tmdb, Season = recent.Episode.Season, Episode = recent.Episode.Number, AirDate = recent.Episode.FirstAired == null ? null : recent.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); // add user watched date as second label item.Label2 = recent.WatchedAt.ToPrettyDateTime(); item.Date = recent.WatchedAt.FromISO8601().ToLongDateString(); item.TVTag = recent; item.Episode = recent.Episode; item.Show = recent.Show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IsPlayed = CurrentUser != TraktSettings.Username ? recent.Episode.IsWatched(recent.Show) : false; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= recentlyWatched.Count()) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", recentlyWatched.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", recentlyWatched.Count().ToString(), recentlyWatched.Count() > 1 ? Translation.Episodes : Translation.Episode)); // Download show images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendBoxOfficeToFacade(IEnumerable <TraktMovieBoxOffice> boxOffice) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (boxOffice == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (boxOffice.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoBoxOffice); GUIWindowManager.ShowPreviousWindow(); return; } int itemId = 0; var movieImages = new List <GUITmdbImage>(); // Add each movie foreach (var box in boxOffice.Where(b => !string.IsNullOrEmpty(b.Movie.Title))) { var item = new GUIMovieListItem(box.Movie.Title, (int)TraktGUIWindows.BoxOffice); // add image for download var image = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = box.Movie.Ids.Tmdb } }; movieImages.Add(image); item.Label2 = box.Movie.Year == null ? "----" : box.Movie.Year.ToString(); item.TVTag = box; item.Movie = box.Movie; item.Images = image; item.IsPlayed = box.Movie.IsWatched(); item.ItemId = Int32.MaxValue - itemId; // movie in collection doesnt nessararily mean // that the movie is locally available on this computer // as 'keep library clean' might not be enabled //item.IsRemote = !movie.InCollection; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.CurrentLayout = CurrentLayout; GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", boxOffice.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", boxOffice.Count().ToString(), boxOffice.Count() > 1 ? Translation.Movies : Translation.Movie)); int totalRevenue = boxOffice.Sum(b => b.Revenue); GUIUtils.SetProperty("#Trakt.BoxOffice.Total.Revenue", string.Format("{0:C0}", totalRevenue)); GUIUtils.SetProperty("#Trakt.BoxOffice.Total.Revenue.Raw", totalRevenue.ToString()); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendWatchListEpisodesToFacade(IEnumerable <TraktEpisodeWatchList> episodeWatchlist) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (episodeWatchlist == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (episodeWatchlist.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoEpisodeWatchList, CurrentUser)); CurrentUser = TraktSettings.Username; GUIWindowManager.ShowPreviousWindow(); return; } int itemCount = 0; var showImages = new List <GUITmdbImage>(); // Add each show and underlying episodes // Should we do facade levels (Series,Season,Episodes)? foreach (var watchlistItem in episodeWatchlist) { // add image for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = watchlistItem.Show.Ids.Tmdb, Season = watchlistItem.Episode.Season, Episode = watchlistItem.Episode.Number, AirDate = watchlistItem.Episode.FirstAired == null ? null : watchlistItem.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); var item = new GUIEpisodeListItem(watchlistItem.ToString(), (int)TraktGUIWindows.WatchedListEpisodes); item.Label2 = watchlistItem.Episode.FirstAired == null ? " " : watchlistItem.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString(); item.TVTag = watchlistItem; item.Episode = watchlistItem.Episode; item.Show = watchlistItem.Show; item.Date = watchlistItem.ListedAt.FromISO8601().ToShortDateString(); item.Images = images; item.ItemId = Int32.MaxValue - itemCount; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemCount++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= itemCount) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", itemCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", itemCount.ToString(), itemCount > 1 ? Translation.Episodes : Translation.Episode)); // Download episode images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }
private void SendCalendarToFacade(Dictionary <string, List <TraktMovieCalendar> > calendar) { // check if we got a bad response if (calendar == null) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.ErrorCalendar); // set defaults MovieCalendar = null; LastRequest = new DateTime(); return; } // clear facade GUIControl.ClearControl(GetID, Facade.GetID); int itemCount = 0; var movieImages = new List <GUITmdbImage>(); // Add Previous Days Item so user can go back to previous calendar entries var prevItem = new GUIListItem(string.Format(Translation.PreviousDays, TraktSettings.MovieCalendarMaxDays)) { IconImage = "traktPreviousPage.png", IconImageBig = "traktPreviousPage.png", ThumbnailImage = "traktPreviousPage.png", TVTag = "previous", IsFolder = true }; prevItem.OnItemSelected += OnPrevWeekSelected; Facade.Add(prevItem); // Add each days episodes to the list // Use Label3 of facade for Day/Group Idenitfier foreach (var day in calendar) { var moviesInDay = day.Value; // filter hidden shows if (FilterHiddenMovies && !string.IsNullOrEmpty(TraktSettings.UserAccessToken)) { // for each hidden trakt show in the calendar, remove from our request // this only needs to be done if we have manually hidden a movie whilst using a cached calendar moviesInDay.RemoveAll(m => m.Movie.IsHidden("calendar")); } if (moviesInDay.Count() > 0) { // add day header var item = new GUIListItem(); item.Label3 = GetDayHeader(day.Key.FromISO8601()); item.IconImage = "defaultTraktPoster.png"; item.IconImageBig = "defaultTraktPosterBig.png"; item.ThumbnailImage = "defaultTraktPosterBig.png"; item.OnItemSelected += OnCalendarDateSelected; Utils.SetDefaultIcons(item); Facade.Add(item); foreach (var calendarItem in moviesInDay) { var movieItem = new GUIMovieListItem(calendarItem.Movie.Title, (int)TraktGUIWindows.CalendarMovies); // add image for download var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = calendarItem.Movie.Ids.Tmdb } }; movieImages.Add(images); // extended skin properties movieItem.Date = DateTime.Parse(day.Key).ToLongDateString(); movieItem.SelectedIndex = (itemCount + 1).ToString(); movieItem.Images = images; movieItem.TVTag = calendarItem; movieItem.Movie = calendarItem.Movie; movieItem.ItemId = Int32.MaxValue - itemCount; movieItem.IsPlayed = calendarItem.Movie.IsWatched(); movieItem.IconImage = "defaultTraktPoster.png"; movieItem.IconImageBig = "defaultTraktPosterBig.png"; movieItem.ThumbnailImage = "defaultTraktPosterBig.png"; movieItem.OnItemSelected += OnMovieSelected; Utils.SetDefaultIcons(movieItem); Facade.Add(movieItem); itemCount++; } } } // if nothing airing this week, then indicate to user if (itemCount == 0) { var item = new GUIListItem() { Label3 = Translation.NoMoviesThisWeek, IconImage = "defaultTraktPoster.png", IconImageBig = "defaultTraktPosterBig.png", ThumbnailImage = "defaultTraktPosterBig.png" }; item.OnItemSelected += OnCalendarDateSelected; Utils.SetDefaultIcons(item); Facade.Add(item); } // Add Next Days Item so user can fetch next days calendar var nextItem = new GUIListItem(string.Format(Translation.NextDays, TraktSettings.MovieCalendarMaxDays)) { IconImage = "traktNextPage.png", IconImageBig = "traktNextPage.png", ThumbnailImage = "traktNextPage.png", TVTag = "next", IsFolder = true }; nextItem.OnItemSelected += OnNextWeekSelected; Facade.Add(nextItem); // Set Facade Layout Facade.CurrentLayout = GUIFacadeControl.Layout.List; GUIControl.FocusControl(GetID, Facade.GetID); // if we cached the last selected index then use it // e.g. returning from another window and the cache has not expired if (PreviousSelectedIndex > 0) { Facade.SelectedListItemIndex = PreviousSelectedIndex; } else { // beginning of a page has a previous button // and a date header, so skip 2 items Facade.SelectedListItemIndex = 2; } // set facade properties GUIUtils.SetProperty("#itemcount", itemCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", itemCount.ToString(), itemCount > 1 ? Translation.Movies : Translation.Movie)); // Download movie images Async and set to facade GUIMovieListItem.GetImages(movieImages); }
private void SendRecommendedShowsToFacade(IEnumerable <TraktShowSummary> shows) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (shows == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } if (shows.Count() == 0) { // try again if (genreButton == null) { // restore defaults for next time so we can get recommendations if (CurrentGenre != "All") { CurrentGenre = "All"; } _RecommendedShows = null; GUIWindowManager.ShowPreviousWindow(); } else { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoShowRecommendations); GUIControl.FocusControl(GetID, genreButton.GetID); } return; } // sort shows var showList = shows.ToList(); showList.Sort(new GUIListItemShowSorter(TraktSettings.SortByRecommendedShows.Field, TraktSettings.SortByRecommendedShows.Direction)); int itemId = 0; var showImages = new List <GUITmdbImage>(); foreach (var show in showList) { var item = new GUIShowListItem(show.Title, (int)TraktGUIWindows.RecommendationsShows); // add image for download var images = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = show.Ids.Tmdb } }; showImages.Add(images); item.Label2 = show.Year.ToString(); item.TVTag = show; item.Show = show; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (PreviousSelectedIndex >= shows.Count()) { Facade.SelectIndex(PreviousSelectedIndex - 1); } else { Facade.SelectIndex(PreviousSelectedIndex); } // set facade properties GUIUtils.SetProperty("#itemcount", shows.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", shows.Count().ToString(), shows.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendAnticipatedShowsToFacade(TraktShowsAnticipated anticipatedItems) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (anticipatedItems == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); AnticipatedShowPages = null; return; } // filter shows var filteredAnticipatedList = FilterAnticipatedShows(anticipatedItems.Shows).Where(s => !string.IsNullOrEmpty(s.Show.Title)).ToList(); // sort shows filteredAnticipatedList.Sort(new GUIListItemShowSorter(TraktSettings.SortByAnticipatedShows.Field, TraktSettings.SortByAnticipatedShows.Direction)); int itemId = 0; var showImages = new List<GUITmdbImage>(); // Add Previous Page Button if (anticipatedItems.CurrentPage != 1) { var prevPageItem = new GUIShowListItem(Translation.PreviousPage, (int)TraktGUIWindows.AnticipatedShows); prevPageItem.IsPrevPageItem = true; prevPageItem.IconImage = "traktPreviousPage.png"; prevPageItem.IconImageBig = "traktPreviousPage.png"; prevPageItem.ThumbnailImage = "traktPreviousPage.png"; prevPageItem.OnItemSelected += OnPreviousPageSelected; prevPageItem.IsFolder = true; Facade.Add(prevPageItem); itemId++; } foreach (var anticipatedItem in filteredAnticipatedList) { var item = new GUIShowListItem(anticipatedItem.Show.Title, (int)TraktGUIWindows.AnticipatedShows); // add image for download var image = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = anticipatedItem.Show.Ids.Tmdb } }; showImages.Add(image); item.Label2 = anticipatedItem.Show.Year.ToString(); item.TVTag = anticipatedItem; item.Show = anticipatedItem.Show; item.Images = image; item.ItemId = Int32.MaxValue - itemId; item.IconImage = GUIImageHandler.GetDefaultPoster(false); item.IconImageBig = GUIImageHandler.GetDefaultPoster(); item.ThumbnailImage = GUIImageHandler.GetDefaultPoster(); item.OnItemSelected += OnShowSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Add Next Page Button if (anticipatedItems.CurrentPage != anticipatedItems.TotalPages) { var nextPageItem = new GUIShowListItem(Translation.NextPage, (int)TraktGUIWindows.AnticipatedShows); nextPageItem.IsNextPageItem = true; nextPageItem.IconImage = "traktNextPage.png"; nextPageItem.IconImageBig = "traktNextPage.png"; nextPageItem.ThumbnailImage = "traktNextPage.png"; nextPageItem.OnItemSelected += OnNextPageSelected; nextPageItem.IsFolder = true; Facade.Add(nextPageItem); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", filteredAnticipatedList.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredAnticipatedList.Count(), filteredAnticipatedList.Count() > 1 ? Translation.SeriesPlural : Translation.Series)); // Page Properties GUIUtils.SetProperty("#Trakt.Facade.CurrentPage", anticipatedItems.CurrentPage.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalPages", anticipatedItems.TotalPages.ToString()); GUIUtils.SetProperty("#Trakt.Facade.TotalItemsPerPage", TraktSettings.MaxAnticipatedShowsRequest.ToString()); // Download show images Async and set to facade GUIShowListItem.GetImages(showImages); }
private void SendSearchResultsToFacade(IEnumerable<TraktEpisodeSummaryEx> episodes) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (episodes == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Episodes = null; return; } if (episodes.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); Episodes = null; return; } int itemId = 0; var showImages = new List<GUITmdbImage>(); // Add each show foreach (var episodeSummary in episodes) { // add images for download var images = new GUITmdbImage { EpisodeImages = new TmdbEpisodeImages { Id = episodeSummary.Show.Ids.Tmdb, Season = episodeSummary.Episode.Season, Episode = episodeSummary.Episode.Number, AirDate = episodeSummary.Episode.FirstAired == null ? null : episodeSummary.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString() } }; showImages.Add(images); var item = new GUIEpisodeListItem(episodeSummary.ToString(), (int)TraktGUIWindows.SearchEpisodes); item.Label2 = episodeSummary.Show.Year.ToString(); item.TVTag = episodeSummary; item.Episode = episodeSummary.Episode; item.Show = episodeSummary.Show; item.Images = images; item.IsPlayed = episodeSummary.Episode.IsWatched(episodeSummary.Show); item.ItemId = Int32.MaxValue - itemId; item.IconImage = "defaultTraktEpisode.png"; item.IconImageBig = "defaultTraktEpisodeBig.png"; item.ThumbnailImage = "defaultTraktEpisodeBig.png"; item.OnItemSelected += OnEpisodeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) PreviousSelectedIndex = 0; Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", episodes.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", episodes.Count().ToString(), episodes.Count() > 1 ? Translation.Episodes : Translation.Episode)); // Download images Async and set to facade GUIEpisodeListItem.GetImages(showImages); }