public static Azure_CrossRef_AniDB_Trakt_Request ToRequest(this CrossRef_AniDB_TraktV2 xref, string animeName) { Azure_CrossRef_AniDB_Trakt_Request r = new Azure_CrossRef_AniDB_Trakt_Request { AnimeID = xref.AnimeID, AnimeName = animeName, AniDBStartEpisodeType = xref.AniDBStartEpisodeType, AniDBStartEpisodeNumber = xref.AniDBStartEpisodeNumber, TraktID = xref.TraktID, TraktSeasonNumber = xref.TraktSeasonNumber, TraktStartEpisodeNumber = xref.TraktStartEpisodeNumber, TraktTitle = xref.TraktTitle, CrossRefSource = xref.CrossRefSource, Username = ServerSettings.AniDB_Username }; if (ServerSettings.WebCache_Anonymous) { r.Username = Constants.AnonWebCacheUsername; } r.AuthGUID = string.IsNullOrEmpty(ServerSettings.WebCacheAuthKey) ? string.Empty : ServerSettings.WebCacheAuthKey; return(r); }
public static Trakt_Show GetByTraktShow(this CrossRef_AniDB_TraktV2 cross) { using (var session = DatabaseFactory.SessionFactory.OpenSession()) { return(cross.GetByTraktShow(session)); } }
public void Save(CrossRef_AniDB_TraktV2 obj) { using (var session = JMMService.SessionFactory.OpenSession()) { // populate the database using (var transaction = session.BeginTransaction()) { session.SaveOrUpdate(obj); transaction.Commit(); } } }
public static void Send_CrossRefAniDBTrakt(CrossRef_AniDB_TraktV2 data, string animeName) { if (!ServerSettings.Instance.WebCache.Trakt_Send) { return; } string uri = $@"http://{azureHostBaseAddress}/api/CrossRef_AniDB_Trakt"; Azure_CrossRef_AniDB_Trakt_Request input = data.ToRequest(animeName); string json = JSONHelper.Serialize(input); SendData(uri, json, "POST"); }
public static void Send_CrossRefAniDBTrakt(CrossRef_AniDB_TraktV2 data, string animeName) { if (!ServerSettings.WebCache_Trakt_Send) { return; } string uri = string.Format(@"http://{0}/api/CrossRef_AniDB_Trakt", azureHostBaseAddress); CrossRef_AniDB_TraktInput input = new CrossRef_AniDB_TraktInput(data, animeName); string json = JSONHelper.Serialize <CrossRef_AniDB_TraktInput>(input); SendData(uri, json, "POST"); }
public CrossRef_AniDB_TraktV2 GetByTraktID(ISession session, string id, int season, int episodeNumber, int animeID, int aniEpType, int aniEpisodeNumber) { CrossRef_AniDB_TraktV2 cr = session .CreateCriteria(typeof(CrossRef_AniDB_TraktV2)) .Add(Restrictions.Eq("TraktID", id)) .Add(Restrictions.Eq("TraktSeasonNumber", season)) .Add(Restrictions.Eq("TraktStartEpisodeNumber", episodeNumber)) .Add(Restrictions.Eq("AnimeID", animeID)) .Add(Restrictions.Eq("AniDBStartEpisodeType", aniEpType)) .Add(Restrictions.Eq("AniDBStartEpisodeNumber", aniEpisodeNumber)) .UniqueResult <CrossRef_AniDB_TraktV2>(); return(cr); }
public void Delete(int id) { using (var session = JMMService.SessionFactory.OpenSession()) { // populate the database using (var transaction = session.BeginTransaction()) { CrossRef_AniDB_TraktV2 cr = GetByID(id); if (cr != null) { session.Delete(cr); transaction.Commit(); } } } }
public static Azure_CrossRef_AniDB_Trakt_Request ToRequest(this CrossRef_AniDB_TraktV2 xref, string animeName) { Azure_CrossRef_AniDB_Trakt_Request r = new Azure_CrossRef_AniDB_Trakt_Request { AnimeID = xref.AnimeID, AnimeName = animeName, AniDBStartEpisodeType = xref.AniDBStartEpisodeType, AniDBStartEpisodeNumber = xref.AniDBStartEpisodeNumber, TraktID = xref.TraktID, TraktSeasonNumber = xref.TraktSeasonNumber, TraktStartEpisodeNumber = xref.TraktStartEpisodeNumber, TraktTitle = xref.TraktTitle, CrossRefSource = xref.CrossRefSource, Username = Constants.AnonWebCacheUsername, AuthGUID = String.Empty }; return(r); }
public string LinkAniDBTrakt(int animeID, int aniEpType, int aniEpNumber, string traktID, int seasonNumber, int traktEpNumber, int?crossRef_AniDB_TraktV2ID) { try { if (crossRef_AniDB_TraktV2ID.HasValue) { CrossRef_AniDB_TraktV2 xrefTemp = RepoFactory.CrossRef_AniDB_TraktV2.GetByID(crossRef_AniDB_TraktV2ID.Value); // delete the existing one if we are updating TraktTVHelper.RemoveLinkAniDBTrakt(xrefTemp.AnimeID, (EpisodeType)xrefTemp.AniDBStartEpisodeType, xrefTemp.AniDBStartEpisodeNumber, xrefTemp.TraktID, xrefTemp.TraktSeasonNumber, xrefTemp.TraktStartEpisodeNumber); } CrossRef_AniDB_TraktV2 xref = RepoFactory.CrossRef_AniDB_TraktV2.GetByTraktID(traktID, seasonNumber, traktEpNumber, animeID, aniEpType, aniEpNumber); if (xref != null) { string msg = string.Format("You have already linked Anime ID {0} to this Trakt show/season/ep", xref.AnimeID); SVR_AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(xref.AnimeID); if (anime != null) { msg = string.Format("You have already linked Anime {0} ({1}) to this Trakt show/season/ep", anime.MainTitle, xref.AnimeID); } return(msg); } return(TraktTVHelper.LinkAniDBTrakt(animeID, (EpisodeType)aniEpType, aniEpNumber, traktID, seasonNumber, traktEpNumber, false)); } catch (Exception ex) { logger.Error(ex, ex.ToString()); return(ex.Message); } }
public CrossRef_AniDB_TraktInput(CrossRef_AniDB_TraktV2 xref, string animeName) { this.AnimeID = xref.AnimeID; this.AnimeName = animeName; this.AniDBStartEpisodeType = xref.AniDBStartEpisodeType; this.AniDBStartEpisodeNumber = xref.AniDBStartEpisodeNumber; this.TraktID = xref.TraktID; this.TraktSeasonNumber = xref.TraktSeasonNumber; this.TraktStartEpisodeNumber = xref.TraktStartEpisodeNumber; this.TraktTitle = xref.TraktTitle; this.CrossRefSource = xref.CrossRefSource; this.Username = ServerSettings.AniDB_Username; if (ServerSettings.WebCache_Anonymous) { this.Username = Constants.AnonWebCacheUsername; } this.AuthGUID = string.IsNullOrEmpty(ServerSettings.WebCacheAuthKey) ? "" : ServerSettings.WebCacheAuthKey; }
public override void ProcessCommand() { try { CrossRef_AniDB_TraktV2Repository repCrossRef = new CrossRef_AniDB_TraktV2Repository(); CrossRef_AniDB_TraktV2 xref = repCrossRef.GetByID(CrossRef_AniDB_TraktID); if (xref == null) { return; } Trakt_ShowRepository repShow = new Trakt_ShowRepository(); Trakt_Show tvShow = repShow.GetByTraktSlug(xref.TraktID); if (tvShow == null) { return; } AniDB_AnimeRepository repAnime = new AniDB_AnimeRepository(); AniDB_Anime anime = repAnime.GetByAnimeID(xref.AnimeID); if (anime == null) { return; } string showName = ""; if (tvShow != null) { showName = tvShow.Title; } AzureWebAPI.Send_CrossRefAniDBTrakt(xref, anime.MainTitle); } catch (Exception ex) { logger.ErrorException( "Error processing CommandRequest_WebCacheSendXRefAniDBTrakt: {0}" + ex.ToString(), ex); return; } }
public override void ProcessCommand() { try { CrossRef_AniDB_TraktV2 xref = RepoFactory.CrossRef_AniDB_TraktV2.GetByID(CrossRef_AniDB_TraktID); if (xref == null) { return; } Trakt_Show tvShow = RepoFactory.Trakt_Show.GetByTraktSlug(xref.TraktID); if (tvShow == null) { return; } SVR_AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(xref.AnimeID); if (anime == null) { return; } string showName = string.Empty; if (tvShow != null) { showName = tvShow.Title; } AzureWebAPI.Send_CrossRefAniDBTrakt(xref, anime.MainTitle); } catch (Exception ex) { logger.Error(ex, "Error processing CommandRequest_WebCacheSendXRefAniDBTrakt: {0}" + ex.ToString()); return; } }
public static Trakt_Show GetByTraktShow(this CrossRef_AniDB_TraktV2 cross, ISession session) { return(RepoFactory.Trakt_Show.GetByTraktSlug(session, cross.TraktID)); }
public static Trakt_Show GetByTraktShow(this CrossRef_AniDB_TraktV2 cross) { return(Repo.Instance.Trakt_Show.GetByTraktSlug(cross.TraktID)); }
public static void MigrateTraktLinks_V1_to_V2() { try { AniDB_AnimeRepository repAnime = new AniDB_AnimeRepository(); Trakt_EpisodeRepository repEps = new Trakt_EpisodeRepository(); Trakt_ShowRepository repShows = new Trakt_ShowRepository(); CrossRef_AniDB_TraktRepository repCrossRefTrakt = new CrossRef_AniDB_TraktRepository(); CrossRef_AniDB_TraktV2Repository repCrossRefTraktNew = new CrossRef_AniDB_TraktV2Repository(); using (var session = JMMService.SessionFactory.OpenSession()) { List <CrossRef_AniDB_Trakt> xrefsTrakt = repCrossRefTrakt.GetAll(); foreach (CrossRef_AniDB_Trakt xrefTrakt in xrefsTrakt) { CrossRef_AniDB_TraktV2 xrefNew = new CrossRef_AniDB_TraktV2(); xrefNew.AnimeID = xrefTrakt.AnimeID; xrefNew.CrossRefSource = xrefTrakt.CrossRefSource; xrefNew.TraktID = xrefTrakt.TraktID; xrefNew.TraktSeasonNumber = xrefTrakt.TraktSeasonNumber; Trakt_Show show = xrefTrakt.GetByTraktShow(session); if (show != null) { xrefNew.TraktTitle = show.Title; } // determine start ep type if (xrefTrakt.TraktSeasonNumber == 0) { xrefNew.AniDBStartEpisodeType = (int)AniDBAPI.enEpisodeType.Special; } else { xrefNew.AniDBStartEpisodeType = (int)AniDBAPI.enEpisodeType.Episode; } xrefNew.AniDBStartEpisodeNumber = 1; xrefNew.TraktStartEpisodeNumber = 1; repCrossRefTraktNew.Save(xrefNew); } // create cross ref's for specials foreach (CrossRef_AniDB_Trakt xrefTrakt in xrefsTrakt) { AniDB_Anime anime = repAnime.GetByAnimeID(xrefTrakt.AnimeID); if (anime == null) { continue; } Trakt_Show show = xrefTrakt.GetByTraktShow(session); if (show == null) { continue; } // this anime has specials if (anime.EpisodeCountSpecial <= 0) { continue; } // this Trakt series has a season 0 (specials) List <int> seasons = repEps.GetSeasonNumbersForSeries(show.Trakt_ShowID); if (!seasons.Contains(0)) { continue; } //make sure we are not doubling up CrossRef_AniDB_TraktV2 temp = repCrossRefTraktNew.GetByTraktID(xrefTrakt.TraktID, 0, 1, xrefTrakt.AnimeID, (int)AniDBAPI.enEpisodeType.Special, 1); if (temp != null) { continue; } CrossRef_AniDB_TraktV2 xrefNew = new CrossRef_AniDB_TraktV2(); xrefNew.AnimeID = xrefTrakt.AnimeID; xrefNew.CrossRefSource = xrefTrakt.CrossRefSource; xrefNew.TraktID = xrefTrakt.TraktID; xrefNew.TraktSeasonNumber = 0; xrefNew.TraktStartEpisodeNumber = 1; xrefNew.AniDBStartEpisodeType = (int)AniDBAPI.enEpisodeType.Special; xrefNew.AniDBStartEpisodeNumber = 1; xrefNew.TraktTitle = show.Title; repCrossRefTraktNew.Save(xrefNew); } } } catch (Exception ex) { logger.ErrorException("Could not MigrateTraktLinks_V1_to_V2: " + ex.ToString(), ex); } }
#pragma warning disable CS0612 // Type or member is obsolete public static void MigrateTraktLinks_V1_to_V2() { try { using (var session = DatabaseFactory.SessionFactory.OpenSession()) { IReadOnlyList <CrossRef_AniDB_Trakt> xrefsTrakt = RepoFactory.CrossRef_AniDB_Trakt.GetAll(); foreach (CrossRef_AniDB_Trakt xrefTrakt in xrefsTrakt) { CrossRef_AniDB_TraktV2 xrefNew = new CrossRef_AniDB_TraktV2 { AnimeID = xrefTrakt.AnimeID, CrossRefSource = xrefTrakt.CrossRefSource, TraktID = xrefTrakt.TraktID, TraktSeasonNumber = xrefTrakt.TraktSeasonNumber }; Trakt_Show show = xrefTrakt.GetByTraktShow(session); if (show != null) { xrefNew.TraktTitle = show.Title; } // determine start ep type if (xrefTrakt.TraktSeasonNumber == 0) { xrefNew.AniDBStartEpisodeType = (int)EpisodeType.Special; } else { xrefNew.AniDBStartEpisodeType = (int)EpisodeType.Episode; } xrefNew.AniDBStartEpisodeNumber = 1; xrefNew.TraktStartEpisodeNumber = 1; RepoFactory.CrossRef_AniDB_TraktV2.Save(xrefNew); } // create cross ref's for specials foreach (CrossRef_AniDB_Trakt xrefTrakt in xrefsTrakt) { SVR_AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(xrefTrakt.AnimeID); if (anime == null) { continue; } Trakt_Show show = xrefTrakt.GetByTraktShow(session); if (show == null) { continue; } // this anime has specials if (anime.EpisodeCountSpecial <= 0) { continue; } // this Trakt series has a season 0 (specials) List <int> seasons = RepoFactory.Trakt_Episode.GetSeasonNumbersForSeries(show.Trakt_ShowID); if (!seasons.Contains(0)) { continue; } //make sure we are not doubling up CrossRef_AniDB_TraktV2 temp = RepoFactory.CrossRef_AniDB_TraktV2.GetByTraktID(xrefTrakt.TraktID, 0, 1, xrefTrakt.AnimeID, (int)EpisodeType.Special, 1); if (temp != null) { continue; } CrossRef_AniDB_TraktV2 xrefNew = new CrossRef_AniDB_TraktV2 { AnimeID = xrefTrakt.AnimeID, CrossRefSource = xrefTrakt.CrossRefSource, TraktID = xrefTrakt.TraktID, TraktSeasonNumber = 0, TraktStartEpisodeNumber = 1, AniDBStartEpisodeType = (int)EpisodeType.Special, AniDBStartEpisodeNumber = 1, TraktTitle = show.Title }; RepoFactory.CrossRef_AniDB_TraktV2.Save(xrefNew); } } } catch (Exception ex) { logger.Error(ex, "Could not MigrateTraktLinks_V1_to_V2: " + ex.ToString()); } }