Esempio n. 1
0
    internal static void AddEpisodeToWatchHistory(TraktShow show, TraktEpisode episode)
    {
      var watchedEpisodes = (_WatchedEpisodes ?? new List<EpisodeWatched>()).ToList();

      var existingWatchedEpisode = watchedEpisodes.FirstOrDefault(e => (((e.ShowId == show.Ids.Trakt) && e.ShowId != null) || ((e.ShowTvdbId == show.Ids.Tvdb) && e.ShowTvdbId != null)) &&
                                                                       e.Season == episode.Season &&
                                                                       e.Number == episode.Number);

      // if it exists already, increment the play count only
      if (existingWatchedEpisode != null)
      {
        existingWatchedEpisode.Plays++;
        existingWatchedEpisode.WatchedAt = DateTime.UtcNow.ToISO8601();
      }
      else
      {
        watchedEpisodes.Add(new EpisodeWatched
        {
          Number = episode.Number,
          Season = episode.Season,
          ShowId = show.Ids.Trakt,
          ShowImdbId = show.Ids.Imdb,
          ShowTvdbId = show.Ids.Tvdb,
          ShowTitle = show.Title,
          ShowYear = show.Year,
          Plays = 1,
          WatchedAt = DateTime.UtcNow.ToISO8601()
        });
      }

      _WatchedEpisodes = watchedEpisodes;

      // now remove from watchlist and paused state since it will be removed from online in these cases
      RemoveEpisodeFromWatchlist(episode);
      RemoveEpisodeFromPausedData(show, episode);
      RemoveShowFromWatchlist(show);
    }
Esempio n. 2
0
    internal static void AddSeasonToWatchlist(TraktShow show, TraktSeason season)
    {
      var watchlistSeasons = (_WatchListSeasons ?? new List<TraktSeasonWatchList>()).ToList();

      watchlistSeasons.Add(new TraktSeasonWatchList
      {
        ListedAt = DateTime.UtcNow.ToISO8601(),
        Show = new TraktShowSummary
        {
          Ids = show.Ids,
          Title = show.Title,
          Year = show.Year
        },
        Season = new TraktSeasonSummary
        {
          Ids = season.Ids,
          Number = season.Number
        }
      });

      _WatchListSeasons = watchlistSeasons;
    }
Esempio n. 3
0
    internal static void AddSeasonToRatings(TraktShow show, TraktSeason season, int rating)
    {
      var ratedSeasons = (_RatedSeasons ?? new List<TraktSeasonRated>()).ToList();

      ratedSeasons.Add(new TraktSeasonRated
      {
        RatedAt = DateTime.UtcNow.ToISO8601(),
        Rating = rating,
        Show = new TraktShow
        {
          Ids = show.Ids,
          Title = show.Title,
          Year = show.Year
        },
        Season = new TraktSeason
        {
          Ids = season.Ids,
          Number = season.Number
        }
      });

      _RatedSeasons = ratedSeasons;
    }
Esempio n. 4
0
    internal static void RemoveEpisodeFromCollection(TraktShow show, TraktEpisode episode)
    {
      if (_CollectedEpisodes == null || show.Ids == null)
        return;

      var collectedEpisodes = _CollectedEpisodes.ToList();
      collectedEpisodes.RemoveAll(e => (((e.ShowId == show.Ids.Trakt) && e.ShowId != null) || ((e.ShowTvdbId == show.Ids.Tvdb) && e.ShowTvdbId != null)) &&
                                       e.Season == episode.Season &&
                                       e.Number == episode.Number);

      // remove using Title + Year
      if (show.Ids.Trakt == null && show.Ids.Tvdb == null)
      {
        collectedEpisodes.RemoveAll(e => e.ShowTitle.ToLowerInvariant() == show.Title.ToLowerInvariant() && e.ShowYear == show.Year &&
                                         e.Season == episode.Season &&
                                         e.Number == episode.Number);
      }

      _CollectedEpisodes = collectedEpisodes;
    }
