Beispiel #1
0
        public static List <BangumiInfo> GetBangumiInfos(BangumiSeason bseason)
        {
            var result = new List <BangumiInfo>();

            for (int i = 0; i < bseason.Result.Count; i++)
            {
                var daySeason = bseason.Result[i];
                for (int j = 0; j < daySeason.Seasons.Count; j++)
                {
                    var season = daySeason.Seasons[j];
                    if (season.Is_published == 1 || season.Delay == 1)
                    {
                        continue;
                    }
                    long pubts = season.Pub_ts;
                    pubts *= 10000000;
                    DateTime t = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                    t = t.Add(new TimeSpan(pubts)).ToLocalTime();
                    Console.WriteLine(season.Pub_index);
                    var binfo = new BangumiInfo
                    {
                        Cover       = season.Cover,
                        SquareCover = season.Square_cover,
                        Index       = season.Pub_index.Substring(1, season.Pub_index.Length - 2),
                        EpNumber    = Convert.ToInt32(season.Ep_id),
                        SeasonId    = season.Season_id,
                        Title       = season.Title,
                        UpdateTime  = t
                    };
                    result.Add(binfo);
                }
            }
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// 通过seasonId获得番剧的剧集详情
        /// </summary>
        /// <param name="seasonId"></param>
        /// <returns></returns>
        public static BangumiSeasonResult GetBangumiSeason(long seasonId, string referer)
        {
            string url      = $"https://api.bilibili.com/pgc/view/web/season?season_id={seasonId}";
            string response = Utils.RequestWeb(url, referer);

            try
            {
                BangumiSeason bangumiSeason = JsonConvert.DeserializeObject <BangumiSeason>(response);
                if (bangumiSeason != null)
                {
                    return(bangumiSeason.result);
                }
                else
                {
                    return(null);
                }
            }
            catch (JsonReaderException e)
            {
                Console.WriteLine("GetBangumiSeason()发生JsonReader异常: {0}", e);
                return(null);
            }
            catch (Exception e)
            {
                Console.WriteLine("GetBangumiSeason()发生异常: {0}", e);
                return(null);
            }
        }
Beispiel #3
0
        public BangumiInfoService(string input)
        {
            if (input == null)
            {
                return;
            }

            if (ParseEntrance.IsBangumiSeasonId(input) || ParseEntrance.IsBangumiSeasonUrl(input))
            {
                long seasonId = ParseEntrance.GetBangumiSeasonId(input);
                bangumiSeason = BangumiInfo.BangumiSeasonInfo(seasonId);
            }

            if (ParseEntrance.IsBangumiEpisodeId(input) || ParseEntrance.IsBangumiEpisodeUrl(input))
            {
                long episodeId = ParseEntrance.GetBangumiEpisodeId(input);
                bangumiSeason = BangumiInfo.BangumiSeasonInfo(-1, episodeId);
            }

            if (ParseEntrance.IsBangumiMediaId(input) || ParseEntrance.IsBangumiMediaUrl(input))
            {
                long         mediaId      = ParseEntrance.GetBangumiMediaId(input);
                BangumiMedia bangumiMedia = BangumiInfo.BangumiMediaInfo(mediaId);
                bangumiSeason = BangumiInfo.BangumiSeasonInfo(bangumiMedia.SeasonId);
            }
        }