/// <summary> /// Shows the Rate Dialog after playback has ended /// </summary> /// <param name="episode">The item being rated</param> private void ShowRateDialog(ITrackingInfo videoInfo) { if (!TraktSettings.ShowRateDialogOnWatched) { return; // not enabled } TraktLogger.Debug("Showing rate dialog for '{0}'", videoInfo.Title); new Thread((o) => { ITrackingInfo itemToRate = o as ITrackingInfo; if (itemToRate == null) { return; } int rating = 0; if (itemToRate.VideoKind == VideoKind.TvSeries) { TraktRateEpisode rateObject = new TraktRateEpisode { SeriesID = itemToRate.ID_TVDB, Title = itemToRate.Title, Year = itemToRate.Year > 1900 ? itemToRate.Year.ToString() : null, Episode = itemToRate.Episode.ToString(), Season = itemToRate.Season.ToString(), UserName = TraktSettings.Username, Password = TraktSettings.Password }; // get the rating submitted to trakt rating = int.Parse(GUIUtils.ShowRateDialog <TraktRateEpisode>(rateObject)); } else if (itemToRate.VideoKind == VideoKind.Movie) { TraktRateMovie rateObject = new TraktRateMovie { IMDBID = itemToRate.ID_IMDB, TMDBID = itemToRate.ID_TMDB, Title = itemToRate.Title, Year = itemToRate.Year > 1900 ? itemToRate.Year.ToString() : null, UserName = TraktSettings.Username, Password = TraktSettings.Password }; // get the rating submitted to trakt rating = int.Parse(GUIUtils.ShowRateDialog <TraktRateMovie>(rateObject)); } if (rating > 0) { TraktLogger.Debug("Rating {0} as {1}/10", itemToRate.Title, rating.ToString()); // note: no user rating field to set } }) { Name = "Rate", IsBackground = true }.Start(videoInfo); }
/// <summary> /// Creates Movie Rate Data object /// </summary> /// <param name="title">Title of Movie</param> /// <param name="year">Year of Movie</param> /// <param name="imdb">IMDB ID of movie</param> /// <returns>Rate Data Object</returns> public static TraktRateMovie CreateMovieRateData(string title, string year, string imdb) { TraktRateMovie rateObject = new TraktRateMovie { IMDBID = imdb, Title = title, Year = year, Rating = TraktSettings.ShowAdvancedRatingsDialog ? "7" : "10", UserName = TraktSettings.Username, Password = TraktSettings.Password }; return(rateObject); }
/// <summary> /// Shows the Rate Movie Dialog after playback has ended /// </summary> /// <param name="movie">The movie being rated</param> private void ShowRateDialog(MFMovie movie) { if (!TraktSettings.ShowRateDialogOnWatched) { return; // not enabled } // if (movie.RatingUser > 0) return; // already rated -> removed, as IF we enable rating, we always want user to rate it.... TraktLogger.Debug("Showing rate dialog for '{0}'", movie.Title); new Thread((o) => { MFMovie movieToRate = o as MFMovie; if (movieToRate == null) { return; } TraktRateMovie rateObject = new TraktRateMovie { IMDBID = movieToRate.IMDBNumber, TMDBID = movieToRate.TMDBNumber, Title = movieToRate.Title, Year = movieToRate.Year.ToString(), UserName = TraktSettings.Username, Password = TraktSettings.Password }; // get the rating submitted to trakt int rating = int.Parse(GUI.GUIUtils.ShowRateDialog <TraktRateMovie>(rateObject)); if (rating > 0) { TraktLogger.Debug("Rating {0} as {1}/10", movieToRate.Title, rating.ToString()); movieToRate.RatingUser = (float)rating; movieToRate.Username = TraktSettings.Username; movieToRate.Commit(); } }) { Name = "Rate", IsBackground = true }.Start(movie); }
/// <summary> /// Shows the Rate Movie Dialog after playback has ended /// </summary> /// <param name="movie">The movie being rated</param> private void ShowRateDialog(IMDBMovie movie) { if (!TraktSettings.ShowRateDialogOnWatched) { return; } if (!TraktSettings.ShowRateDlgForPlaylists && PlayListPlayer.SingletonPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_VIDEO) { return; } TraktLogger.Debug("Showing rate dialog for '{0}'", movie.Title); new Thread((o) => { IMDBMovie movieToRate = o as IMDBMovie; if (movieToRate == null) { return; } TraktRateMovie rateObject = new TraktRateMovie { IMDBID = movieToRate.IMDBNumber, Title = movieToRate.Title, Year = movieToRate.Year.ToString(), UserName = TraktSettings.Username, Password = TraktSettings.Password }; // get the rating submitted to trakt int rating = int.Parse(GUIUtils.ShowRateDialog <TraktRateMovie>(rateObject)); if (rating > 0) { TraktLogger.Debug("Rating {0} as {1}/10", movieToRate.Title, rating.ToString()); // note: no user rating field to update locally } }) { Name = "Rate", IsBackground = true }.Start(movie); }
public static TraktRateMovie CreateRateData(MFMovie movie, String rating) { string username = TraktSettings.Username; string password = TraktSettings.Password; if (String.IsNullOrEmpty(username) || String.IsNullOrEmpty(password)) { return(null); } TraktRateMovie rateData = new TraktRateMovie { Title = movie.Title, Year = movie.Year.ToString(), IMDBID = movie.IMDBNumber, TMDBID = movie.TMDBNumber, UserName = username, Password = password, Rating = rating }; return(rateData); }
/// <summary> /// Shows a Trakt Rate Dialog (Love/Hate) or 10-Heart based on settings /// </summary> /// <param name="rateObject">Type of object being rated</param> public static string ShowRateDialog <T>(T rateObject) { if (GUIGraphicsContext.form.InvokeRequired) { ShowRateDialogDelegate <T> d = ShowRateDialog <T>; return((string)GUIGraphicsContext.form.Invoke(d, rateObject)); } TraktRateValue currentRating = TraktRateValue.unrate; GUIRateDialog ratingDlg = (GUIRateDialog)GUIWindowManager.GetWindow(GUIRateDialog.ID); ratingDlg.Reset(); ratingDlg.SetHeading(Translation.RateHeading); // show simple love/hate icons or 10-heart icons ratingDlg.ShowAdvancedRatings = TraktSettings.ShowAdvancedRatingsDialog; // if item is not rated, it will default to love if (rateObject is TraktRateEpisode) { TraktRateEpisode item = rateObject as TraktRateEpisode; ratingDlg.SetLine(1, string.Format("{0} - {1}x{2}", item.Title, item.Season, item.Episode)); if (ratingDlg.ShowAdvancedRatings) { ratingDlg.Rated = item.Rating == "0" || !item.Rating.IsNumber() ? TraktRateValue.seven : (TraktRateValue)Convert.ToInt32(item.Rating); } else { ratingDlg.Rated = item.Rating == "0" || !item.Rating.IsNumber() ? TraktRateValue.ten : (TraktRateValue)Convert.ToInt32(item.Rating); } } else if (rateObject is TraktRateSeries) { TraktRateSeries item = rateObject as TraktRateSeries; ratingDlg.SetLine(1, item.Title); if (ratingDlg.ShowAdvancedRatings) { ratingDlg.Rated = item.Rating == "0" || !item.Rating.IsNumber() ? TraktRateValue.seven : (TraktRateValue)Convert.ToInt32(item.Rating); } else { ratingDlg.Rated = item.Rating == "0" || !item.Rating.IsNumber() ? TraktRateValue.ten : (TraktRateValue)Convert.ToInt32(item.Rating); } } else { TraktRateMovie item = rateObject as TraktRateMovie; ratingDlg.SetLine(1, item.Title); if (ratingDlg.ShowAdvancedRatings) { ratingDlg.Rated = item.Rating == "0" || !item.Rating.IsNumber() ? TraktRateValue.seven : (TraktRateValue)Convert.ToInt32(item.Rating); } else { ratingDlg.Rated = item.Rating == "0" || !item.Rating.IsNumber() ? TraktRateValue.ten : (TraktRateValue)Convert.ToInt32(item.Rating); } } // show dialog ratingDlg.DoModal(ratingDlg.GetID); if (!ratingDlg.IsSubmitted) { return("-1"); } if (rateObject is TraktRateEpisode) { TraktRateEpisode item = rateObject as TraktRateEpisode; currentRating = ratingDlg.Rated; item.Rating = (int)currentRating != 0 ? ((int)currentRating).ToString() : "unrate"; Thread rateThread = new Thread(delegate(object obj) { TraktRateResponse response = TraktAPI.TraktAPI.RateEpisode(item); TraktLogger.LogTraktResponse(response); }) { IsBackground = true, Name = "Rate" }; rateThread.Start(item); } else if (rateObject is TraktRateSeries) { TraktRateSeries item = rateObject as TraktRateSeries; currentRating = ratingDlg.Rated; item.Rating = (int)currentRating != 0 ? ((int)currentRating).ToString() : "unrate"; Thread rateThread = new Thread(delegate(object obj) { TraktRateResponse response = TraktAPI.TraktAPI.RateSeries(item); TraktLogger.LogTraktResponse(response); }) { IsBackground = true, Name = "Rate" }; rateThread.Start(item); } else { TraktRateMovie item = rateObject as TraktRateMovie; currentRating = ratingDlg.Rated; item.Rating = (int)currentRating != 0 ? ((int)currentRating).ToString() : "unrate"; Thread rateThread = new Thread(delegate(object obj) { TraktRateResponse response = TraktAPI.TraktAPI.RateMovie(item); TraktLogger.LogTraktResponse(response); }) { IsBackground = true, Name = "Rate" }; rateThread.Start(item); } // return new rating (0 - 10) // old love / hate enum values are deprecated // if using basic ratings 1 = hate and 10 = love // 0 is unrate return(((int)currentRating).ToString()); }