/// <summary> /// UnRate a single show on trakt.tv /// </summary> public static TraktSyncResponse RemoveShowFromRatings(TraktShow show) { var shows = new TraktSyncShows { Shows = new List<TraktShow>() { new TraktShow { Ids = show.Ids } } }; return RemoveShowsFromRatings(shows); }
public static void CheckAndPlayFirstUnwatched(TraktShow show) { CheckAndPlayFirstUnwatched(show, false); }
public static void MarkShowAsSeen(TraktShow show) { TraktShowSeen seenShow = new TraktShowSeen { Tvdb = show.Tvdb, Imdb = show.Imdb, Title = show.Title, Year = show.Year, Username = TraktSettings.Username, Password = TraktSettings.Password }; Thread seenThread = new Thread(o => { var oShow = o as TraktShowSeen; TraktLogger.Info("Marking {0} as seen", oShow.Title); var response = TraktAPI.TraktAPI.SyncShowAsSeen(oShow); TraktAPI.TraktAPI.LogTraktResponse(response); }) { IsBackground = true, Name = "MarkWatched" }; seenThread.Start(seenShow); }
internal static void SetShowProperties(TraktShow show) { if (show == null) return; SetProperty("#Trakt.Show.Imdb", show.Imdb); SetProperty("#Trakt.Show.Tvdb", show.Tvdb); SetProperty("#Trakt.Show.TvRage", show.TvRage); SetProperty("#Trakt.Show.Title", show.Title.RemapHighOrderChars()); SetProperty("#Trakt.Show.Url", show.Url); SetProperty("#Trakt.Show.AirDay", show.AirDay); SetProperty("#Trakt.Show.AirTime", show.AirTime); SetProperty("#Trakt.Show.AirTimeLocalized", show.AirTimeLocalized); SetProperty("#Trakt.Show.Certification", show.Certification); SetProperty("#Trakt.Show.Country", show.Country); SetProperty("#Trakt.Show.FirstAired", show.FirstAired.FromEpoch().ToShortDateString()); SetProperty("#Trakt.Show.Network", show.Network); SetProperty("#Trakt.Show.Overview", string.IsNullOrEmpty(show.Overview) ? Translation.NoShowSummary : show.Overview.RemapHighOrderChars()); SetProperty("#Trakt.Show.Runtime", show.Runtime.ToString()); SetProperty("#Trakt.Show.Year", show.Year.ToString()); SetProperty("#Trakt.Show.Genres", string.Join(", ", show.Genres.ToArray())); SetProperty("#Trakt.Show.InWatchList", show.InWatchList.ToString()); SetProperty("#Trakt.Show.Watched", show.Watched.ToString()); SetProperty("#Trakt.Show.Plays", show.Plays.ToString()); SetProperty("#Trakt.Show.Rating", show.Rating); SetProperty("#Trakt.Show.RatingAdvanced", show.RatingAdvanced.ToString()); SetProperty("#Trakt.Show.Ratings.Icon", (show.Ratings.LovedCount > show.Ratings.HatedCount) ? "love" : "hate"); SetProperty("#Trakt.Show.Ratings.HatedCount", show.Ratings.HatedCount.ToString()); SetProperty("#Trakt.Show.Ratings.LovedCount", show.Ratings.LovedCount.ToString()); SetProperty("#Trakt.Show.Ratings.Percentage", show.Ratings.Percentage.ToString()); SetProperty("#Trakt.Show.Ratings.Votes", show.Ratings.Votes.ToString()); SetProperty("#Trakt.Show.FanartImageFilename", show.Images.FanartImageFilename); SetProperty("#Trakt.Show.PosterImageFilename", show.Images.PosterImageFilename); SetProperty("#Trakt.Show.BannerImageFilename", show.Images.BannerImageFilename); }
public static void AddShowToLibrary(TraktShow show) { TraktShowLibrary libShow = new TraktShowLibrary { Tvdb = show.Tvdb, Imdb = show.Imdb, Title = show.Title, Year = show.Year, Username = TraktSettings.Username, Password = TraktSettings.Password }; Thread libThread = new Thread(o => { var oShow = o as TraktShowLibrary; TraktLogger.Info("Adding {0} to library", oShow.Title); var response = TraktAPI.TraktAPI.SyncShowAsLibrary(oShow); TraktAPI.TraktAPI.LogTraktResponse(response); }) { IsBackground = true, Name = "AddLibrary" }; libThread.Start(libShow); }
private void RemoveShowFromWatchList(TraktShow show) { Thread syncThread = new Thread(delegate(object obj) { TraktAPI.TraktAPI.SyncShowWatchList(CreateSyncData(obj as TraktShow), TraktSyncModes.unwatchlist); }) { IsBackground = true, Name = "Removing Show from Watch List" }; syncThread.Start(show); }
internal static void CreateTrendingShowsContextMenu(ref IDialogbox dlg, TraktShow show, bool dashboard) { GUIListItem listItem = null; // Add/Remove Watch List if (!show.InWatchList) { listItem = new GUIListItem(Translation.AddToWatchList); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.AddToWatchList; } else { listItem = new GUIListItem(Translation.RemoveFromWatchList); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.RemoveFromWatchList; } // Show Season Information listItem = new GUIListItem(Translation.ShowSeasonInfo); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.ShowSeasonInfo; // Mark Show as Watched listItem = new GUIListItem(Translation.MarkAsWatched); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.MarkAsWatched; // Add Show to Library listItem = new GUIListItem(Translation.AddToLibrary); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.AddToLibrary; // Add to Custom List listItem = new GUIListItem(Translation.AddToList + "..."); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.AddToList; if (TraktHelper.IsOnlineVideosAvailableAndEnabled) { listItem = new GUIListItem(Translation.Trailers); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.Trailers; } // Filters if (!dashboard) { listItem = new GUIListItem(Translation.Filters + "..."); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.Filters; } // Related Shows listItem = new GUIListItem(Translation.RelatedShows + "..."); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.Related; // Rate Show listItem = new GUIListItem(Translation.RateShow); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.Rate; // Shouts listItem = new GUIListItem(Translation.Shouts + "..."); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.Shouts; // Change Layout if (GUIWindowManager.ActiveWindow == (int)TraktGUIWindows.TrendingShows) { listItem = new GUIListItem(Translation.ChangeLayout); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.ChangeLayout; } if (TraktHelper.IsMpNZBAvailableAndEnabled) { // Search for show with mpNZB listItem = new GUIListItem(Translation.SearchWithMpNZB); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.SearchWithMpNZB; } if (TraktHelper.IsMyTorrentsAvailableAndEnabled) { // Search for show with MyTorrents listItem = new GUIListItem(Translation.SearchTorrent); dlg.Add(listItem); listItem.ItemId = (int)TrendingContextMenuItem.SearchTorrent; } }
private bool ShowMatch(DBSeries localShow, TraktShow onlineShow) { if (onlineShow.Ids.Tvdb != null && onlineShow.Ids.Tvdb > 0) { return localShow[DBSeries.cID] == onlineShow.Ids.Tvdb; } else if (BasicHandler.IsValidImdb(onlineShow.Ids.Imdb) && BasicHandler.IsValidImdb(localShow[DBOnlineSeries.cIMDBID])) { return localShow[DBOnlineSeries.cIMDBID] == onlineShow.Ids.Imdb; } else { return BasicHandler.IsTitleMatch(localShow[DBOnlineSeries.cOriginalName], onlineShow.Title, onlineShow.Year) && localShow.Year.ToNullableInt32() == onlineShow.Year; } }
private bool GetLoadingParameter() { if (_loadParameter == null) { // maybe re-loading, so check previous window id if (Show != null && !string.IsNullOrEmpty(Show.Tvdb)) return true; return false; } Show = _loadParameter.FromJSON<TraktShow>(); if (Show == null || string.IsNullOrEmpty(Show.Tvdb)) return false; return true; }
private void DismissRecommendation(TraktShow show) { Thread syncThread = new Thread(delegate(object obj) { TraktShow dismissShow = obj as TraktShow; var response = TraktAPI.TraktAPI.DismissRecommendedShow(dismissShow.Ids.Trakt.ToString()); }) { IsBackground = true, Name = "DismissRecommendation" }; syncThread.Start(show); }
private bool EpisodeMatch(DBEpisode localEpisode, TraktEpisode onlineEpisode, TraktShow onlineShow) { // episode ids are unreliable on themoviedb.org, they seem to be wrong for quite a few episodes! //if (onlineEpisode.Ids.TvdbId != null && onlineEpisode.Ids.TvdbId > 0) //{ // return localEpisode[DBOnlineEpisode.cID] == onlineEpisode.Ids.TvdbId; //} //else if (BasicHandler.IsValidImdb(onlineEpisode.Ids.ImdbId) && BasicHandler.IsValidImdb(localEpisode[DBOnlineEpisode.cIMDBID])) //{ // return BasicHandler.GetProperImdbId(localEpisode[DBOnlineEpisode.cIMDBID]) == onlineEpisode.Ids.ImdbId; //} if (onlineShow.Ids.Tvdb != null && onlineShow.Ids.Tvdb > 0) { return localEpisode[DBOnlineEpisode.cSeriesID] == onlineShow.Ids.Tvdb && localEpisode[DBOnlineEpisode.cSeasonIndex] == onlineEpisode.Season && localEpisode[DBOnlineEpisode.cEpisodeIndex] == onlineEpisode.Number; } else if (BasicHandler.IsValidImdb(onlineShow.Ids.Imdb)) { var show = Helper.getCorrespondingSeries(localEpisode[DBOnlineEpisode.cSeriesID]); if (show == null) return false; return BasicHandler.GetProperImdbId(show[DBOnlineSeries.cIMDBID]) == onlineShow.Ids.Imdb && localEpisode[DBOnlineEpisode.cSeasonIndex] == onlineEpisode.Season && localEpisode[DBOnlineEpisode.cEpisodeIndex] == onlineEpisode.Number; } else { var show = Helper.getCorrespondingSeries(localEpisode[DBOnlineEpisode.cSeriesID]); if (show == null) return false; return BasicHandler.IsTitleMatch(show[DBOnlineSeries.cOriginalName], onlineShow.Title, onlineShow.Year) && show.Year.ToNullableInt32() == onlineShow.Year && localEpisode[DBOnlineEpisode.cSeasonIndex] == onlineEpisode.Season && localEpisode[DBOnlineEpisode.cEpisodeIndex] == onlineEpisode.Number; } }
public static TraktSyncResponse AddShowToWatchlist(TraktShow show) { var shows = new TraktSyncShows { Shows = new List<TraktShow>() { show } }; return AddShowsToWatchlist(shows); }
public static TraktSyncResponse AddShowToCollection(TraktShow show) { var shows = new TraktSyncShows { Shows = new List<TraktShow>() { show } }; return AddShowsToCollecton(shows); }
public static TraktSyncResponse RemoveShowFromWatchlist(TraktShow show) { var shows = new TraktSyncShows { Shows = new List<TraktShow>() { show } }; return RemoveShowsFromWatchlist(shows); }
private void DismissRecommendation(TraktShow show) { Thread syncThread = new Thread(delegate(object obj) { TraktShow dismissShow = obj as TraktShow; TraktShowSlug syncShow = new TraktShowSlug { UserName = TraktSettings.Username, Password = TraktSettings.Password, IMDbId = dismissShow.Imdb, TVDbId = dismissShow.Tvdb, Title = dismissShow.Title, Year = dismissShow.Year.ToString() }; TraktResponse response = TraktAPI.TraktAPI.DismissShowRecommendation(syncShow); TraktAPI.TraktAPI.LogTraktResponse<TraktResponse>(response); }) { IsBackground = true, Name = "Dismiss Recommendation" }; syncThread.Start(show); }
internal static void CreateShowsContextMenu(ref IDialogbox dlg, TraktShow show, bool dashboard) { GUIListItem listItem = null; // Add/Remove Watchlist if (!show.IsWatchlisted()) { listItem = new GUIListItem(Translation.AddToWatchList); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.AddToWatchList; } else { listItem = new GUIListItem(Translation.RemoveFromWatchList); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.RemoveFromWatchList; } // Show Season Information listItem = new GUIListItem(Translation.ShowSeasonInfo); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.ShowSeasonInfo; // Mark Show as Watched listItem = new GUIListItem(Translation.MarkAsWatched); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.MarkAsWatched; // Add Show to Library listItem = new GUIListItem(Translation.AddToLibrary); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.AddToLibrary; // Add to Custom List listItem = new GUIListItem(Translation.AddToList); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.AddToList; if (TraktHelper.IsTrailersAvailableAndEnabled) { listItem = new GUIListItem(Translation.Trailers); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.Trailers; } // Filters if (TraktSettings.FilterTrendingOnDashboard || !dashboard) { listItem = new GUIListItem(Translation.Filters + "..."); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.Filters; } // Related Shows listItem = new GUIListItem(Translation.RelatedShows); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.Related; // Rate Show listItem = new GUIListItem(Translation.RateShow); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.Rate; // Comments listItem = new GUIListItem(Translation.Comments); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.Shouts; // Cast & Crew listItem = new GUIListItem(Translation.Cast); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.Cast; listItem = new GUIListItem(Translation.Crew); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.Crew; // Change Layout if (!dashboard) { listItem = new GUIListItem(Translation.ChangeLayout); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.ChangeLayout; } if (TraktHelper.IsMpNZBAvailableAndEnabled) { // Search for show with mpNZB listItem = new GUIListItem(Translation.SearchWithMpNZB); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.SearchWithMpNZB; } if (TraktHelper.IsMyTorrentsAvailableAndEnabled) { // Search for show with MyTorrents listItem = new GUIListItem(Translation.SearchTorrent); dlg.Add(listItem); listItem.ItemId = (int)MediaContextMenuItem.SearchTorrent; } }
private void PublishShowSkinProperties(TraktShow show) { GUICommon.SetShowProperties(show); }
public static void AddSeasonToLibrary(TraktShow show, int season) { if (!GUICommon.CheckLogin(false)) return; var seenThread = new Thread(obj => { var objShow = obj as TraktShow; var syncData = new TraktSyncShowEx { Ids = new TraktShowId { Trakt = objShow.Ids.Trakt, Imdb = objShow.Ids.Imdb.ToNullIfEmpty(), Tmdb = objShow.Ids.Tmdb, Tvdb = objShow.Ids.Tvdb, TvRage = objShow.Ids.TvRage }, Title = show.Title, Year = show.Year, Seasons = new List<TraktSyncShowEx.Season>() }; var seasonObj = new TraktSyncShowEx.Season { Number = season }; syncData.Seasons.Add(seasonObj); TraktLogger.Info("Adding all episodes in season from show to trakt.tv collection. Title = '{0}', Year = '{1}', IMDb ID = '{2}', TVDb ID = '{3}', TMDb ID = '{4}', Season = '{5}'", show.Title, show.Year.ToLogString(), show.Ids.Imdb.ToLogString(), show.Ids.Tvdb.ToLogString(), show.Ids.Tmdb.ToLogString(), season); var response = TraktAPI.TraktAPI.AddShowToCollectionEx(syncData); TraktLogger.LogTraktResponse(response); }) { IsBackground = true, Name = "AddCollection" }; seenThread.Start(show); }
private TraktSyncAll GetSyncItems(TraktListItem listItem) { var syncItems = new TraktSyncAll(); switch (listItem.Type) { case "movie": var movie = new TraktMovie { Ids = new TraktMovieId { Trakt = listItem.Movie.Ids.Trakt } }; syncItems.Movies = new List<TraktMovie>(); syncItems.Movies.Add(movie); break; case "show": var show = new TraktShow { Ids = new TraktShowId { Trakt = listItem.Show.Ids.Trakt } }; syncItems.Shows = new List<TraktShow>(); syncItems.Shows.Add(show); break; case "season": var season = new TraktSeason { Ids = new TraktSeasonId { Trakt = listItem.Season.Ids.Trakt } }; syncItems.Seasons = new List<TraktSeason>(); syncItems.Seasons.Add(season); break; case "episode": var episode = new TraktEpisode { Ids = new TraktEpisodeId { Trakt = listItem.Episode.Ids.Trakt } }; syncItems.Episodes = new List<TraktEpisode>(); syncItems.Episodes.Add(episode); break; case "person": var person = new TraktPerson { Ids = new TraktPersonId { Trakt = listItem.Person.Ids.Trakt } }; syncItems.People = new List<TraktPerson>(); syncItems.People.Add(person); break; } return syncItems; }
public static void MarkShowAsWatched(TraktShow show) { if (!GUICommon.CheckLogin(false)) return; var seenThread = new Thread(obj => { var objShow = obj as TraktShow; var syncData = new TraktShow { Ids = new TraktShowId { Trakt = objShow.Ids.Trakt, Imdb = objShow.Ids.Imdb.ToNullIfEmpty(), Tmdb = objShow.Ids.Tmdb, Tvdb = objShow.Ids.Tvdb, TvRage = objShow.Ids.TvRage }, Title = show.Title, Year = show.Year }; TraktLogger.Info("Adding all episodes from show to trakt.tv watched history. Title = '{0}', Year = '{1}', IMDb ID = '{2}', TVDb ID = '{3}', TMDb ID = '{4}'", show.Title, show.Year.ToLogString(), show.Ids.Imdb.ToLogString(), show.Ids.Tvdb.ToLogString(), show.Ids.Tmdb.ToLogString()); var response = TraktAPI.TraktAPI.AddShowToWatchedHistory(syncData); TraktLogger.LogTraktResponse(response); }) { IsBackground = true, Name = "MarkWatched" }; seenThread.Start(show); }
internal static bool RateShow(TraktShow show) { TraktRateSeries rateObject = new TraktRateSeries { SeriesID = show.Tvdb, Title = show.Title, Year = show.Year.ToString(), Rating = show.RatingAdvanced.ToString(), UserName = TraktSettings.Username, Password = TraktSettings.Password }; int prevRating = show.RatingAdvanced; int newRating = int.Parse(GUIUtils.ShowRateDialog<TraktRateSeries>(rateObject)); if (newRating == -1) return false; // If previous rating not equal to current rating then // update skin properties to reflect changes // This is not really needed but saves waiting for response // from server to calculate fields...we can do it ourselves if (prevRating != newRating) { show.RatingAdvanced = newRating; // if not rated previously bump up the votes if (prevRating == 0) { show.Ratings.Votes++; if (show.RatingAdvanced > 5) { show.Rating = "love"; show.Ratings.LovedCount++; } else { show.Rating = "hate"; show.Ratings.HatedCount++; } } if (prevRating != 0 && prevRating > 5 && newRating <= 5) { show.Rating = "hate"; show.Ratings.LovedCount--; show.Ratings.HatedCount++; } if (prevRating != 0 && prevRating <= 5 && newRating > 5) { show.Rating = "love"; show.Ratings.LovedCount++; show.Ratings.HatedCount--; } if (newRating == 0) { if (prevRating <= 5) show.Ratings.HatedCount++; show.Ratings.Votes--; show.Rating = "false"; } // Could be in-accurate, best guess if (prevRating == 0) { show.Ratings.Percentage = (int)Math.Round(((show.Ratings.Percentage * (show.Ratings.Votes - 1)) + (10 * newRating)) / (float)show.Ratings.Votes); } else { show.Ratings.Percentage = (int)Math.Round(((show.Ratings.Percentage * (show.Ratings.Votes)) + (10 * newRating) - (10 * prevRating)) / (float)show.Ratings.Votes); } return true; } return false; }
private TraktShowSync CreateShowSyncData(TraktShow show) { TraktShowSync.Show showToSync = new TraktShowSync.Show { Title = show.Title, TVDBID = show.Tvdb, Year = show.Year }; TraktShowSync syncData = new TraktShowSync { UserName = TraktSettings.Username, Password = TraktSettings.Password, Shows = new List<TraktShowSync.Show> { showToSync } }; return syncData; }
public static void AddSeasonToLibrary(TraktShow show, int season) { TraktSeasonLibrary libSeason = new TraktSeasonLibrary { Season = season, Tvdb = show.Tvdb, Imdb = show.Imdb, Title = show.Title, Year = show.Year, Username = TraktSettings.Username, Password = TraktSettings.Password }; Thread libThread = new Thread(o => { var oSeason = o as TraktSeasonLibrary; TraktLogger.Info("Adding {0} season {1} to library", oSeason.Title, oSeason.Season); var response = TraktAPI.TraktAPI.SyncSeasonAsLibrary(oSeason); TraktAPI.TraktAPI.LogTraktResponse(response); }) { IsBackground = true, Name = "AddLibrary" }; libThread.Start(libSeason); }
private bool GetLoadingParameter() { if (_loadParameter == null) { // maybe re-loading, so check previous window id if (Show != null && !string.IsNullOrEmpty(Show.Tvdb) && Season != null) return true; return false; } var loadingParam = _loadParameter.FromJSON<SeasonLoadingParameter>(); if (loadingParam == null) return false; // reset previous selected index if (Show != null && Season != null) { if (Show.Title != loadingParam.Show.Title || Season.Season != loadingParam.Season.Season) PreviousSelectedIndex = 0; } Show = loadingParam.Show; Season = loadingParam.Season; if (Show == null || string.IsNullOrEmpty(Show.Tvdb) || Season == null) return false; return true; }
public static void CheckAndPlayEpisode(TraktShow show, TraktEpisode episode) { if (show == null || episode == null) return; CheckAndPlayEpisode(Convert.ToInt32(show.Tvdb), string.IsNullOrEmpty(show.Imdb) ? show.Title : show.Imdb, episode.Season, episode.Number, show.Title); }
private void AddShowToWatchList(TraktShow show) { Thread syncThread = new Thread(delegate(object obj) { TraktAPI.TraktAPI.SyncShowWatchList(CreateSyncData(obj as TraktShow), TraktSyncModes.watchlist); }) { IsBackground = true, Name = "Adding Show to Watch List" }; syncThread.Start(show); }
public static void CheckAndPlayFirstUnwatched(TraktShow show, bool jumpTo) { if (show == null) return; CheckAndPlayFirstUnwatched(Convert.ToInt32(show.Tvdb), string.IsNullOrEmpty(show.Imdb) ? show.Title : show.Imdb, jumpTo, show.Title); }
private TraktShowSync CreateSyncData(TraktShow show) { if (show == null) return null; List<TraktShowSync.Show> shows = new List<TraktShowSync.Show>(); TraktShowSync.Show syncShow = new TraktShowSync.Show { TVDBID = show.Tvdb, Title = show.Title, Year = show.Year }; shows.Add(syncShow); TraktShowSync syncData = new TraktShowSync { UserName = TraktSettings.Username, Password = TraktSettings.Password, Shows = shows }; return syncData; }
public static void ShowTVShowTrailersMenu(TraktShow show, TraktEpisode episode = null) { IDialogbox dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); dlg.Reset(); dlg.SetHeading(Translation.Trailer); foreach (TrailerSiteShows site in Enum.GetValues(typeof(TrailerSiteShows))) { string menuItem = Enum.GetName(typeof(TrailerSiteShows), site); GUIListItem pItem = new GUIListItem(menuItem); dlg.Add(pItem); } dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedLabel >= 0) { string siteUtil = string.Empty; string searchParam = string.Empty; switch (dlg.SelectedLabelText) { case ("IMDb"): siteUtil = "IMDb Movie Trailers"; if (!string.IsNullOrEmpty(show.Imdb)) // Exact search searchParam = show.Imdb; else searchParam = show.Title; break; case ("YouTube"): siteUtil = "YouTube"; searchParam = show.Title; if (episode != null) { searchParam += string.Format(" S{0}E{1}", episode.Season.ToString("D2"), episode.Number.ToString("D2")); } break; } string loadingParam = string.Format("site:{0}|search:{1}|return:Locked", siteUtil, searchParam); // Launch OnlineVideos Trailer search GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.OnlineVideos, loadingParam); } }
public static TraktSyncResponse RemoveShowFromCollection(TraktShow show) { var shows = new TraktSyncShows { Shows = new List<TraktShow>() { show } }; return RemoveShowsFromCollecton(shows); }