Esempio n. 1
0
    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;
    }
Esempio n. 2
0
    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;
    }
Esempio n. 3
0
    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;
    }
Esempio n. 4
0
    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;
    }
Esempio n. 5
0
    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;
    }
Esempio n. 6
0
    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;
    }
Esempio n. 7
0
    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);
    }
Esempio n. 8
0
    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;
    }
Esempio n. 9
0
    /// <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);
      }
    }
Esempio n. 10
0
    public static TraktSyncResponse RemoveMovieFromWatchlist(TraktMovie movie)
    {
      var movies = new TraktSyncMovies
      {
        Movies = new List<TraktMovie>() { movie }
      };

      return RemoveMoviesFromWatchlist(movies);
    }
Esempio n. 11
0
    public static TraktSyncResponse AddMovieToWatchlist(TraktMovie movie)
    {
      var movies = new TraktSyncMovies
      {
        Movies = new List<TraktMovie>() { movie }
      };

      return AddMoviesToWatchlist(movies);
    }
Esempio n. 12
0
    /// <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);
    }
Esempio n. 13
0
    public static TraktSyncResponse RemoveMovieFromCollection(TraktMovie movie)
    {
      var movies = new TraktSyncMovies
      {
        Movies = new List<TraktMovie>() { movie }
      };

      return RemoveMoviesFromCollecton(movies);
    }