Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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();
         }
     }
 }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 5
0
        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();
             }
         }
     }
 }
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 11
0
        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;
            }
        }
Ejemplo n.º 13
0
 public static Trakt_Show GetByTraktShow(this CrossRef_AniDB_TraktV2 cross, ISession session)
 {
     return(RepoFactory.Trakt_Show.GetByTraktSlug(session, cross.TraktID));
 }
Ejemplo n.º 14
0
 public static Trakt_Show GetByTraktShow(this CrossRef_AniDB_TraktV2 cross)
 {
     return(Repo.Instance.Trakt_Show.GetByTraktSlug(cross.TraktID));
 }
Ejemplo n.º 15
0
        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);
            }
        }
Ejemplo n.º 16
0
#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());
            }
        }