Esempio n. 5
0
    public static TraktSyncResponse RemoveShowFromCollection(TraktShow show)
    {
      var shows = new TraktSyncShows
      {
        Shows = new List<TraktShow>() { show }
      };

      return RemoveShowsFromCollecton(shows);
    }
Esempio n. 6
0
    internal static void AddEpisodeToPausedData(TraktShow show, TraktEpisode episode, float progress)
    {
      var pausedEpisodes = (_PausedEpisodes ?? new List<TraktSyncPausedEpisode>()).ToList();

      var existingPausedEpisode = pausedEpisodes.FirstOrDefault(e => (((e.Show.Ids.Trakt == show.Ids.Trakt) && e.Show.Ids.Trakt != null) || ((e.Show.Ids.Tvdb == show.Ids.Tvdb) && e.Show.Ids.Tvdb != null)) &&
                                                                     e.Episode.Season == episode.Season &&
                                                                     e.Episode.Number == episode.Number);

      // if it exists already, increment the play count only
      if (existingPausedEpisode != null)
      {
        existingPausedEpisode.Progress = progress;
        existingPausedEpisode.PausedAt = DateTime.UtcNow.ToISO8601();
      }
      else
      {
        pausedEpisodes.Add(new TraktSyncPausedEpisode
        {
          PausedAt = DateTime.UtcNow.ToISO8601(),
          Progress = progress,
          Show = new TraktShow
          {
            Ids = show.Ids,
            Title = show.Title,
            Year = show.Year
          },
          Episode = new TraktEpisode
          {
            Ids = episode.Ids,
            Number = episode.Number,
            Season = episode.Season,
            Title = episode.Title
          }
        });
      }

      _PausedEpisodes = pausedEpisodes;
    }
Esempio n. 7
0
    internal static void RemoveShowFromCollection(TraktShow show)
    {
      if (_CollectedEpisodes == null || show.Ids == null)
        return;

      var collectedEpisodes = _CollectedEpisodes.ToList();
      collectedEpisodes.RemoveAll(s => ((s.ShowId == show.Ids.Trakt) && s.ShowId != null) ||
                                       ((s.ShowImdbId == show.Ids.Imdb) && s.ShowImdbId.ToNullIfEmpty() != null) ||
                                       ((s.ShowTvdbId == show.Ids.Tvdb) && s.ShowTvdbId != null));

      // remove using Title + Year
      if (show.Ids.Trakt == null && show.Ids.Imdb.ToNullIfEmpty() == null && show.Ids.Tvdb == null)
      {
        collectedEpisodes.RemoveAll(e => e.ShowTitle.ToLowerInvariant() == show.Title.ToLower() && e.ShowYear == show.Year);
      }

      _CollectedEpisodes = collectedEpisodes;
    }
Esempio n. 8
0
    public static int? UserRating(this TraktEpisode episode, TraktShow show)
    {
      if (RatedEpisodes == null)
        return null;

      // either match by episode id or if not available in cache (which could occur when added by sync caching) by show id and episode/season numbers
      var ratedEpisode = RatedEpisodes.FirstOrDefault(re => ((re.Episode.Ids.Trakt == episode.Ids.Trakt) && re.Episode.Ids.Trakt != null) ||
                                                            (((re.Show.Ids.Tvdb == show.Ids.Tvdb) && show.Ids.Tvdb != null) &&
                                                             re.Episode.Season == episode.Season && re.Episode.Number == episode.Number));
      if (ratedEpisode == null)
        return null;

      return ratedEpisode.Rating;
    }
Esempio n. 9
0
    public static int Plays(this TraktEpisode episode, TraktShow show)
    {
      if (WatchedEpisodes == null || show == null)
        return 0;

      // we may added a play from a real-time scrobble or added a new play from a sync
      var watchedEpisodes = WatchedEpisodes.Where(e => (((e.ShowId == show.Ids.Trakt) && e.ShowId != null) || ((e.ShowTvdbId == show.Ids.Tvdb) && show.Ids.Tvdb != null)) &&
                                                       e.Season == episode.Season &&
                                                       e.Number == episode.Number);
      if (watchedEpisodes == null)
        return 0;

      return watchedEpisodes.Sum(e => e.Plays);
    }
