示例#1
0
        private static void PopulateVideoEpisodeFromAnimeEpisode(Video v, AnimeEpisode ep, int userid)
        {
            AniDB_Episode aep = ep.AniDB_Episode;

            if (aep != null)
            {
                v.EpNumber      = aep.EpisodeNumber;
                v.Index         = aep.EpisodeNumber.ToString();
                v.Title         = aep.EnglishName;
                v.OriginalTitle = aep.RomajiName;
                v.Rating        = (float.Parse(aep.Rating, CultureInfo.InvariantCulture)).ToString(CultureInfo.InvariantCulture);
                if (aep.AirDateAsDate.HasValue)
                {
                    v.Year = aep.AirDateAsDate.Value.Year.ToString();
                    v.OriginallyAvailableAt = aep.AirDateAsDate.Value.ToPlexDate();
                }
                AnimeEpisode_User epuser = ep.GetUserRecord(userid);
                if (epuser != null)
                {
                    v.ViewCount = epuser.WatchedCount.ToString();
                    if (epuser.WatchedDate.HasValue)
                    {
                        v.LastViewedAt = epuser.WatchedDate.Value.ToUnixTime();
                    }
                }
                MetroContract_Anime_Episode contract = new MetroContract_Anime_Episode();
                JMMServiceImplementationMetro.SetTvDBInfo(aep.AnimeID, aep, ref contract);
                v.Thumb   = contract.GenPoster();
                v.Summary = contract.EpisodeOverview;
            }
        }
示例#2
0
 public static string GenPoster(this MetroContract_Anime_Episode im, string fallbackimage = "plex_404.png")
 {
     if ((im == null) || (im.ImageID == 0))
     {
         return(Helper.ConstructSupportImageLinkTV(fallbackimage));
     }
     return(Helper.ConstructTVThumbLink((int)im.ImageType, im.ImageID));
 }
示例#3
0
        public static Video GenerateVideoFromAnimeEpisode(AnimeEpisode ep)
        {
            Video             l    = new Video();
            List <VideoLocal> vids = ep.GetVideoLocals();

            l.Type      = "episode";
            l.Summary   = "Episode Overview Not Available"; //TODO Intenationalization
            l.Id        = ep.AnimeEpisodeID.ToString();
            l.AnimeType = JMMContracts.PlexAndKodi.AnimeTypes.AnimeEpisode.ToString();
            VideoLocalRepository repo = new VideoLocalRepository();

            if (vids.Count > 0)
            {
                l.Title                 = Path.GetFileNameWithoutExtension(vids[0].FilePath);
                l.AddedAt               = vids[0].DateTimeCreated.ToUnixTime();
                l.UpdatedAt             = vids[0].DateTimeUpdated.ToUnixTime();
                l.OriginallyAvailableAt = vids[0].DateTimeCreated.ToPlexDate();
                l.Year   = vids[0].DateTimeCreated.Year.ToString();
                l.Medias = new List <Media>();
                foreach (VideoLocal v in vids)
                {
                    Media m = v.Media;
                    if (m == null)
                    {
                        if (File.Exists(v.FullServerPath))
                        {
                            repo.Save(v, false);
                        }
                    }
                    if (m != null)
                    {
                        l.Medias.Add(m);
                        l.Duration = m.Duration;
                    }
                }
            }
            AniDB_Episode aep = ep?.AniDB_Episode;

            if (aep != null)
            {
                l.EpisodeNumber = aep.EpisodeNumber.ToString();
                l.Index         = aep.EpisodeNumber.ToString();
                l.Title         = aep.EnglishName;
                l.OriginalTitle = aep.RomajiName;
                l.EpisodeType   = aep.EpisodeType.ToString();
                l.Rating        = float.Parse(aep.Rating, CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture);
                if (aep.AirDateAsDate.HasValue)
                {
                    l.Year = aep.AirDateAsDate.Value.Year.ToString();
                    l.OriginallyAvailableAt = aep.AirDateAsDate.Value.ToPlexDate();
                }

                //FIX THIS
                MetroContract_Anime_Episode contract = new MetroContract_Anime_Episode();
                JMMServiceImplementationMetro.SetTvDBInfo(aep.AnimeID, aep, ref contract);
                l.Thumb   = contract.GenPoster();
                l.Summary = contract.EpisodeOverview;
            }
            l.Id = ep.AnimeEpisodeID.ToString();
            return(l);
        }
示例#4
0
        private static void PopulateVideoEpisodeFromAnimeEpisode(Video v, AnimeEpisode ep, int userid)
        {
            AniDB_Episode aep = ep.AniDB_Episode;

            if (aep != null)
            {
                v.JMMEpisodeId  = ep.AnimeEpisodeID;
                v.EpNumber      = aep.EpisodeNumber;
                v.Index         = aep.EpisodeNumber.ToString();
                v.Title         = aep.EnglishName;
                v.OriginalTitle = aep.RomajiName;
                v.Rating        = (Convert.ToDouble(aep.Rating)).ToString(CultureInfo.InvariantCulture);
                v.Votes         = aep.Votes;
                if (aep.AirDateAsDate.HasValue)
                {
                    v.Year = aep.AirDateAsDate.Value.Year.ToString();
                    v.OriginallyAvailableAt = aep.AirDateAsDate.Value.Year.ToString("0000") + "-" +
                                              aep.AirDateAsDate.Value.Month.ToString("00") +
                                              "-" + aep.AirDateAsDate.Value.Day.ToString("00");
                }
                AnimeEpisode_User epuser = ep.GetUserRecord(userid);
                if (epuser != null)
                {
                    v.ViewCount = epuser.WatchedCount.ToString();
                }
                MetroContract_Anime_Episode contract = new MetroContract_Anime_Episode();
                JMMServiceImplementationMetro.SetTvDBInfo(aep.AnimeID, aep, ref contract);
                if (contract.ImageID != 0)
                {
                    v.Thumb = ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressREST + "/GetImage/" + contract.ImageType + "/" + contract.ImageID);
                }
                else
                {
                    v.Thumb = ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/plex_404.png");
                }
                v.Summary = contract.EpisodeOverview;

                //community support

                //CrossRef_AniDB_TraktV2Repository repCrossRef = new CrossRef_AniDB_TraktV2Repository();
                //List<CrossRef_AniDB_TraktV2> Trakt = repCrossRef.GetByAnimeID(aep.AnimeID);
                //if (Trakt != null)
                //{
                //    if (Trakt.Count > 0)
                //    {
                //        v.Trakt = Trakt[0].TraktID;
                //    }
                //}

                //CrossRef_AniDB_TvDBV2Repository repCrossRefV2 = new CrossRef_AniDB_TvDBV2Repository();
                //List<CrossRef_AniDB_TvDBV2> TvDB = repCrossRefV2.GetByAnimeID(aep.AnimeID);
                //if (TvDB != null)
                //{
                //    if (TvDB.Count > 0)
                //    {
                //        v.TvDB = TvDB[0].TvDBID.ToString();
                //    }
                //}

                //community support END
            }
        }
示例#5
0
        public static Video GenerateVideoFromAnimeEpisode(AnimeEpisode ep)
        {
            Video             l    = new Video();
            List <VideoLocal> vids = ep.GetVideoLocals();

            l.Type      = "episode";
            l.Summary   = "Episode Overview Not Available"; //TODO Intenationalization
            l.Id        = ep.AnimeEpisodeID.ToString();
            l.AnimeType = JMMContracts.PlexAndKodi.AnimeTypes.AnimeEpisode.ToString();
            if (vids.Count > 0)
            {
                //List<string> hashes = vids.Select(a => a.Hash).Distinct().ToList();
                l.Title                 = Path.GetFileNameWithoutExtension(vids[0].FileName);
                l.AddedAt               = vids[0].DateTimeCreated.ToUnixTime();
                l.UpdatedAt             = vids[0].DateTimeUpdated.ToUnixTime();
                l.OriginallyAvailableAt = vids[0].DateTimeCreated.ToPlexDate();
                l.Year   = vids[0].DateTimeCreated.Year.ToString();
                l.Medias = new List <Media>();
                foreach (VideoLocal v in vids)
                {
                    if (string.IsNullOrEmpty(v.Media?.Duration))
                    {
                        VideoLocal_Place pl = v.GetBestVideoLocalPlace();
                        if (pl != null)
                        {
                            if (pl.RefreshMediaInfo())
                            {
                                RepoFactory.VideoLocal.Save(v, true);
                            }
                        }
                    }
                    if (v.Media != null)
                    {
                        l.Medias.Add(v.Media);
                    }
                }
            }
            AniDB_Episode aep = ep?.AniDB_Episode;

            if (aep != null)
            {
                l.EpisodeNumber = aep.EpisodeNumber.ToString();
                l.Index         = aep.EpisodeNumber.ToString();
                l.Title         = aep.EnglishName;
                l.OriginalTitle = aep.RomajiName;
                l.EpisodeType   = aep.EpisodeType.ToString();
                l.Rating        = float.Parse(aep.Rating, CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture);
                if (aep.AirDateAsDate.HasValue)
                {
                    l.Year = aep.AirDateAsDate.Value.Year.ToString();
                    l.OriginallyAvailableAt = aep.AirDateAsDate.Value.ToPlexDate();
                }

                //FIX THIS
                MetroContract_Anime_Episode contract = new MetroContract_Anime_Episode();
                JMMServiceImplementationMetro.SetTvDBInfo(aep.AnimeID, aep, ref contract);
                l.Thumb   = contract.GenPoster();
                l.Summary = contract.EpisodeOverview;
            }
            l.Id = ep.AnimeEpisodeID.ToString();
            return(l);
        }