Example #1
0
 public static Trakt_Show GetByTraktShow(this SVR_CrossRef_AniDB_Provider cross)
 {
     if (cross.CrossRefType != CrossRefType.TraktTV)
     {
         return(null);
     }
     return(Repo.Instance.Trakt_Show.GetByTraktSlug(cross.CrossRefID));
 }
Example #2
0
 public static MovieDB_Movie GetMovieDB_Movie(this SVR_CrossRef_AniDB_Provider cross)
 {
     if (cross.CrossRefType != CrossRefType.MovieDB)
     {
         return(null);
     }
     return(Repo.Instance.MovieDb_Movie.GetByOnlineID(int.Parse(cross.CrossRefID)));
 }
Example #3
0
 public static TvDB_Series GetTvDBSeries(this SVR_CrossRef_AniDB_Provider cross)
 {
     if (cross.CrossRefType != CrossRefType.TvDB)
     {
         return(null);
     }
     return(Repo.Instance.TvDB_Series.GetByTvDBID(int.Parse(cross.CrossRefID)));
 }
Example #4
0
        public static WebCache_CrossRef_AniDB_Provider ToWebCache(this  SVR_CrossRef_AniDB_Provider pr)
        {
            WebCache_CrossRef_AniDB_Provider w = new WebCache_CrossRef_AniDB_Provider();

            w.CrossRefID           = pr.CrossRefID;
            w.AnimeID              = pr.AnimeID;
            w.CrossRefSource       = pr.CrossRefSource;
            w.CrossRefType         = pr.CrossRefType;
            w.EpisodesOverrideData = pr.EpisodesOverrideData;
            w.IsAdditive           = pr.IsAdditive;
            return(w);
        }
Example #5
0
 public static CL_CrossRef_AniDB_Provider ToClient(this SVR_CrossRef_AniDB_Provider c)
 {
     return(new CL_CrossRef_AniDB_Provider
     {
         AnimeID = c.AnimeID,
         CrossRef_AniDB_ProviderID = c.CrossRef_AniDB_ProviderID,
         CrossRefID = c.CrossRefID,
         CrossRefSource = c.CrossRefSource,
         CrossRefType = c.CrossRefType,
         Episodes = c.Episodes,
         EpisodesData = c.EpisodesData,
         EpisodesOverride = c.EpisodesOverride,
         EpisodesOverrideData = c.EpisodesOverrideData
     });
 }
        private static void AddCrossRef_AniDB_TvDBV2(int animeID, int tvdbID, CrossRefSource source)
        {
            if (Repo.Instance.CrossRef_AniDB_Provider.GetByAnimeIdAndProvider(CrossRefType.TvDB, animeID, tvdbID.ToString()) == null)
            {
                return;
            }

            SVR_CrossRef_AniDB_Provider xref = new SVR_CrossRef_AniDB_Provider
            {
                AnimeID        = animeID,
                CrossRefID     = tvdbID.ToString(),
                CrossRefSource = source,
                CrossRefType   = CrossRefType.TvDB
            };

            Repo.Instance.CrossRef_AniDB_Provider.BeginAdd(xref).Commit();
        }
Example #7
0
        public static void LinkAniDBMovieDB(int animeID, int movieDBID, bool fromWebCache)
        {
            // check if we have this information locally
            // if not download it now

            MovieDB_Movie movie = Repo.Instance.MovieDb_Movie.GetByMovieID(movieDBID).FirstOrDefault();

            if (movie == null)
            {
                // we download the series info here just so that we have the basic info in the
                // database before the queued task runs later
                UpdateMovieInfo(movieDBID, false);
                movie = Repo.Instance.MovieDb_Movie.GetByMovieID(movieDBID).FirstOrDefault();
                if (movie == null)
                {
                    return;
                }
            }

            // download and update series info and images
            UpdateMovieInfo(movieDBID, true);
            ;
            using (var upd = Repo.Instance.CrossRef_AniDB_Provider.BeginAddOrUpdate(() => Repo.Instance.CrossRef_AniDB_Provider.GetByAnimeIDAndType(animeID, CrossRefType.MovieDB).FirstOrDefault()))
            {
                upd.Entity.AnimeID = animeID;
                if (fromWebCache)
                {
                    upd.Entity.CrossRefSource = CrossRefSource.WebCache;
                }
                else
                {
                    upd.Entity.CrossRefSource = CrossRefSource.User;
                }

                upd.Entity.CrossRefType = CrossRefType.MovieDB;
                upd.Entity.CrossRefID   = movieDBID.ToString();
                SVR_CrossRef_AniDB_Provider xref = upd.Commit();
                CommandQueue.Queue.Instance.Add(new CmdWebCacheSendAniDBXRef(xref.CrossRef_AniDB_ProviderID));
            }
            SVR_AniDB_Anime.UpdateStatsByAnimeID(animeID);

            logger.Trace("Changed moviedb association: {0}", animeID);
        }
