private static async Task <BiliBangumiMaster> GetBangumiMasterAsync(string url, string sessdata) { var json = await HttpHelper.GetJsonAsync(url, sessdata); if (json.code != 0) { throw new ParsingVideoException(); } var list = new List <BiliBangumi>(); int i = 1; foreach (var b in json.result.episodes) { var video = new BiliVideo() { Av = b.aid, Bv = b.bvid, Cid = b.cid, Title = json.result.season_title, Name = b.long_title, Order = i }; var bangumi = new BiliBangumi() { EpisodeId = b.id, Title = video.Title, Name = video.Name, Order = i, CoverUrl = b.cover, Video = video }; list.Add(bangumi); i++; } var master = new BiliBangumiMaster() { SeasonId = json.result.season_id, MediaId = json.result.media_id, Title = json.result.season_title, Evaluate = json.result.evaluate, CoverUrl = json.result.cover, BGCoverUrl = json.result.bkg_cover, SquareCoverUrl = json.result.square_cover, MediaType = (MediaType)(int)json.result.type, EpisodeList = list.ToArray() }; return(master); }
/// <summary> /// 获取番剧信息 /// </summary> /// <param name="eporss"></param> /// <param name="type">0是ep,其他随便一个数字是ss</param> /// <param name="sESSDATA"></param> /// <returns></returns> public static async Task <BiliBangumi> GetBangumiInfoAsync(int eporss, int type, string sESSDATA) { List <(string, string)> cookies = null; if (!string.IsNullOrWhiteSpace(sESSDATA)) { cookies = new List <(string, string)>(); cookies.Add(("SESSDATA", sESSDATA)); } BiliBangumiInfoJson json; if (type == 0) { json = JsonConvert.DeserializeObject <BiliBangumiInfoJson> (await NetHelper.HttpGet("http://api.bilibili.com/pgc/view/web/season", cookies, $"ep_id={eporss}")); } else { json = JsonConvert.DeserializeObject <BiliBangumiInfoJson> (await NetHelper.HttpGet("http://api.bilibili.com/pgc/view/web/season", cookies, $"season_id={eporss}")); } var videoList = new List <BiliVideo>(); json.result.episodes.ForEach(v => { videoList.Add(new BiliVideo() { Bv = v.bvid, Cid = v.cid, Name = v.long_title, Title = json.result.season_title, P = 1, Cover = v.cover }); }); var bangumi = new BiliBangumi() { Title = json.result.season_title, Cover = json.result.cover, MediaId = json.result.media_id, SeasonId = json.result.season_id, EpisodeList = videoList }; return(bangumi); }
public static async Task <BangumiDialog> CreateAsync(BiliBangumi bangumi, XamlRoot xamlRoot) { var model = new BangumiDialogViewModel(); model.VideoTitle = bangumi.Title; //var stream = await NetHelper.HttpGetStreamAsync(bangumi.Cover, null, null); //var file = await ApplicationData.Current.LocalCacheFolder.CreateFileAsync("videocovercache", CreationCollisionOption.GenerateUniqueName); //var fileStream = await file.OpenStreamForWriteAsync(); //await stream.CopyToAsync(fileStream); //stream.Close(); //fileStream.Close(); //var img = new BitmapImage(); //await img.SetSourceAsync((await file.OpenStreamForReadAsync()).AsRandomAccessStream()); var img = new BitmapImage(new Uri(bangumi.Cover)); model.VideoCover = img; var list = bangumi.EpisodeList.Select(v => new VideoInfo() { Info = new BiliVideoInfo() { Bv = v.Bv, Cid = v.Cid, Name = v.Name, CoverUrl = v.Cover }, ToDownload = false, BackGroundColorBrush = bangumi.EpisodeList.IndexOf(v) % 2 == 0 ? new SolidColorBrush(Colors.WhiteSmoke) : new SolidColorBrush(Colors.White) }).ToList(); var i = 1; foreach (var video in list)//添加序号 { video.Info.Name = i + "." + video.Info.Name; i++; } model.VideoList = new ObservableCollection <VideoInfo>(list); return(new BangumiDialog(model, xamlRoot)); }