Esempio n. 10
0
    public static bool IsCollected(this TraktEpisode episode, TraktShow show)
    {
      if (CollectedEpisodes == null || show == null)
        return false;

      return CollectedEpisodes.Any(e => (((e.ShowId == show.Ids.Trakt) && e.ShowId != null) || ((e.ShowTvdbId == show.Ids.Tvdb) && show.Ids.Tvdb != null)) &&
                                        e.Season == episode.Season &&
                                        e.Number == episode.Number);
    }
Esempio n. 11
0
    public static bool IsWatchlisted(this TraktEpisode episode, TraktShow show)
    {
      if (WatchListEpisodes == null || show == null)
        return false;

      return WatchListEpisodes.Any(e => (((e.Show.Ids.Trakt == show.Ids.Trakt) && e.Show.Ids.Trakt != null) || ((e.Show.Ids.Tvdb == show.Ids.Tvdb) && show.Ids.Tvdb != null)) &&
                                        e.Episode.Season == episode.Season &&
                                        e.Episode.Number == episode.Number);
    }
Esempio n. 12
0
    public static TraktSyncResponse RemoveShowFromWatchlist(TraktShow show)
    {
      var shows = new TraktSyncShows
      {
        Shows = new List<TraktShow>() { show }
      };

      return RemoveShowsFromWatchlist(shows);
    }
Esempio n. 13
0
    public static TraktSyncResponse AddShowToWatchlist(TraktShow show)
    {
      var shows = new TraktSyncShows
      {
        Shows = new List<TraktShow>() { show }
      };

      return AddShowsToWatchlist(shows);
    }
Esempio n. 14
0
    /// <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);
    }
Esempio n. 15
0
    internal static void AddEpisodeToCollection(TraktShow show, TraktEpisode episode)
    {
      var collectedEpisodes = (_CollectedEpisodes ?? new List<EpisodeCollected>()).ToList();

      collectedEpisodes.Add(new EpisodeCollected
      {
        Number = episode.Number,
        Season = episode.Season,
        ShowId = show.Ids.Trakt,
        ShowImdbId = show.Ids.Imdb,
        ShowTvdbId = show.Ids.Tvdb,
        ShowTitle = show.Title,
        ShowYear = show.Year,
        CollectedAt = DateTime.UtcNow.ToISO8601()
      });

      _CollectedEpisodes = collectedEpisodes;
    }
Esempio n. 16
0
 internal static void AddShowToWatchedHistory(TraktShow show, List<TraktEpisode> episodes)
 {
   return;
 }
Esempio n. 17
0
    internal static void AddEpisodeToRatings(TraktShow show, TraktEpisode episode, int rating)
    {
      var ratedEpisodes = (_RatedEpisodes ?? new List<TraktEpisodeRated>()).ToList();

      ratedEpisodes.Add(new TraktEpisodeRated
      {
        RatedAt = DateTime.UtcNow.ToISO8601(),
        Rating = rating,
        Show = new TraktShow
        {
          Ids = show.Ids,
          Title = show.Title,
          Year = show.Year
        },
        Episode = new TraktEpisode
        {
          Ids = episode.Ids,
          Number = episode.Number,
          Season = episode.Season,
          Title = episode.Title
        }
      });

      _RatedEpisodes = ratedEpisodes;
    }
Esempio n. 18
0
    internal static void AddShowToWatchlist(TraktShow show)
    {
      var watchlistShows = (_WatchListShows ?? new List<TraktShowWatchList>()).ToList();

      watchlistShows.Add(new TraktShowWatchList
      {
        ListedAt = DateTime.UtcNow.ToISO8601(),
        Show = new TraktShowSummary
        {
          Ids = show.Ids,
          Title = show.Title,
          Year = show.Year
        }
      });

      _WatchListShows = watchlistShows;
    }