Example #8
0
        public CL_AniDB_AnimeCrossRefs GetCrossRefDetails(int animeID)
        {
            CL_AniDB_AnimeCrossRefs result = new CL_AniDB_AnimeCrossRefs
            {
                CrossRef_AniDB_TvDB  = new List <CL_CrossRef_AniDB_Provider>(),
                TvDBSeries           = new List <TvDB_Series>(),
                TvDBEpisodes         = new List <TvDB_Episode>(),
                TvDBImageFanarts     = new List <TvDB_ImageFanart>(),
                TvDBImagePosters     = new List <TvDB_ImagePoster>(),
                TvDBImageWideBanners = new List <TvDB_ImageWideBanner>(),

                CrossRef_AniDB_MovieDB = null,
                MovieDBMovie           = null,
                MovieDBFanarts         = new List <MovieDB_Fanart>(),
                MovieDBPosters         = new List <MovieDB_Poster>(),

                CrossRef_AniDB_MAL = null,

                CrossRef_AniDB_Trakt = new List <CL_CrossRef_AniDB_Provider>(),
                TraktShows           = new List <CL_Trakt_Show>(),
                AnimeID = animeID
            };

            try
            {
                SVR_AniDB_Anime anime = Repo.Instance.AniDB_Anime.GetByID(animeID);
                if (anime == null)
                {
                    return(result);
                }

                var xrefs = Repo.Instance.CrossRef_AniDB_Provider.GetByAnimeIDAndType(animeID, CrossRefType.TvDB).Select(a => a.ToClient()).ToList();

                // TvDB
                result.CrossRef_AniDB_TvDB = xrefs;

                foreach (TvDB_Episode ep in anime.GetTvDBEpisodes())
                {
                    result.TvDBEpisodes.Add(ep);
                }

                foreach (var xref in xrefs.DistinctBy(a => a.CrossRefID))
                {
                    TvDB_Series ser = Repo.Instance.TvDB_Series.GetByTvDBID(int.Parse(xref.CrossRefID));
                    if (ser != null)
                    {
                        result.TvDBSeries.Add(ser);
                    }

                    foreach (TvDB_ImageFanart fanart in Repo.Instance.TvDB_ImageFanart.GetBySeriesID(int.Parse(xref.CrossRefID)))
                    {
                        result.TvDBImageFanarts.Add(fanart);
                    }

                    foreach (TvDB_ImagePoster poster in Repo.Instance.TvDB_ImagePoster.GetBySeriesID(int.Parse(xref.CrossRefID)))
                    {
                        result.TvDBImagePosters.Add(poster);
                    }

                    foreach (TvDB_ImageWideBanner banner in Repo.Instance.TvDB_ImageWideBanner.GetBySeriesID(int.Parse(xref.CrossRefID)))
                    {
                        result.TvDBImageWideBanners.Add(banner);
                    }
                }

                // Trakt


                foreach (CL_CrossRef_AniDB_Provider xref in anime.GetCrossRefTraktV2().Select(a => a.ToClient()))
                {
                    result.CrossRef_AniDB_Trakt.Add(xref);

                    Trakt_Show show = Repo.Instance.Trakt_Show.GetByTraktSlug(xref.CrossRefID);
                    if (show != null)
                    {
                        result.TraktShows.Add(show.ToClient());
                    }
                }


                // MovieDB
                SVR_CrossRef_AniDB_Provider xrefMovie = anime.GetCrossRefMovieDB();
                result.CrossRef_AniDB_MovieDB = xrefMovie;


                result.MovieDBMovie = anime.GetMovieDBMovie();


                foreach (MovieDB_Fanart fanart in anime.GetMovieDBFanarts())
                {
                    if (fanart.ImageSize.Equals(Shoko.Models.Constants.MovieDBImageSize.Original,
                                                StringComparison.InvariantCultureIgnoreCase))
                    {
                        result.MovieDBFanarts.Add(fanart);
                    }
                }

                foreach (MovieDB_Poster poster in anime.GetMovieDBPosters())
                {
                    if (poster.ImageSize.Equals(Shoko.Models.Constants.MovieDBImageSize.Original,
                                                StringComparison.InvariantCultureIgnoreCase))
                    {
                        result.MovieDBPosters.Add(poster);
                    }
                }

                // MAL
                List <SVR_CrossRef_AniDB_Provider> xrefMAL = anime.GetCrossRefMAL();
                if (xrefMAL == null)
                {
                    result.CrossRef_AniDB_MAL = null;
                }
                else
                {
                    result.CrossRef_AniDB_MAL = new List <CrossRef_AniDB_Provider>();
                    foreach (SVR_CrossRef_AniDB_Provider xrefTemp in xrefMAL)
                    {
                        result.CrossRef_AniDB_MAL.Add(xrefTemp);
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                logger.Error(ex, ex.ToString());
                return(result);
            }
        }