internal static void RemoveMovieFromCollection(TraktMovie movie) { if (_CollectedMovies == null || movie.Ids == null) return; var collectedMovies = _CollectedMovies.ToList(); collectedMovies.RemoveAll(m => ((m.Movie.Ids.Trakt == movie.Ids.Trakt) && m.Movie.Ids.Trakt != null) || ((m.Movie.Ids.Imdb == movie.Ids.Imdb) && m.Movie.Ids.Imdb.ToNullIfEmpty() != null) || ((m.Movie.Ids.Tmdb == movie.Ids.Tmdb) && m.Movie.Ids.Tmdb != null)); // remove using Title + Year if (movie.Ids.Trakt == null && movie.Ids.Imdb.ToNullIfEmpty() == null && movie.Ids.Tmdb == null) { collectedMovies.RemoveAll(m => m.Movie.Title.ToLowerInvariant() == movie.Title.ToLower() && m.Movie.Year == movie.Year); } _CollectedMovies = collectedMovies; }
internal static void RemoveMovieFromPausedData(TraktMovie movie) { if (_PausedMovies == null || movie.Ids == null) return; var pausedMovies = _PausedMovies.ToList(); pausedMovies.RemoveAll(m => ((m.Movie.Ids.Trakt == movie.Ids.Trakt) && m.Movie.Ids.Trakt != null) || ((m.Movie.Ids.Imdb == movie.Ids.Imdb) && m.Movie.Ids.Imdb.ToNullIfEmpty() != null) || ((m.Movie.Ids.Tmdb == movie.Ids.Tmdb) && m.Movie.Ids.Tmdb != null)); // remove using Title + Year if (movie.Ids.Trakt == null && movie.Ids.Imdb.ToNullIfEmpty() == null && movie.Ids.Tmdb == null) { pausedMovies.RemoveAll(m => m.Movie.Title.ToLowerInvariant() == movie.Title.ToLower() && m.Movie.Year == movie.Year); } _PausedMovies = pausedMovies; }
internal static void AddMovieToPausedData(TraktMovie movie, float progress) { var pausedMovies = (_PausedMovies ?? new List<TraktSyncPausedMovie>()).ToList(); var existingPausedMovie = pausedMovies.FirstOrDefault(m => ((m.Movie.Ids.Trakt == movie.Ids.Trakt) && movie.Ids.Trakt != null) || ((m.Movie.Ids.Imdb == movie.Ids.Imdb) && movie.Ids.Imdb.ToNullIfEmpty() != null) || ((m.Movie.Ids.Tmdb == movie.Ids.Tmdb) && movie.Ids.Tmdb != null)); // if it exists already, increment the play count only if (existingPausedMovie != null) { existingPausedMovie.Progress = progress; existingPausedMovie.PausedAt = DateTime.UtcNow.ToISO8601(); } else { pausedMovies.Add(new TraktSyncPausedMovie { PausedAt = DateTime.UtcNow.ToISO8601(), Progress = progress, Movie = new TraktMovie { Ids = movie.Ids, Title = movie.Title, Year = movie.Year } }); } _PausedMovies = pausedMovies; }
internal static void RemoveMovieFromWatchlist(TraktMovie movie) { if (_WatchListMovies == null || movie.Ids == null) return; var watchlistMovies = _WatchListMovies.ToList(); watchlistMovies.RemoveAll(m => ((m.Movie.Ids.Trakt == movie.Ids.Trakt) && m.Movie.Ids.Trakt != null) || ((m.Movie.Ids.Imdb == movie.Ids.Imdb) && m.Movie.Ids.Imdb.ToNullIfEmpty() != null) || ((m.Movie.Ids.Tmdb == movie.Ids.Tmdb) && m.Movie.Ids.Tmdb != null)); // remove using Title + Year if (movie.Ids.Trakt == null && movie.Ids.Imdb.ToNullIfEmpty() == null && movie.Ids.Tmdb == null) { watchlistMovies.RemoveAll(m => m.Movie.Title.ToLowerInvariant() == movie.Title.ToLower() && m.Movie.Year == movie.Year); } _WatchListMovies = watchlistMovies; }
internal static void AddMovieToCollection(TraktMovie movie) { var collectedMovies = (_CollectedMovies ?? new List<TraktMovieCollected>()).ToList(); collectedMovies.Add(new TraktMovieCollected { CollectedAt = DateTime.UtcNow.ToISO8601(), Movie = new TraktMovieSummary { Ids = movie.Ids, Title = movie.Title, Year = movie.Year } }); _CollectedMovies = collectedMovies; }
internal static void AddMovieToRatings(TraktMovie movie, int rating) { var ratedMovies = (_RatedMovies ?? new List<TraktMovieRated>()).ToList(); ratedMovies.Add(new TraktMovieRated { RatedAt = DateTime.UtcNow.ToISO8601(), Rating = rating, Movie = new TraktMovie { Ids = movie.Ids, Title = movie.Title, Year = movie.Year } }); _RatedMovies = ratedMovies; }
internal static void AddMovieToWatchHistory(TraktMovie movie) { var watchedMovies = (_WatchedMovies ?? new List<TraktMovieWatched>()).ToList(); var existingWatchedMovie = watchedMovies.FirstOrDefault(m => ((m.Movie.Ids.Trakt == movie.Ids.Trakt) && movie.Ids.Trakt != null) || ((m.Movie.Ids.Imdb == movie.Ids.Imdb) && movie.Ids.Imdb.ToNullIfEmpty() != null) || ((m.Movie.Ids.Tmdb == movie.Ids.Tmdb) && movie.Ids.Tmdb != null)); // if it exists already, increment the play count only if (existingWatchedMovie != null) { existingWatchedMovie.Plays++; existingWatchedMovie.LastWatchedAt = DateTime.UtcNow.ToISO8601(); } else { watchedMovies.Add(new TraktMovieWatched { LastWatchedAt = DateTime.UtcNow.ToISO8601(), Movie = new TraktMovie { Ids = movie.Ids, Title = movie.Title, Year = movie.Year }, Plays = 1 }); } _WatchedMovies = watchedMovies; // now remove from watchlist and paused state since it will be removed from online in these cases RemoveMovieFromWatchlist(movie); RemoveMovieFromPausedData(movie); }
internal static void AddMovieToWatchlist(TraktMovie movie) { var watchlistMovies = (_WatchListMovies ?? new List<TraktMovieWatchList>()).ToList(); watchlistMovies.Add(new TraktMovieWatchList { ListedAt = DateTime.UtcNow.ToISO8601(), Movie = new TraktMovieSummary { Ids = movie.Ids, Title = movie.Title, Year = movie.Year } }); _WatchListMovies = watchlistMovies; }
/// <summary> /// Checks if a local movie is the same as an online movie /// </summary> private bool MovieMatch(MediaItem localMovie, TraktMovie traktMovie) { // IMDb comparison if (!string.IsNullOrEmpty(traktMovie.Ids.Imdb) && !string.IsNullOrEmpty(GetMovieImdbId(localMovie))) { return String.Compare(GetMovieImdbId(localMovie), traktMovie.Ids.Imdb, StringComparison.OrdinalIgnoreCase) == 0; } // TMDb comparison if ((GetMovieTmdbId(localMovie) != 0) && traktMovie.Ids.Tmdb.HasValue) { return GetMovieTmdbId(localMovie) == traktMovie.Ids.Tmdb.Value; } // Title & Year comparison { return string.Compare(GetMovieTitle(localMovie), traktMovie.Title, true) == 0 && (GetMovieYear(localMovie) == traktMovie.Year); } }
public static TraktSyncResponse RemoveMovieFromWatchlist(TraktMovie movie) { var movies = new TraktSyncMovies { Movies = new List<TraktMovie>() { movie } }; return RemoveMoviesFromWatchlist(movies); }
public static TraktSyncResponse AddMovieToWatchlist(TraktMovie movie) { var movies = new TraktSyncMovies { Movies = new List<TraktMovie>() { movie } }; return AddMoviesToWatchlist(movies); }
/// <summary> /// UnRate a single movie on trakt.tv /// </summary> public static TraktSyncResponse RemoveMovieFromRatings(TraktMovie movie) { var movies = new TraktSyncMovies { Movies = new List<TraktMovie>() { new TraktMovie { Ids = movie.Ids } } }; return RemoveMoviesFromRatings(movies); }
public static TraktSyncResponse RemoveMovieFromCollection(TraktMovie movie) { var movies = new TraktSyncMovies { Movies = new List<TraktMovie>() { movie } }; return RemoveMoviesFromCollecton(movies); }