public static MovieDB_Movie GetMovieDB_Movie(this CrossRef_AniDB_Other cross) { using (var session = DatabaseFactory.SessionFactory.OpenSession()) { return(cross.GetMovieDB_Movie(session.Wrap())); } }
public static MovieDB_Movie GetMovieDB_Movie(this CrossRef_AniDB_Other cross) { if (cross.CrossRefType != (int)CrossRefType.MovieDB) { return(null); } return(Repo.Instance.MovieDb_Movie.GetByOnlineID(int.Parse(cross.CrossRefID))); }
public static MovieDB_Movie GetMovieDB_Movie(this CrossRef_AniDB_Other cross, ISessionWrapper session) { if (cross.CrossRefType != (int)CrossRefType.MovieDB) { return(null); } return(RepoFactory.MovieDb_Movie.GetByOnlineID(session, Int32.Parse(cross.CrossRefID))); }
public CrossRef_AniDB_Other GetByAnimeIDAndType(ISession session, int animeID, CrossRefType xrefType) { CrossRef_AniDB_Other cr = session .CreateCriteria(typeof(CrossRef_AniDB_Other)) .Add(Restrictions.Eq("AnimeID", animeID)) .Add(Restrictions.Eq("CrossRefType", (int)xrefType)) .UniqueResult <CrossRef_AniDB_Other>(); return(cr); }
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 = RepoFactory.MovieDb_Movie.GetByOnlineID(movieDBID); 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 = RepoFactory.MovieDb_Movie.GetByOnlineID(movieDBID); if (movie == null) { return; } } // download and update series info and images UpdateMovieInfo(movieDBID, true); CrossRef_AniDB_Other xref = RepoFactory.CrossRef_AniDB_Other.GetByAnimeIDAndType(animeID, CrossRefType.MovieDB); if (xref == null) { xref = new CrossRef_AniDB_Other(); } xref.AnimeID = animeID; if (fromWebCache) { xref.CrossRefSource = (int)CrossRefSource.WebCache; } else { xref.CrossRefSource = (int)CrossRefSource.User; } xref.CrossRefType = (int)CrossRefType.MovieDB; xref.CrossRefID = movieDBID.ToString(); RepoFactory.CrossRef_AniDB_Other.Save(xref); SVR_AniDB_Anime.UpdateStatsByAnimeID(animeID); logger.Trace("Changed moviedb association: {0}", animeID); if (ServerSettings.Instance.WebCache.Enabled) { CommandRequest_WebCacheSendXRefAniDBOther req = new CommandRequest_WebCacheSendXRefAniDBOther(xref.CrossRef_AniDB_OtherID); req.Save(); } }
public static Azure_CrossRef_AniDB_Other_Request ToRequest(this CrossRef_AniDB_Other c) { return(new Azure_CrossRef_AniDB_Other_Request { CrossRef_AniDB_OtherID = c.CrossRef_AniDB_OtherID, AnimeID = c.AnimeID, CrossRefID = c.CrossRefID, CrossRefSource = c.CrossRefSource, CrossRefType = c.CrossRefType, }); }
public void Save(CrossRef_AniDB_Other obj) { using (var session = JMMService.SessionFactory.OpenSession()) { // populate the database using (var transaction = session.BeginTransaction()) { session.SaveOrUpdate(obj); transaction.Commit(); } } }
public static void Send_CrossRef_AniDB_Other(CrossRef_AniDB_Other data) { if (!ServerSettings.WebCache_XRefFileEpisode_Send) { return; } string uri = string.Format("http://{0}/AddCrossRef_AniDB_Other.aspx", ServerSettings.WebCache_Address); AddCrossRef_AniDB_OtherRequest fhr = new AddCrossRef_AniDB_OtherRequest(data); string xml = fhr.ToXML(); SendData(uri, xml); }
public static void Send_CrossRefAniDBOther(CrossRef_AniDB_Other data) { if (!ServerSettings.WebCache_TvDB_Send) { return; } string uri = string.Format(@"http://{0}/api/CrossRef_AniDB_Other", azureHostBaseAddress); Azure_CrossRef_AniDB_Other_Request input = data.ToRequest(); string json = JSONHelper.Serialize <Azure_CrossRef_AniDB_Other_Request>(input); SendData(uri, json, "POST"); }
public static void Send_CrossRefAniDBOther(CrossRef_AniDB_Other data) { if (!ServerSettings.Instance.WebCache.TvDB_Send) { return; } string uri = $@"http://{azureHostBaseAddress}/api/CrossRef_AniDB_Other"; Azure_CrossRef_AniDB_Other_Request input = data.ToRequest(); string json = JSONHelper.Serialize(input); SendData(uri, json, "POST"); }
// default constructor public AddCrossRef_AniDB_OtherRequest(CrossRef_AniDB_Other data) { this.AnimeID = data.AnimeID; this.CrossRefID = data.CrossRefID; this.CrossRefType = data.CrossRefType; string username = ServerSettings.AniDB_Username; if (ServerSettings.WebCache_Anonymous) { username = Constants.AnonWebCacheUsername; } this.Username = username; }
public static void RemoveLinkAniDBMovieDB(int animeID) { CrossRef_AniDB_Other xref = RepoFactory.CrossRef_AniDB_Other.GetByAnimeIDAndType(animeID, CrossRefType.MovieDB); if (xref == null) { return; } RepoFactory.CrossRef_AniDB_Other.Delete(xref.CrossRef_AniDB_OtherID); CommandRequest_WebCacheDeleteXRefAniDBOther req = new CommandRequest_WebCacheDeleteXRefAniDBOther(animeID, CrossRefType.MovieDB); req.Save(); }
public void Delete(int id) { using (var session = JMMService.SessionFactory.OpenSession()) { // populate the database using (var transaction = session.BeginTransaction()) { CrossRef_AniDB_Other cr = GetByID(id); if (cr != null) { session.Delete(cr); transaction.Commit(); } } } }
public override void ProcessCommand() { try { CrossRef_AniDB_Other xref = RepoFactory.CrossRef_AniDB_Other.GetByID(CrossRef_AniDB_OtherID); if (xref == null) { return; } AzureWebAPI.Send_CrossRefAniDBOther(xref); } catch (Exception ex) { logger.Error(ex, "Error processing CommandRequest_WebCacheSendXRefAniDBOther: {0}" + ex); } }
public override void ProcessCommand() { try { CrossRef_AniDB_OtherRepository repCrossRef = new CrossRef_AniDB_OtherRepository(); CrossRef_AniDB_Other xref = repCrossRef.GetByID(CrossRef_AniDB_OtherID); if (xref == null) { return; } XMLService.Send_CrossRef_AniDB_Other(xref); } catch (Exception ex) { logger.ErrorException("Error processing CommandRequest_WebCacheSendXRefAniDBOther: {0}" + ex.ToString(), ex); return; } }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; try { CrossRef_AniDB_OtherRepository repCrossRef = new CrossRef_AniDB_OtherRepository(); StreamReader reader = new StreamReader(this.Request.InputStream); String xmlData = reader.ReadToEnd(); XmlDocument docXRef = new XmlDocument(); docXRef.LoadXml(xmlData); string uname = Utils.TryGetProperty("AddCrossRef_AniDB_Other_Request", docXRef, "Username"); string aid = Utils.TryGetProperty("AddCrossRef_AniDB_Other_Request", docXRef, "AnimeID"); int animeid = 0; int.TryParse(aid, out animeid); string xrefID = Utils.TryGetProperty("AddCrossRef_AniDB_Other_Request", docXRef, "CrossRefID"); string xtype = Utils.TryGetProperty("AddCrossRef_AniDB_Other_Request", docXRef, "CrossRefType"); int xrefType = 0; int.TryParse(xtype, out xrefType); if (string.IsNullOrEmpty(uname) || string.IsNullOrEmpty(xrefID) || animeid <= 0 || xrefType <= 0) { Response.Write(Constants.ERROR_XML); return; } CrossRef_AniDB_Other xref = null; List <CrossRef_AniDB_Other> recs = repCrossRef.GetByAnimeIDAndTypeAndUser(animeid, uname, (CrossRefType)xrefType); if (recs.Count == 1) { xref = recs[0]; } if (recs.Count == 0) { xref = new CrossRef_AniDB_Other(); } else { xref = recs[0]; } xref.AnimeID = animeid; xref.AdminApproved = 0; xref.CrossRefSource = 1; xref.CrossRefType = xrefType; xref.CrossRefID = xrefID; xref.Username = uname; repCrossRef.Save(xref); // now send to mirror string uri = string.Format("http://{0}/AddCrossRef_AniDB_Other.aspx", Constants.MirrorWAIX); XMLService.SendData(uri, xmlData); } catch (Exception ex) { Response.Write(Constants.ERROR_XML); } }
public CL_AniDB_AnimeCrossRefs GetCrossRefDetails(int animeID) { CL_AniDB_AnimeCrossRefs result = new CL_AniDB_AnimeCrossRefs { CrossRef_AniDB_TvDB = new List <CrossRef_AniDB_TvDBV2>(), 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 <CrossRef_AniDB_TraktV2>(), TraktShows = new List <CL_Trakt_Show>(), AnimeID = animeID }; try { using (var session = DatabaseFactory.SessionFactory.OpenSession()) { SVR_AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(animeID); if (anime == null) { return(result); } var xrefs = RepoFactory.CrossRef_AniDB_TvDB.GetV2LinksFromAnime(animeID); // 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.TvDBID)) { TvDB_Series ser = RepoFactory.TvDB_Series.GetByTvDBID(xref.TvDBID); if (ser != null) { result.TvDBSeries.Add(ser); } foreach (TvDB_ImageFanart fanart in RepoFactory.TvDB_ImageFanart.GetBySeriesID(xref.TvDBID)) { result.TvDBImageFanarts.Add(fanart); } foreach (TvDB_ImagePoster poster in RepoFactory.TvDB_ImagePoster.GetBySeriesID(xref.TvDBID)) { result.TvDBImagePosters.Add(poster); } foreach (TvDB_ImageWideBanner banner in RepoFactory.TvDB_ImageWideBanner.GetBySeriesID(xref .TvDBID)) { result.TvDBImageWideBanners.Add(banner); } } // Trakt foreach (CrossRef_AniDB_TraktV2 xref in anime.GetCrossRefTraktV2(session)) { result.CrossRef_AniDB_Trakt.Add(xref); Trakt_Show show = RepoFactory.Trakt_Show.GetByTraktSlug(session, xref.TraktID); if (show != null) { result.TraktShows.Add(show.ToClient()); } } // MovieDB CrossRef_AniDB_Other 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 <CrossRef_AniDB_MAL> xrefMAL = anime.GetCrossRefMAL(); if (xrefMAL == null) { result.CrossRef_AniDB_MAL = null; } else { result.CrossRef_AniDB_MAL = new List <CrossRef_AniDB_MAL>(); foreach (CrossRef_AniDB_MAL xrefTemp in xrefMAL) { result.CrossRef_AniDB_MAL.Add(xrefTemp); } } } return(result); } catch (Exception ex) { logger.Error(ex, ex.ToString()); return(result); } }
public CrossRef_AniDB_OtherResult(CrossRef_AniDB_Other xref) { this.AnimeID = xref.AnimeID; this.CrossRefID = xref.CrossRefID; }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; try { string aid = Utils.GetParam("AnimeID"); int animeid = 0; int.TryParse(aid, out animeid); if (animeid <= 0) { Response.Write(Constants.ERROR_XML); return; } string xtype = Utils.GetParam("CrossRefType"); int xrefType = 0; int.TryParse(xtype, out xrefType); if (xrefType <= 0) { Response.Write(Constants.ERROR_XML); return; } string uname = Utils.GetParam("uname"); if (uname.Trim().Length == 0) { Response.Write(Constants.ERROR_XML); return; } CrossRef_AniDB_OtherRepository repCrossRef = new CrossRef_AniDB_OtherRepository(); CrossRef_AniDB_Other xref = null; // check for user specific List <CrossRef_AniDB_Other> recs; if (xref == null) { recs = repCrossRef.GetByAnimeIDAndTypeAndUser(animeid, uname, (CrossRefType)xrefType); if (recs.Count > 0) { xref = recs[0]; // should only be one } } // check for other users (anonymous) if (xref == null) { // check for other users (anonymous) recs = repCrossRef.GetByAnimeIDAndType(animeid, (CrossRefType)xrefType); if (recs.Count == 0) { Response.Write(Constants.ERROR_XML); return; } // find the most popular result List <CrossRefStatOther> results = new List <CrossRefStatOther>(); foreach (CrossRef_AniDB_Other xrefloc in recs) { bool found = false; foreach (CrossRefStatOther stat in results) { if (stat.CrossRefID.Equals(xrefloc.CrossRefID, StringComparison.InvariantCultureIgnoreCase)) { found = true; stat.ResultCount++; } } if (!found) { CrossRefStatOther stat = new CrossRefStatOther(); stat.ResultCount = 1; stat.CrossRefID = xrefloc.CrossRefID; stat.CrossRef = xrefloc; results.Add(stat); } } CrossRefStatOther mostPopular = null; foreach (CrossRefStatOther stat in results) { if (mostPopular == null) { mostPopular = stat; } else { if (stat.ResultCount > mostPopular.ResultCount) { mostPopular = stat; } } } xref = mostPopular.CrossRef; } CrossRef_AniDB_OtherResult result = new CrossRef_AniDB_OtherResult(xref); string ret = Utils.ConvertToXML(result, typeof(CrossRef_AniDB_OtherResult)); Response.Write(ret); } catch (Exception ex) { Response.Write(ex.ToString()); return; } }