public static void SaveExtendedShowInfoV2(TraktV2ShowExtended tvshow, List<TraktV2Season> seasons) { try { // save this data to the DB for use later Trakt_ImageFanartRepository repFanart = new Trakt_ImageFanartRepository(); Trakt_ShowRepository repShows = new Trakt_ShowRepository(); Trakt_Show show = repShows.GetByTraktSlug(tvshow.ids.slug); if (show == null) show = new Trakt_Show(); show.Populate(tvshow); repShows.Save(show); if (tvshow.images != null && tvshow.images.fanart != null) { if (!string.IsNullOrEmpty(tvshow.images.fanart.full)) { Trakt_ImageFanart fanart = repFanart.GetByShowIDAndSeason(show.Trakt_ShowID, 1); if (fanart == null) { fanart = new Trakt_ImageFanart(); fanart.Enabled = 0; } fanart.ImageURL = tvshow.images.fanart.full; fanart.Season = 1; fanart.Trakt_ShowID = show.Trakt_ShowID; repFanart.Save(fanart); } } // save the seasons Trakt_SeasonRepository repSeasons = new Trakt_SeasonRepository(); Trakt_EpisodeRepository repEpisodes = new Trakt_EpisodeRepository(); Trakt_ImagePosterRepository repPosters = new Trakt_ImagePosterRepository(); // delete episodes if they no longer exist on Trakt if (seasons.Count > 0) { foreach (Trakt_Episode epTemp in repEpisodes.GetByShowID(show.Trakt_ShowID)) { TraktV2Episode ep = null; TraktV2Season sea = seasons.FirstOrDefault(x => x.number == epTemp.Season); if (sea != null) ep = sea.episodes.FirstOrDefault(x => x.number == epTemp.EpisodeNumber); // if the episode is null, it means it doesn't exist on Trakt, so we should delete it if (ep == null) repEpisodes.Delete(epTemp.Trakt_EpisodeID); } } foreach (TraktV2Season sea in seasons) { Trakt_Season season = repSeasons.GetByShowIDAndSeason(show.Trakt_ShowID, sea.number); if (season == null) season = new Trakt_Season(); season.Season = sea.number; season.URL = string.Format(TraktURIs.WebsiteSeason, show.TraktID, sea.number); season.Trakt_ShowID = show.Trakt_ShowID; repSeasons.Save(season); if (sea.images != null && sea.images.poster != null) { if (!string.IsNullOrEmpty(sea.images.poster.full)) { Trakt_ImagePoster poster = repPosters.GetByShowIDAndSeason(show.Trakt_ShowID, season.Season); if (poster == null) { poster = new Trakt_ImagePoster(); poster.Enabled = 0; } poster.ImageURL = sea.images.poster.full; poster.Season = season.Season; poster.Trakt_ShowID = show.Trakt_ShowID; repPosters.Save(poster); } } if (sea.episodes != null) { foreach (TraktV2Episode ep in sea.episodes) { Trakt_Episode episode = repEpisodes.GetByShowIDSeasonAndEpisode(show.Trakt_ShowID, ep.season, ep.number); if (episode == null) episode = new Trakt_Episode(); Console.Write(ep.ids.trakt); if (ep.images.screenshot != null) episode.EpisodeImage = ep.images.screenshot.full; else episode.EpisodeImage = string.Empty; episode.TraktID = ep.ids.TraktID; episode.EpisodeNumber = ep.number; episode.Overview = string.Empty; // this is now part of a separate API call for V2, we get this info from TvDB anyway episode.Season = ep.season; episode.Title = ep.title; episode.URL = string.Format(TraktURIs.WebsiteEpisode, show.TraktID, ep.season, ep.number); episode.Trakt_ShowID = show.Trakt_ShowID; repEpisodes.Save(episode); } } } } catch (Exception ex) { logger.ErrorException("Error in TraktTVHelper.SaveExtendedShowInfo: " + ex.ToString(), ex); } }
public static void SaveShowInfo(TraktTVShow tvshow) { try { // save this data to the DB for use later Trakt_ImageFanartRepository repFanart = new Trakt_ImageFanartRepository(); Trakt_ShowRepository repShows = new Trakt_ShowRepository(); Trakt_Show show = repShows.GetByTraktID(tvshow.TraktID); if (show == null) show = new Trakt_Show(); show.Overview = tvshow.overview; show.Title = tvshow.title; show.TraktID = tvshow.TraktID; if (!string.IsNullOrEmpty(tvshow.tvdb_id)) show.TvDB_ID = int.Parse(tvshow.tvdb_id); show.URL = tvshow.url; show.Year = tvshow.year; repShows.Save(show); if (tvshow.images != null) { if (!string.IsNullOrEmpty(tvshow.images.fanart)) { Trakt_ImageFanart fanart = repFanart.GetByShowIDAndSeason(show.Trakt_ShowID, 1); if (fanart == null) { fanart = new Trakt_ImageFanart(); fanart.Enabled = 1; } fanart.ImageURL = tvshow.images.fanart; fanart.Season = 1; fanart.Trakt_ShowID = show.Trakt_ShowID; repFanart.Save(fanart); } } } catch (Exception ex) { logger.ErrorException("Error in TraktTVHelper.SaveExtendedShowInfo: " + ex.ToString(), ex); } }
public static List<TraktTVUser> GetFriends() { List<TraktTVUser> friends = new List<TraktTVUser>(); try { string url = string.Format(Constants.TraktTvURLs.URLGetFriends, Constants.TraktTvURLs.APIKey, ServerSettings.Trakt_Username); //string url = string.Format(Constants.TraktTvURLs.URLGetFriends, Constants.TraktTvURLs.APIKey, "lwerndly"); logger.Trace("GetFriends: {0}", url); TraktTVPost_GetFriends cmdFriends = new TraktTVPost_GetFriends(); cmdFriends.Init(); string json = JSONHelper.Serialize<TraktTVPost_GetFriends>(cmdFriends); string jsonResponse = SendData(url, json); if (jsonResponse.Trim().Length == 0) return friends; friends = JSONHelper.Deserialize<List<TraktTVUser>>(jsonResponse); /*string json = Utils.DownloadWebPage(url); if (json.Trim().Length == 0) return null; friends = JSONHelper.Deserialize<List<TraktTVUser>>(json);*/ Trakt_ShowRepository repShows = new Trakt_ShowRepository(); Trakt_EpisodeRepository repEpisodes = new Trakt_EpisodeRepository(); Trakt_FriendRepository repFriends = new Trakt_FriendRepository(); foreach (TraktTVUser friend in friends) { Trakt_Friend traktFriend = repFriends.GetByUsername(friend.username); if (traktFriend == null) { traktFriend = new Trakt_Friend(); traktFriend.LastAvatarUpdate = DateTime.Now; } traktFriend.Populate(friend); repFriends.Save(traktFriend); if (!string.IsNullOrEmpty(traktFriend.FullImagePath)) { bool fileExists = File.Exists(traktFriend.FullImagePath); TimeSpan ts = DateTime.Now - traktFriend.LastAvatarUpdate; if (!fileExists || ts.TotalHours > 8) { traktFriend.LastAvatarUpdate = DateTime.Now; CommandRequest_DownloadImage cmd = new CommandRequest_DownloadImage(traktFriend.Trakt_FriendID, JMMImageType.Trakt_Friend, true); cmd.Save(); } } foreach (TraktTVWatched wtch in friend.watched) { if (wtch.episode != null && wtch.show != null) { Trakt_Show show = repShows.GetByTraktID(wtch.show.TraktID); if (show == null) { show = new Trakt_Show(); show.Populate(wtch.show); repShows.Save(show); } Trakt_Episode episode = repEpisodes.GetByShowIDSeasonAndEpisode(show.Trakt_ShowID, int.Parse(wtch.episode.season), int.Parse(wtch.episode.number)); if (episode == null) episode = new Trakt_Episode(); episode.Populate(wtch.episode, show.Trakt_ShowID); repEpisodes.Save(episode); if (!string.IsNullOrEmpty(episode.FullImagePath)) { bool fileExists = File.Exists(episode.FullImagePath); if (!fileExists) { CommandRequest_DownloadImage cmd = new CommandRequest_DownloadImage(episode.Trakt_EpisodeID, JMMImageType.Trakt_Episode, false); cmd.Save(); } } } } } //Contract_Trakt_Friend fr = friends[0].ToContract(); } catch (Exception ex) { logger.ErrorException("Error in TraktTVHelper.GetFriends: " + ex.ToString(), ex); return friends; } return friends; }
public static void SaveExtendedShowInfo(TraktTVShow tvshow) { try { // save this data to the DB for use later Trakt_ImageFanartRepository repFanart = new Trakt_ImageFanartRepository(); Trakt_ShowRepository repShows = new Trakt_ShowRepository(); Trakt_Show show = repShows.GetByTraktID(tvshow.TraktID); if (show == null) show = new Trakt_Show(); show.Populate(tvshow); repShows.Save(show); if (tvshow.images != null) { if (!string.IsNullOrEmpty(tvshow.images.fanart)) { Trakt_ImageFanart fanart = repFanart.GetByShowIDAndSeason(show.Trakt_ShowID, 1); if (fanart == null) { fanart = new Trakt_ImageFanart(); fanart.Enabled = 0; } fanart.ImageURL = tvshow.images.fanart; fanart.Season = 1; fanart.Trakt_ShowID = show.Trakt_ShowID; repFanart.Save(fanart); } } // save the seasons Trakt_SeasonRepository repSeasons = new Trakt_SeasonRepository(); Trakt_EpisodeRepository repEpisodes = new Trakt_EpisodeRepository(); Trakt_ImagePosterRepository repPosters = new Trakt_ImagePosterRepository(); foreach (TraktTVSeason sea in tvshow.seasons) { Trakt_Season season = repSeasons.GetByShowIDAndSeason(show.Trakt_ShowID, int.Parse(sea.season)); if (season == null) season = new Trakt_Season(); season.Season = int.Parse(sea.season); season.URL = sea.url; season.Trakt_ShowID = show.Trakt_ShowID; repSeasons.Save(season); if (sea.images != null) { if (!string.IsNullOrEmpty(sea.images.poster)) { Trakt_ImagePoster poster = repPosters.GetByShowIDAndSeason(show.Trakt_ShowID, season.Season); if (poster == null) { poster = new Trakt_ImagePoster(); poster.Enabled = 0; } poster.ImageURL = sea.images.poster; poster.Season = season.Season; poster.Trakt_ShowID = show.Trakt_ShowID; repPosters.Save(poster); } } foreach (TraktTVEpisode ep in sea.episodes) { Trakt_Episode episode = repEpisodes.GetByShowIDSeasonAndEpisode(show.Trakt_ShowID, int.Parse(ep.season), int.Parse(ep.episode)); if (episode == null) episode = new Trakt_Episode(); episode.EpisodeImage = ep.screen; episode.EpisodeNumber = int.Parse(ep.episode); episode.Overview = ep.overview; episode.Season = int.Parse(ep.season); episode.Title = ep.title; episode.URL = ep.url; episode.Trakt_ShowID = show.Trakt_ShowID; repEpisodes.Save(episode); } } } catch (Exception ex) { logger.ErrorException("Error in TraktTVHelper.SaveExtendedShowInfo: " + ex.ToString(), ex); } }
public static TraktTV_ActivitySummary GetActivityFriends(bool shoutsOnly) { TraktTV_ActivitySummary summ = null; try { if (string.IsNullOrEmpty(ServerSettings.Trakt_Username) || string.IsNullOrEmpty(ServerSettings.Trakt_Password)) return null; string url = string.Format(Constants.TraktTvURLs.URLGetActivityFriends, Constants.TraktTvURLs.APIKey); if (shoutsOnly) url = string.Format(Constants.TraktTvURLs.URLGetActivityFriendsShoutsOnly, Constants.TraktTvURLs.APIKey); logger.Trace("GetActivityFriends: {0}", url); TraktTVPost_GetFriends cmdFriends = new TraktTVPost_GetFriends(); cmdFriends.Init(); string json = JSONHelper.Serialize<TraktTVPost_GetFriends>(cmdFriends); // TraktTVPost_GetFriends is really just an auth method string jsonResponse = SendData(url, json); if (jsonResponse.Trim().Length == 0) return null; summ = JSONHelper.Deserialize<TraktTV_ActivitySummary>(jsonResponse); if (summ == null) return null; // save any trakt data that we don't have already Trakt_ShowRepository repShows = new Trakt_ShowRepository(); Trakt_EpisodeRepository repEpisodes = new Trakt_EpisodeRepository(); Trakt_FriendRepository repFriends = new Trakt_FriendRepository(); foreach (TraktTV_Activity act in summ.activity) { if (act.user == null) continue; TraktTV_UserActivity friend = act.user; Trakt_Friend traktFriend = repFriends.GetByUsername(friend.username); if (traktFriend == null) { traktFriend = new Trakt_Friend(); traktFriend.LastAvatarUpdate = DateTime.Now; } traktFriend.Populate(friend); repFriends.Save(traktFriend); if (!string.IsNullOrEmpty(traktFriend.FullImagePath)) { bool fileExists = File.Exists(traktFriend.FullImagePath); TimeSpan ts = DateTime.Now - traktFriend.LastAvatarUpdate; if (!fileExists || ts.TotalHours > 8) { traktFriend.LastAvatarUpdate = DateTime.Now; CommandRequest_DownloadImage cmd = new CommandRequest_DownloadImage(traktFriend.Trakt_FriendID, JMMImageType.Trakt_Friend, true); cmd.Save(); } } if (act.episode != null && act.show != null) { Trakt_Show show = repShows.GetByTraktID(act.show.TraktID); if (show == null) { show = new Trakt_Show(); show.Populate(act.show); repShows.Save(show); } Trakt_Episode episode = repEpisodes.GetByShowIDSeasonAndEpisode(show.Trakt_ShowID, int.Parse(act.episode.season), int.Parse(act.episode.number)); if (episode == null) episode = new Trakt_Episode(); episode.Populate(act.episode, show.Trakt_ShowID); repEpisodes.Save(episode); if (!string.IsNullOrEmpty(episode.FullImagePath)) { bool fileExists = File.Exists(episode.FullImagePath); if (!fileExists) { CommandRequest_DownloadImage cmd = new CommandRequest_DownloadImage(episode.Trakt_EpisodeID, JMMImageType.Trakt_Episode, false); cmd.Save(); } } } // a shout on just the show if (act.episode == null && act.show != null) { Trakt_Show show = repShows.GetByTraktID(act.show.TraktID); if (show == null) { show = new Trakt_Show(); show.Populate(act.show); repShows.Save(show); } } } } catch (Exception ex) { logger.ErrorException("Error in TraktTVHelper.GetActivityFriends: " + ex.ToString(), ex); } return summ; }