Esempio n. 19
0
    internal static void RemoveShowFromWatchlist(TraktShow show)
    {
      if (_WatchListShows == null || show.Ids == null)
        return;

      var watchlistShows = _WatchListShows.ToList();
      watchlistShows.RemoveAll(s => ((s.Show.Ids.Trakt == show.Ids.Trakt) && s.Show.Ids.Trakt != null) ||
                                    ((s.Show.Ids.Imdb == show.Ids.Imdb) && s.Show.Ids.Imdb.ToNullIfEmpty() != null) ||
                                    ((s.Show.Ids.Tvdb == show.Ids.Tvdb) && s.Show.Ids.Tvdb != null));

      // remove using Title + Year
      if (show.Ids.Trakt == null && show.Ids.Imdb.ToNullIfEmpty() == null && show.Ids.Tvdb == null)
      {
        watchlistShows.RemoveAll(s => s.Show.Title.ToLowerInvariant() == show.Title.ToLower() && s.Show.Year == show.Year);
      }

      _WatchListShows = watchlistShows;
    }
Esempio n. 20
0
 internal static void AddShowToCollection(TraktShow show, List<TraktEpisode> episodes)
 {
   return;
 }
Esempio n. 21
0
    internal static void RemoveSeasonFromRatings(TraktShow show, TraktSeason season)
    {
      if (_RatedSeasons == null || show.Ids == null)
        return;

      var ratedSeasons = _RatedSeasons.ToList();
      ratedSeasons.RemoveAll(s => (((s.Show.Ids.Trakt == show.Ids.Trakt) && s.Show.Ids.Trakt != null) ||
                                   ((s.Show.Ids.Imdb == show.Ids.Imdb) && s.Show.Ids.Imdb.ToNullIfEmpty() != null) ||
                                   ((s.Show.Ids.Tvdb == show.Ids.Tvdb) && s.Show.Ids.Tvdb != null)) &&
                                  s.Season.Number == season.Number);

      // remove using Title + Year
      if (show.Ids.Trakt == null && show.Ids.Imdb.ToNullIfEmpty() == null && show.Ids.Tvdb == null)
      {
        ratedSeasons.RemoveAll(s => s.Show.Title.ToLowerInvariant() == show.Title.ToLower() && s.Show.Year == show.Year &&
                                    s.Season.Number == season.Number);
      }

      _RatedSeasons = ratedSeasons;
    }
Esempio n. 22
0
    internal static void AddShowToRatings(TraktShow show, int rating)
    {
      var ratedShows = (_RatedShows ?? new List<TraktShowRated>()).ToList();

      ratedShows.Add(new TraktShowRated
      {
        RatedAt = DateTime.UtcNow.ToISO8601(),
        Rating = rating,
        Show = new TraktShow
        {
          Ids = show.Ids,
          Title = show.Title,
          Year = show.Year
        }
      });

      _RatedShows = ratedShows;
    }
Esempio n. 23
0
    internal static void RemoveEpisodeFromPausedData(TraktShow show, TraktEpisode episode)
    {
      if (_PausedEpisodes == null || show.Ids == null)
        return;

      var pausedEpisodes = _PausedEpisodes.ToList();
      pausedEpisodes.RemoveAll(e => (((e.Show.Ids.Trakt == show.Ids.Trakt) && e.Show.Ids.Trakt != null) || ((e.Show.Ids.Tvdb == show.Ids.Tvdb) && e.Show.Ids.Tvdb != null)) &&
                                    e.Episode.Season == episode.Season &&
                                    e.Episode.Number == episode.Number);

      // remove using Title + Year
      if (show.Ids.Trakt == null && show.Ids.Tvdb == null)
      {
        pausedEpisodes.RemoveAll(e => e.Show.Title.ToLowerInvariant() == show.Title.ToLowerInvariant() && e.Show.Year == show.Year &&
                                      e.Episode.Season == episode.Season &&
                                      e.Episode.Number == episode.Number);
      }

      _PausedEpisodes = pausedEpisodes;
    }
Esempio n. 24
0
    public static TraktSyncResponse AddShowToCollection(TraktShow show)
    {
      var shows = new TraktSyncShows
      {
        Shows = new List<TraktShow>() { show }
      };

      return AddShowsToCollecton(shows);
    }