Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public static string GenArt(this Contract_AniDB_Anime_DefaultImage im)
 {
     if (im == null)
     {
         return(null);
     }
     return(Helper.ConstructImageLink((int)im.ImageType, im.AnimeID));
 }
Ejemplo n.º 3
0
 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));
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }