internal static Directory FromGroup(Contract_AnimeGroup grp, Contract_AnimeSeries ser, int userid) { Directory p = new Directory(); p.Key = ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int)JMMType.Group + "/" + grp.AnimeGroupID.ToString()); p.Title = grp.GroupName; p.Summary = grp.Description; p.Type = "show"; p.AirDate = grp.Stat_AirDate_Min.HasValue ? grp.Stat_AirDate_Min.Value : DateTime.MinValue; Contract_AniDBAnime anime = ser.AniDBAnime; if (anime != null) { Contract_AniDB_Anime_DefaultImage poster = anime.DefaultImagePoster; Contract_AniDB_Anime_DefaultImage fanart = anime.DefaultImageFanart; p.Thumb = poster != null?poster.GenPoster() : ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/plex_404V.png"); if (fanart != null) { p.Art = fanart.GenArt(); } } p.LeafCount = (grp.UnwatchedEpisodeCount + grp.WatchedEpisodeCount).ToString(); p.ViewedLeafCount = grp.WatchedEpisodeCount.ToString(); return(p); }
public static string GenArt(this Contract_AniDB_Anime_DefaultImage im) { if (im == null) { return(null); } return(Helper.ConstructImageLink((int)im.ImageType, im.AnimeID)); }
public static string GenPoster(this Contract_AniDB_Anime_DefaultImage im, string fallbackimage = "plex_404V.png") { if ((im == null) || (im.AnimeID == 0)) { return(Helper.ConstructSupportImageLink(fallbackimage)); } return(Helper.ConstructThumbLink((int)im.ImageType, im.AnimeID)); }
public static string GenArt(this Contract_AniDB_Anime_DefaultImage im) { if (im == null) { return(null); } return(KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressREST + "/GetImage/" + im.ImageType + "/" + im.AnimeID)); }
public Contract_AniDB_Anime_DefaultImage ToContract(IImageEntity parentImage) { var contract = new Contract_AniDB_Anime_DefaultImage { AniDB_Anime_DefaultImageID = AniDB_Anime_DefaultImageID, AnimeID = AnimeID, ImageParentID = ImageParentID, ImageParentType = ImageParentType, ImageType = ImageType }; JMMImageType imgType = (JMMImageType)ImageParentType; switch (imgType) { case JMMImageType.TvDB_Banner: contract.TVWideBanner = (parentImage as TvDB_ImageWideBanner)?.ToContract(); break; case JMMImageType.TvDB_Cover: contract.TVPoster = (parentImage as TvDB_ImagePoster)?.ToContract(); break; case JMMImageType.TvDB_FanArt: contract.TVFanart = (parentImage as TvDB_ImageFanart)?.ToContract(); break; case JMMImageType.MovieDB_Poster: contract.MoviePoster = (parentImage as MovieDB_Poster)?.ToContract(); break; case JMMImageType.MovieDB_FanArt: contract.MovieFanart = (parentImage as MovieDB_Fanart)?.ToContract(); break; case JMMImageType.Trakt_Fanart: contract.TraktFanart = (parentImage as Trakt_ImageFanart)?.ToContract(); break; case JMMImageType.Trakt_Poster: contract.TraktPoster = (parentImage as Trakt_ImagePoster)?.ToContract(); break; } return(contract); }
public Contract_AniDB_Anime_DefaultImage ToContract(ISession session) { Contract_AniDB_Anime_DefaultImage contract = new Contract_AniDB_Anime_DefaultImage(); contract.AniDB_Anime_DefaultImageID = this.AniDB_Anime_DefaultImageID; contract.AnimeID = this.AnimeID; contract.ImageParentID = this.ImageParentID; contract.ImageParentType = this.ImageParentType; contract.ImageType = this.ImageType; contract.MovieFanart = null; contract.MoviePoster = null; contract.TVPoster = null; contract.TVFanart = null; contract.TVWideBanner = null; contract.TraktFanart = null; contract.TraktPoster = null; JMMImageType imgType = (JMMImageType)ImageParentType; switch (imgType) { case JMMImageType.TvDB_Banner: TvDB_ImageWideBannerRepository repBanners = new TvDB_ImageWideBannerRepository(); TvDB_ImageWideBanner banner = repBanners.GetByID(session, ImageParentID); if (banner != null) { contract.TVWideBanner = banner.ToContract(); } break; case JMMImageType.TvDB_Cover: TvDB_ImagePosterRepository repPosters = new TvDB_ImagePosterRepository(); TvDB_ImagePoster poster = repPosters.GetByID(session, ImageParentID); if (poster != null) { contract.TVPoster = poster.ToContract(); } break; case JMMImageType.TvDB_FanArt: TvDB_ImageFanartRepository repFanart = new TvDB_ImageFanartRepository(); TvDB_ImageFanart fanart = repFanart.GetByID(session, ImageParentID); if (fanart != null) { contract.TVFanart = fanart.ToContract(); } break; case JMMImageType.MovieDB_Poster: MovieDB_PosterRepository repMoviePosters = new MovieDB_PosterRepository(); MovieDB_Poster moviePoster = repMoviePosters.GetByID(session, ImageParentID); if (moviePoster != null) { contract.MoviePoster = moviePoster.ToContract(); } break; case JMMImageType.MovieDB_FanArt: MovieDB_FanartRepository repMovieFanart = new MovieDB_FanartRepository(); MovieDB_Fanart movieFanart = repMovieFanart.GetByID(session, ImageParentID); if (movieFanart != null) { contract.MovieFanart = movieFanart.ToContract(); } break; case JMMImageType.Trakt_Fanart: Trakt_ImageFanartRepository repTraktFanart = new Trakt_ImageFanartRepository(); Trakt_ImageFanart traktFanart = repTraktFanart.GetByID(session, ImageParentID); if (traktFanart != null) { contract.TraktFanart = traktFanart.ToContract(); } break; case JMMImageType.Trakt_Poster: Trakt_ImagePosterRepository repTraktPoster = new Trakt_ImagePosterRepository(); Trakt_ImagePoster traktPoster = repTraktPoster.GetByID(session, ImageParentID); if (traktPoster != null) { contract.TraktPoster = traktPoster.ToContract(); } break; } return(contract); }
public static Directory FromSerie(Contract_AnimeSeries ser, int userid) { Directory p = new Directory(); Contract_AniDBAnime anime = ser.AniDBAnime; p.Key = ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int)JMMType.Serie + "/" + ser.AnimeSeriesID); if (ser.AniDBAnime.Restricted > 0) { p.ContentRating = "R"; } p.Title = anime.MainTitle; p.Summary = anime.Description; if (string.IsNullOrEmpty(p.Summary) && ser.MovieDB_Movie != null) { p.Summary = ser.MovieDB_Movie.Overview; } if (string.IsNullOrEmpty(p.Summary) && ser.TvDB_Series != null && ser.TvDB_Series.Count > 0) { p.Summary = ser.TvDB_Series[0].Overview; } p.Type = "season"; p.AirDate = DateTime.MinValue; if (!string.IsNullOrEmpty(anime.AllCategories)) { p.Genres = new List <Tag> { new Tag { Value = anime.AllCategories.Replace("|", ",") } }; } if (!string.IsNullOrEmpty(anime.AllTags)) { p.Tags = new List <Tag> { new Tag { Value = anime.AllTags.Replace("|", ",") } }; } p.OriginalTitle = anime.AllTitles; if (anime.AirDate.HasValue) { p.AirDate = anime.AirDate.Value; p.OriginallyAvailableAt = anime.AirDate.Value.Year.ToString("0000") + "-" + anime.AirDate.Value.Month.ToString("00") + "-" + anime.AirDate.Value.Day.ToString("00"); p.Year = anime.AirDate.Value.Year.ToString(); } p.LeafCount = anime.EpisodeCount.ToString(); p.ViewedLeafCount = ser.WatchedEpisodeCount.ToString(); p.Rating = (anime.Rating / 100F).ToString(CultureInfo.InvariantCulture); p.Votes = anime.VoteCount.ToString(); List <Contract_CrossRef_AniDB_TvDBV2> ls = ser.CrossRefAniDBTvDBV2; if (ls.Count > 0) { foreach (Contract_CrossRef_AniDB_TvDBV2 c in ls) { if (c.TvDBSeasonNumber != 0) { p.Season = c.TvDBSeasonNumber.ToString(); } } } Contract_AniDB_Anime_DefaultImage poster = anime.DefaultImagePoster; Contract_AniDB_Anime_DefaultImage fanart = anime.DefaultImageFanart; p.Thumb = poster != null?poster.GenPoster() : ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/plex_404V.png"); if (fanart != null) { p.Art = fanart.GenArt(); } /* * List<AniDB_Anime_Character> chars = anime.GetAnimeCharacters(session); * * List<string> sey=new List<string>(); * * if (chars != null) * { * foreach (AniDB_Anime_Character c in chars) * { * AniDB_Character cha = c.GetCharacter(session); * if (cha != null) * { * AniDB_Seiyuu seiyuu = cha.GetSeiyuu(session); * if (seiyuu!=null) * sey.Add(seiyuu.SeiyuuName); * } * } * } * if (sey.Count > 0) * p.Roles = sey.Select(a => new Tag() {Value = a}).ToList(); */ //community support //CrossRef_AniDB_TraktV2Repository repCrossRef = new CrossRef_AniDB_TraktV2Repository(); //List<CrossRef_AniDB_TraktV2> Trakt = repCrossRef.GetByAnimeID(anime.AnimeID); //if (Trakt != null) //{ // if (Trakt.Count > 0) // { // p.Trakt = Trakt[0].TraktID; // } //} //CrossRef_AniDB_TvDBV2Repository repCrossRefV2 = new CrossRef_AniDB_TvDBV2Repository(); //List<CrossRef_AniDB_TvDBV2> TvDB = repCrossRefV2.GetByAnimeID(anime.AnimeID); //if (TvDB != null) //{ // if (TvDB.Count > 0) // { // p.TvDB = TvDB[0].TvDBID.ToString(); // } //} //community support END return(p); }