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)); }
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))); }
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))); }
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); }
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(); }
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); }
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); } }