Example #1
0
        private async void GetList(string name)
        {
            try
            {
                pr_Load.Visibility = Visibility.Visible;
                wc = new WebClientClass();
                string url = string.Format("http://www.dilidili.com{0}", name);
                string results = await wc.GetResultsUTF8Encode(new Uri(url));
                MatchCollection mc = Regex.Matches(results, @"<li><a href=""(.*?)"" target=""_self""><em><span>(.*?)</span>(.*?)</em></a></li>", RegexOptions.Multiline);
                List<DModel> listModel = new List<DModel>();
                foreach (Match item in mc)
                {
                    listModel.Add(new DModel()
                    {
                        url = item.Groups[1].Value,
                       num=item.Groups[2].Value,
                       desc=item.Groups[3].Value
                    });
                }
                list_Video.ItemsSource = listModel;
            }
            catch (Exception)
            {
                messShow.Show("读取失败", 3000);
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
            }

        }
Example #2
0
 public async Task GetQZRank()
 {
     try
     {
         
             WebClientClass wc = new WebClientClass();
             string results = await wc.GetResults(new Uri("http://api.bilibili.cn/list?appkey=84b739484c36d653&order=hot&original=0&page=1&pagesize=20"));
             InfoModel model = new InfoModel();
             model = JsonConvert.DeserializeObject<InfoModel>(results);
             JObject json = JObject.Parse(model.list.ToString());
             QQ_Rank_QZ.Items.Clear();
             List<InfoModel> ReList = new List<InfoModel>();
             for (int i = 0; i < 20; i++)
             {
                 ReList.Add(new InfoModel
                 {
                     aid = (string)json[i.ToString()]["aid"],
                     title = (string)json[i.ToString()]["title"],
                     pic = (string)json[i.ToString()]["pic"],
                     author = (string)json[i.ToString()]["author"],
                     play = (string)json[i.ToString()]["play"],
                     video_review = (string)json[i.ToString()]["video_review"],
                     num = i + 1
                 });
             }
             QQ_Rank_QZ.ItemsSource = ReList;
     }
     catch (Exception ex)
     {
         MessageDialog md = new MessageDialog(ex.Message);
         await md.ShowAsync();
     }
 }
 protected override void OnNavigatedFrom(NavigationEventArgs e)
 {
     if (wc!=null)
     {
         wc =null;
     }
 }
Example #4
0
 public static List<string> Downloaded = new List<string>();//保存已经下载过的CID数据
 public void Dispose()
 {
     if (wc != null)
     {
         wc = null;
     }
 }
Example #5
0
 public async Task<string> GetVideoUri(string cid, int quality)
 {
     //http://interface.bilibili.com/playurl?platform=android&cid=5883400&quality=2&otype=json&appkey=422fd9d7289a1dd9&type=mp4
     try
     {
         wc = new WebClientClass();
         string results = await wc.GetResults(new Uri("http://interface.bilibili.com/playurl?platform=android&cid=" + cid + "&quality=" + quality + "&otype=json&appkey=422fd9d7289a1dd9&type=mp4"));
         VideoUriModel model = JsonConvert.DeserializeObject<VideoUriModel>(results);
         List<VideoUriModel> model1 = JsonConvert.DeserializeObject<List<VideoUriModel>>(model.durl.ToString());
         return model1[0].url;
     }
     catch (Exception)
     {
         return null;
     }
 }
 public async void GetPlayInfo(string mid, int quality)
 {
     //http://interface.bilibili.com/playurl?platform=android&cid=5883400&quality=2&otype=json&appkey=422fd9d7289a1dd9&type=mp4
     try
     {
         WebClientClass wc = new WebClientClass();
             string results = await wc.GetResults(new Uri("http://interface.bilibili.com/playurl?platform=android&cid=" + mid + "&quality=" + 2 + "&otype=json&appkey=422fd9d7289a1dd9&type=mp4"));
         VideoUriModel model = JsonConvert.DeserializeObject<VideoUriModel>(results);
             List<VideoUriModel> model1 = JsonConvert.DeserializeObject<List<VideoUriModel>>(model.durl.ToString());
             mediaElment.Source = new Uri(model1[0].url);
     }
     catch (Exception)
     {
         MessageDialog md = new MessageDialog("视频地址获取失败!", "错误");
         await md.ShowAsync();
     }
 }
Example #7
0
        public async void DownDanMu(string cid, StorageFolder folder)
        {
            try
            {
                wc = new WebClientClass();
                string results = await wc.GetResults(new Uri("http://comment.bilibili.com/" + cid + ".xml"));
                //将弹幕存在在应用文件夹
                //StorageFolder folder = ApplicationData.Current.LocalFolder;
                //StorageFolder DowFolder = await KnownFolders.VideosLibrary.CreateFolderAsync("Bili-Download", CreationCollisionOption.OpenIfExists);
                StorageFile fileWrite = await folder.CreateFileAsync(cid + ".xml", CreationCollisionOption.ReplaceExisting);
                await FileIO.WriteTextAsync(fileWrite, results);
            }
            catch (Exception)
            {
                //return null;
            }

        }
Example #8
0
 private async void GetTopic()
 {
     try
     {
         pr_Load.Visibility = Visibility.Visible;
         WebClientClass wc = new WebClientClass();
         string results = await wc.GetResults(new Uri("http://www.bilibili.com/index/slideshow.json"));
         TopicModel model = JsonConvert.DeserializeObject<TopicModel>(results);
         list_Topic.ItemsSource = JsonConvert.DeserializeObject<List<TopicModel>>(model.list.ToString());
     }
     catch (Exception ex)
     {
         messShow.Show("读取话题失败\r\n" + ex.Message, 3000);
     }
     finally
     {
         pr_Load.Visibility = Visibility.Collapsed;
     }
 }
 private async Task GetTagInfo(int page, string tid, int type)
 {
     try
     {
             WebClientClass wc = new WebClientClass();
             string results = await wc.GetResults(new Uri(String.Format("http://bangumi.bilibili.com/api/get_season_by_tag?indexType={0}&page={1}&pagesize=20&tag_id={2}", type, page, tid)));
             BanSeasonTagModel model = JsonConvert.DeserializeObject<BanSeasonTagModel>(results);
             List<BanSeasonTagModel> ls = JsonConvert.DeserializeObject<List<BanSeasonTagModel>>(model.result.ToString());
             foreach (BanSeasonTagModel item in ls)
             {
                 ls_Tag.Items.Add(item);
             }
             getPage++;
             if (model.pages < getPage)
             {
                 btn_LoadMore.IsEnabled = false;
                 btn_LoadMore.Content = "加载完了...";
             }
     }
     catch (Exception)
     {
         messShow.Show("读取失败,请重试",3000);
     }
 }
 private async void GetListInfo(string date)
 {
     try
     {
         pr_load.Visibility = Visibility.Visible;
         wc = new WebClientClass();
         string url = string.Format("http://www.dilidili.com/anime/{0}/", date);
         string results = await wc.GetResultsUTF8Encode(new Uri(url));
         MatchCollection mc = Regex.Matches(results, @"<div class=""item"">.*?<div class=""content"">.*?<div class=""title"">.*?<a href=""(.*?)"" target=""_blank"">(.*?)</a>.*?<span class=""data""><b>年代:</b>(.*?)</span>.*?</div>.*?<p><b>地区:</b>(.*?)</p>.*?<p><b>类型:</b>(.*?)</p>.*?<p><b>看点:</b>(.*?)</p>.*?<p><b>简介:</b>(.*?)</p>.*?</div>.*?<div class=""cover"">.*?<a href=""(.*?)"" target=""_blank"">.*?<img src=""(.*?)"">.*?</a>.*?</div>", RegexOptions.Singleline);
         List<DiliModel> listModel = new List<DiliModel>();
         foreach (Match item in mc)
         {
             listModel.Add(new DiliModel()
             {
                 url = item.Groups[1].Value,
                 title = item.Groups[2].Value,
                 date = item.Groups[3].Value,
                 area = item.Groups[4].Value,
                 tag = item.Groups[5].Value,
                 shortDesc = item.Groups[6].Value,
                 desc = item.Groups[7].Value,
                 img = item.Groups[9].Value
             });
         }
         list_Info.ItemsSource = listModel;
     }
     catch (Exception)
     {
         messShow.Show("读取失败",3000);
     }
     finally
     {
         pr_load.Visibility = Visibility.Collapsed;
     }
      
 }
Example #11
0
        private async void SendRepost()
        {
            var ctrl    = "[]";
            var at_uids = "";

            atlist.Clear();
            var txt = txt_Comment.Text;

            if (atDisplaylist.Count != 0)
            {
                foreach (var item in atDisplaylist)
                {
                    if (txt.Contains(item.text))
                    {
                        atlist.Add(new AtModel()
                        {
                            data     = item.data.ToString(),
                            length   = item.length - 2,
                            location = txt.IndexOf(item.text),
                            type     = 1
                        });
                        var d = item.text.Replace("[", "").Replace("]", "");
                        txt      = txt.Replace(item.text, d);
                        at_uids += item.data.ToString() + ",";
                    }
                }
                ctrl    = JsonConvert.SerializeObject(atlist);
                at_uids = at_uids.Remove(at_uids.Length - 1, 1);
                atDisplaylist.Clear();
            }
            if (txt == "")
            {
                txt = "转发动态";
            }
            try
            {
                string url = "https://api.live.bilibili.com/dynamic_repost/v1/dynamic_repost/repost?access_key={0}&appkey={1}&build=5250000&platform=android&ts={2}";
                url  = string.Format(url, ApiHelper.access_key, ApiHelper.AndroidKey.Appkey, ApiHelper.GetTimeSpan_2);
                url += "&sign" + ApiHelper.GetSign(url);
                string content = "uid={0}&dynamic_id={1}&content={2}&at_uids={3}&ctrl={4}";
                content = string.Format(content, ApiHelper.GetUserId(), _dynamicCardsModel.desc.dynamic_id, Uri.EscapeDataString(txt), at_uids, Uri.EscapeDataString(ctrl));

                var re = await WebClientClass.PostResultsUtf8(new Uri(url), content);

                Newtonsoft.Json.Linq.JObject obj = JObject.Parse(re);
                if (obj["code"].ToInt32() == 0)
                {
                    _dynamicCardsModel.desc.repost += 1;
                    Utils.ShowMessageToast("转发成功");
                    this.Hide();
                }
                else
                {
                    Utils.ShowMessageToast("转发失败" + obj["message"].ToString());
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("转发发生错误");
            }
        }
Example #12
0
        public async void GetLiveInfo()
        {
            try
            {
                pr_Load.Visibility = Visibility.Visible;

                //gridview_SJ.ItemsSource=null;
                //gridview_DJ.Items.Clear();
                //gridview_FY.Items.Clear();
                //gridview_HH.Items.Clear();
                //gridview_JJ.Items.Clear();

                ////gridview_SH.Items.Clear();
                //gridview_WL.Items.Clear();
                //gridview_YZ.Items.Clear();
                //gridview_CW.Items.Clear();
                string url     = string.Format("http://live.bilibili.com/AppNewIndex/common?_device=android&platform=android&scale=xxhdpi");
                string results = await WebClientClass.GetResults_Live(new Uri(url));

                HomeLiveModel model = JsonConvert.DeserializeObject <HomeLiveModel>(results);
                if (model.code == 0)
                {
                    HomeLiveModel        dataModel   = JsonConvert.DeserializeObject <HomeLiveModel>(model.data.ToString());
                    List <HomeLiveModel> bannerModel = JsonConvert.DeserializeObject <List <HomeLiveModel> >(dataModel.banner.ToString());
                    List <HomeLiveModel> partModel   = JsonConvert.DeserializeObject <List <HomeLiveModel> >(dataModel.partitions.ToString());
                    home_flipView.ItemsSource = bannerModel;
                    foreach (HomeLiveModel item in partModel)
                    {
                        HomeLiveModel        partitionModel = JsonConvert.DeserializeObject <HomeLiveModel>(item.partition.ToString());
                        List <HomeLiveModel> livesModel     = JsonConvert.DeserializeObject <List <HomeLiveModel> >(item.lives.ToString());
                        switch (partitionModel.name)
                        {
                        //case "热门直播":

                        //    //for (int i = 0; i < 12; i++)
                        //    //{
                        //    //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                        //    //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                        //    //    livesModel[i].src = coverModel.src;
                        //    //    livesModel[i].name = ownerModel.name;
                        //    //    livesModel[i].mid = ownerModel.mid;
                        //    //    livesModel[i].face = ownerModel.face;
                        //    //    gridview_Hot.Items.Add(livesModel[i]);
                        //    //}
                        //    gridview_Hot.ItemsSource = livesModel;
                        //    break;
                        case "手机直播":
                            //for (int i = 0; i < livesModel.Count - 1; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_SJ.Items.Add(livesModel[i]);
                            //}
                            gridview_SJ.ItemsSource = livesModel;
                            break;

                        case "唱见舞见":
                            //for (int i = 0; i < livesModel.Count - 1; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_CW.Items.Add(livesModel[i]);
                            //}
                            gridview_CW.ItemsSource = livesModel;
                            break;

                        //case "萌宅推荐":
                        //    //for (int i = 0; i < livesModel.Count - 1; i++)
                        //    //{
                        //    //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                        //    //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                        //    //    livesModel[i].src = coverModel.src;
                        //    //    livesModel[i].name = ownerModel.name;
                        //    //    livesModel[i].mid = ownerModel.mid;
                        //    //    livesModel[i].face = ownerModel.face;
                        //    //    gridview_MZ.Items.Add(livesModel[i]);
                        //    //}
                        //    gridview_MZ.ItemsSource = livesModel;
                        //    break;
                        case "绘画专区":
                            //for (int i = 0; i < livesModel.Count-1; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_HH.Items.Add(livesModel[i]);
                            //}
                            gridview_HH.ItemsSource = livesModel;
                            break;

                        case "御宅文化":
                            //for (int i = 0; i < 12; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_YZ.Items.Add(livesModel[i]);
                            //}
                            gridview_YZ.ItemsSource = livesModel;
                            break;

                        case "单机联机":
                            //for (int i = 0; i < 12; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_DJ.Items.Add(livesModel[i]);
                            //}
                            gridview_DJ.ItemsSource = livesModel;
                            break;

                        case "网络游戏":
                            //for (int i = 0; i < 12; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_WL.Items.Add(livesModel[i]);
                            //}
                            gridview_WL.ItemsSource = livesModel;
                            break;

                        case "电子竞技":
                            //for (int i = 0; i < 12; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_JJ.Items.Add(livesModel[i]);
                            //}
                            gridview_JJ.ItemsSource = livesModel;
                            break;

                        case "放映厅":
                            //for (int i = 0; i < 12; i++)
                            //{
                            //    HomeLiveModel ownerModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].owner.ToString());
                            //    HomeLiveModel coverModel = JsonConvert.DeserializeObject<HomeLiveModel>(livesModel[i].cover.ToString());
                            //    livesModel[i].src = coverModel.src;
                            //    livesModel[i].name = ownerModel.name;
                            //    livesModel[i].mid = ownerModel.mid;
                            //    livesModel[i].face = ownerModel.face;
                            //    gridview_FY.Items.Add(livesModel[i]);
                            //}
                            gridview_FY.ItemsSource = livesModel;
                            break;

                        default:
                            break;
                        }
                    }
                    isLoaded = true;
                }
                else
                {
                    messShow.Show("读取直播失败" + model.message, 3000);
                    isLoaded = false;
                }
            }
            catch (Exception ex)
            {
                if (ex.HResult == -2147012867 || ex.HResult == -2147012889)
                {
                    messShow.Show("无法连接服务器,请检查你的网络连接", 3000);
                }
                else
                {
                    messShow.Show("读取直播失败" + ex.Message, 3000);
                }

                //ErrorEvent("读取直播失败" + ex.Message);
                isLoaded = false;
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
            }
        }
Example #13
0
        private async void LoadMusic(string id)
        {
            try
            {
                string url = string.Format("https://api.bilibili.com/audio/music-service-c/songs/playing?access_key={0}&appkey={1}&build=5250000&mid={2}&mobi_app=android&platform=android&song_id={3}&ts={4}",
                                           ApiHelper.access_key, ApiHelper.AndroidKey.Appkey, ApiHelper.GetUserId(), id, ApiHelper.GetTimeSpan);
                url += "&sign=" + ApiHelper.GetSign(url);

                string re = await WebClientClass.GetResults(new Uri(url));

                SongInfoModel obj = JsonConvert.DeserializeObject <SongInfoModel>(re);
                if (obj.code == 0)
                {
                    if (obj.data.mid == 0)
                    {
                        user.Visibility  = Visibility.Collapsed;
                        intro.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        user.Visibility  = Visibility.Visible;
                        intro.Visibility = Visibility.Visible;
                    }
                    if (obj.data.pgc_info != null)
                    {
                        btn_OpenPcMenu.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        btn_OpenPcMenu.Visibility = Visibility.Collapsed;
                    }
                    this.DataContext = obj.data;

                    //if (obj.data.is_collect==0)
                    //{
                    //    btn_Collect.Visibility = Visibility.Visible;
                    //    btn_CancelCollect.Visibility = Visibility.Collapsed;
                    //}
                    //else
                    //{
                    //    btn_Collect.Visibility = Visibility.Collapsed;
                    //    btn_CancelCollect.Visibility = Visibility.Visible;
                    //}

                    if (obj.data.up_is_follow == 0)
                    {
                        btn_FollowUser.Visibility       = Visibility.Visible;
                        btn_CancelFollowUser.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        btn_FollowUser.Visibility       = Visibility.Collapsed;
                        btn_CancelFollowUser.Visibility = Visibility.Visible;
                    }


                    if (MusicHelper.playList.Find(x => x.songid == _songId) == null)
                    {
                        var m = await MusicHelper.GetMusicUri(_songId);

                        if (m != null)
                        {
                            MusicHelper.AddToPlay(new MusicPlayModel()
                            {
                                url    = m,
                                artist = obj.data.author,
                                pic    = obj.data.cover_url,
                                songid = id,
                                title  = obj.data.title
                            });
                        }
                        else
                        {
                            await new MessageDialog("无法读取歌曲播放地址").ShowAsync();
                        }
                        Utils.ShowMessageToast("已经添加到播放列表");
                    }
                }
                else
                {
                    Utils.ShowMessageToast(obj.msg);
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("读取歌曲信息错误");
            }
        }
 private async void GetChatMe()
 {
     try
     {
         wc = new WebClientClass();
         // http://message.bilibili.com/api/msg/query.room.list.do?access_key=a36a84cc8ef4ea2f92c416951c859a25&actionKey=appkey&appkey=c1b107428d337928&build=414000&page_size=100&platform=android&ts=1461404884000&sign=5e212e424761aa497a75b0fb7fbde775
         string url = string.Format("http://message.bilibili.com/api/msg/query.room.list.do?access_key={0}&actionKey=appkey&appkey={1}&build=411005&page_size=100&platform=android&ts={2}", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpen);
         url += "&sign=" + ApiHelper.GetSign(url);
         string results = await wc.GetResults(new Uri(url));
         MessageChatModel model = JsonConvert.DeserializeObject<MessageChatModel>(results);
         if (model.code == 0)
         {
             List<MessageChatModel> list = JsonConvert.DeserializeObject<List<MessageChatModel>>(model.data.ToString());
             list_ChatMe.ItemsSource = list;
         }
         else
         {
             messShow.Show("读取失败" + model.message, 3000);
         }
     }
     catch (Exception)
     {
         messShow.Show("读取失败", 3000);
     }
   
 }
Example #15
0
        public static async Task <string> LoginBilibili(string UserName, string Password)
        {
            try
            {
                //https://api.bilibili.com/login?appkey=422fd9d7289a1dd9&platform=wp&pwd=JPJclVQpH4jwouRcSnngNnuPEq1S1rizxVJjLTg%2FtdqkKOizeIjS4CeRZsQg4%2F500Oye7IP4gWXhCRfHT6pDrboBNNkYywcrAhbOPtdx35ETcPfbjXNGSxteVDXw9Xq1ng0pcP1burNnAYtNRSayEKC1jiugi1LKyWbXpYE6VaM%3D&type=json&userid=xiaoyaocz&sign=74e4c872ec7b9d83d3a8a714e7e3b4b3
                //发送第一次请求,得到access_key

                string url = "https://api.bilibili.com/login?appkey=422fd9d7289a1dd9&platform=wp&pwd=" + WebUtility.UrlEncode(await GetEncryptedPassword(Password)) + "&type=json&userid=" + WebUtility.UrlEncode(UserName);
                url += "&sign=" + ApiHelper.GetSign(url);

                string results = await WebClientClass.GetResults(new Uri(url));

                //Json解析及数据判断
                LoginModel model = new LoginModel();
                model = JsonConvert.DeserializeObject <LoginModel>(results);
                if (model.code == -627)
                {
                    return("登录失败,密码错误!");
                }
                if (model.code == -626)
                {
                    return("登录失败,账号不存在!");
                }
                if (model.code == -625)
                {
                    return("密码错误多次");
                }
                if (model.code == -628)
                {
                    return("未知错误");
                }
                if (model.code == -1)
                {
                    return("登录失败,程序注册失败!请联系作者!");
                }
                Windows.Web.Http.HttpClient hc = new Windows.Web.Http.HttpClient();
                if (model.code == 0)
                {
                    access_key = model.access_key;
                    Windows.Web.Http.HttpResponseMessage hr2 = await hc.GetAsync(new Uri("http://api.bilibili.com/login/sso?&access_key=" + model.access_key + "&appkey=422fd9d7289a1dd9&platform=wp"));

                    hr2.EnsureSuccessStatusCode();

                    SettingHelper.Set_Access_key(model.access_key);
                }
                //看看存不存在Cookie
                HttpBaseProtocolFilter hb = new HttpBaseProtocolFilter();
                HttpCookieCollection   cookieCollection = hb.CookieManager.GetCookies(new Uri("http://bilibili.com/"));

                List <string> ls = new List <string>();
                foreach (HttpCookie item in cookieCollection)
                {
                    ls.Add(item.Name);
                }
                if (ls.Contains("DedeUserID"))
                {
                    return("登录成功");
                }
                else
                {
                    return("登录失败");
                }
            }
            catch (Exception ex)
            {
                if (ex.HResult == -2147012867)
                {
                    return("登录失败,检查你的网络连接!");
                }
                else
                {
                    return("登录发生错误");
                }
            }
        }
Example #16
0
        /// <summary>
        /// 读取视频播放地址
        /// </summary>
        /// <param name="model"></param>
        /// <param name="quality"></param>
        /// <returns></returns>
        public static async Task <ReturnPlayModel> GetVideoUrl(string aid, string cid, int qn)
        {
            try
            {
                if (qn < 10)
                {
                    switch (qn)
                    {
                    case 1:
                        qn = 32;
                        break;

                    case 2:
                        qn = 64;
                        break;

                    case 3:
                        qn = 80;
                        break;

                    case 4:
                        qn = 116;
                        break;

                    default:
                        qn = 64;
                        break;
                    }
                }
                List <string> urls = new List <string>();
                string        url  = $"https://api.bilibili.com/x/player/playurl?avid={aid}&cid={cid}&qn={qn}&type=&otype=json&appkey={ApiHelper._appKey_VIDEO}";
                url += "&sign=" + ApiHelper.GetSign_VIDEO(url);
                string re = await WebClientClass.GetResults(new Uri(url));

                FlvPlyaerUrlModel m = JsonConvert.DeserializeObject <FlvPlyaerUrlModel>(re);
                if (m.code == 0)
                {
                    var playList = new SYEngine.Playlist(SYEngine.PlaylistTypes.NetworkHttp);
                    foreach (var item in m.data.durl)
                    {
                        urls.Add(item.url);
                        playList.Append(item.url, item.size, item.length / 1000);
                    }
                    playList.NetworkConfigs = CreatePlaylistNetworkConfigs("https://www.bilibili.com/video/av" + aid + "/");

                    return(new ReturnPlayModel()
                    {
                        usePlayMode = UsePlayMode.SYEngine,
                        playlist = playList,
                        urls = urls,
                        from = "bilibili"
                    });
                }
                var biliplus = await GetBiliPlusUrl(cid, qn, "https://www.bilibili.com/video/av" + aid + "/");

                if (biliplus != null)
                {
                    return(biliplus);
                }
                return(null);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public async void GetBangumiInfo(string banID)
        {
            //string uri = "http://bangumi.bilibili.com/api/season?_device=wp&_ulv=10000&build=411005&platform=android&appkey=422fd9d7289a1dd9&ts="+APIHelper.GetTimeSpen+ "000&type=sp&sp_id=56719";
            //string sign=  APIHelper.GetSign(uri);
            //uri += "&sign=" + sign;
            try
            {
                pr_load.Visibility = Visibility.Visible;
                wc = new WebClientClass();
                string uri = "";
                    uri = string.Format("http://bangumi.bilibili.com/api/season?_device=wp&access_key={2}&_ulv=10000&build=411005&platform=android&appkey=422fd9d7289a1dd9&ts={0}000&type=bangumi&season_id={1}", ApiHelper.GetTimeSpen, banID, ApiHelper.access_key);
                uri += "&sign=" + ApiHelper.GetSign(uri);
                string result = await wc.GetResults(new Uri(uri));
                BangumiInfoModel model = new BangumiInfoModel();
                if ((int)JObject.Parse(result)["code"] == 0)
                {
                    model = JsonConvert.DeserializeObject<BangumiInfoModel>(JObject.Parse(result)["result"].ToString());
                    grid_Info.DataContext = model;
                    BangumiInfoModel m = JsonConvert.DeserializeObject<BangumiInfoModel>(model.user_season.ToString());
                    if (m.attention == 0)
                    {
                        font_icon.Glyph = "\uE006";
                        btn_concern.Label = "订阅";
                    }
                    else
                    {
                        font_icon.Glyph = "\uE00B";
                        btn_concern.Label = "取消订阅";
                    }

                    List<BangumiInfoModel> list = JsonConvert.DeserializeObject<List<BangumiInfoModel>>(model.episodes.ToString());
                    List<BangumiInfoModel> list2 = new List<BangumiInfoModel>();
                    for (int i = 0; i < list.Count; i++)
                    {
                        list[i].Num = i;
                        list2.Add(list[i]);
                        if (DownloadManage.Downloaded.Contains(list[i].danmaku.ToString()))
                        {
                            list[i].inLocal = true;
                        }
                    }
                    list_E.ItemsSource = list2;
                    List<BangumiInfoModel> list_CV = JsonConvert.DeserializeObject<List<BangumiInfoModel>>(model.actor.ToString());
                    txt_CV.Text = "";
                    foreach (BangumiInfoModel item in list_CV)
                    {
                        txt_CV.Text += string.Format("{0}:{1}\r\n", item.role, item.actor);
                    }
                    List<BangumiInfoModel> list_Tag = JsonConvert.DeserializeObject<List<BangumiInfoModel>>(model.tags.ToString());
                    Grid_tag.Children.Clear();
                    foreach (BangumiInfoModel item in list_Tag)
                    {
                        HyperlinkButton btn = new HyperlinkButton();
                        btn.DataContext = item;
                        btn.Margin = new Thickness(0, 0, 10, 0);
                        btn.Content = item.tag_name;
                        btn.Click += Btn_Click;
                        Grid_tag.Children.Add(btn);
                    }
                }
                if ((int)JObject.Parse(result)["code"] == -3)
                {
                    messShow.Show("密钥注册失败,请联系作者",3000);
                }
                if ((int)JObject.Parse(result)["code"] == 10)
                {
                    messShow.Show(JObject.Parse(result)["message"].ToString(), 3000);
                }
            }
            catch (Exception ex)
            {
                messShow.Show("发生错误\r\n" + ex.Message, 3000);
            }
            finally
            {
                pr_load.Visibility = Visibility.Collapsed;

            }
        }
Example #18
0
        /// <summary>
        /// 取稍后再看列表
        /// </summary>
        /// <returns></returns>
        public async Task <ReturnModel <ObservableCollection <ToViewsModel> > > GetToViewList()
        {
            try
            {
                if (!ApiHelper.IsLogin())
                {
                    return(new ReturnModel <ObservableCollection <ToViewsModel> >()
                    {
                        message = "请先登录",
                        success = false
                    });
                }
                string url = string.Format("https://api.bilibili.com/x/v2/history/toview/web?access_key={0}&appkey={1}&ts={2}", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpan);
                url += "&sign=" + ApiHelper.GetSign(url);

                var results = await WebClientClass.GetResults(new Uri(url));

                ToViewsModel model = JsonConvert.DeserializeObject <ToViewsModel>(results);
                if (model.code == 0)
                {
                    if (model.data.list == null)
                    {
                        model.data.list = new ObservableCollection <ToViewsModel>();
                    }
                    return(new ReturnModel <ObservableCollection <ToViewsModel> >()
                    {
                        success = true,
                        message = "",
                        data = model.data.list,
                    });
                }
                else
                {
                    return(new ReturnModel <ObservableCollection <ToViewsModel> >()
                    {
                        success = false,
                        message = model.message
                    });
                }
            }
            catch (Exception ex)
            {
                if (LogHelper.IsNetworkError(ex))
                {
                    return(new ReturnModel <ObservableCollection <ToViewsModel> >()
                    {
                        success = false,
                        message = "无法连接服务器,请检查网络连接"
                    });
                }
                else
                {
                    LogHelper.WriteLog(ex);
                    return(new ReturnModel <ObservableCollection <ToViewsModel> >()
                    {
                        success = false,
                        message = "出现了一个未处理错误,已记录"
                    });
                }
            }
        }
Example #19
0
        private async void GetFilter()
        {
            try
            {
                string results = await WebClientClass.GetResults(new Uri("http://api.bilibili.com/x/dm/filter/user?jsonp=jsonp"));

                var ls = SettingHelper.Get_Guanjianzi().Split('|').ToList();
                ls.Remove(string.Empty);
                var ls2 = SettingHelper.Get_Yonghu().Split('|').ToList();
                ls2.Remove(string.Empty);

                DMFilterModel fm = JsonConvert.DeserializeObject <DMFilterModel>(results);
                if (fm.code == 0)
                {
                    foreach (var item in fm.data.rule)
                    {
                        if (item.type == 0)
                        {
                            if (!ls.Contains(item.filter))
                            {
                                SettingHelper.Set_Guanjianzi(SettingHelper.Get_Guanjianzi() + "|" + item.filter);
                            }
                        }
                        if (item.type == 2)
                        {
                            if (!ls2.Contains(item.filter))
                            {
                                SettingHelper.Set_Yonghu(SettingHelper.Get_Yonghu() + "|" + item.filter);
                            }
                        }
                    }
                    List <string> s  = new List <string>();
                    List <string> s2 = new List <string>();
                    fm.data.rule.ForEach(x => {
                        if (x.type == 0)
                        {
                            s.Add(x.filter);
                        }
                        if (x.type == 2)
                        {
                            s2.Add(x.filter);
                        }
                    });


                    foreach (var item in ls)
                    {
                        if (!s.Contains(item))
                        {
                            AddInfo(0, item);
                        }
                    }
                    foreach (var item in ls2)
                    {
                        if (!s2.Contains(item))
                        {
                            AddInfo(2, item);
                        }
                    }
                    LoadSetting();
                }
                else
                {
                    Utils.ShowMessageToast("同步失败," + fm.message, 3000);
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("同步失败", 3000);
            }
        }
Example #20
0
 public async void TouBi(int num)
 {
     UserClass getLogin = new UserClass();
     if (getLogin.IsLogin())
     {
         try
         {
             WebClientClass wc = new WebClientClass();
             Uri ReUri = new Uri("http://www.bilibili.com/plus/comment.php");
             string QuStr = "aid=" + Aid + "&rating=100&player=1&multiply=" + num;
             string result = await wc.PostResults(ReUri, QuStr);
             if (result == "OK")
             {
                 messShow.Show("投币成功!", 3000);
             }
             else
             {
                 messShow.Show("投币失败!" + result, 3000);
             }
         }
         catch (Exception ex)
         {
             messShow.Show("投币时发生错误\r\n" + ex.Message, 3000);
         }
     }
     else
     {
         messShow.Show("请先登录!", 3000);
     }
 }
Example #21
0
        /// <summary>
        /// 读取下载地址
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        public static async Task <List <string> > GetVideoUrl_Download(DownloadTaskModel m)
        {
            try
            {
                List <string> urls = new List <string>();
                var           qn   = 32;
                switch (m.quality)
                {
                case 1:
                    qn = 32;
                    break;

                case 2:
                    qn = 64;
                    break;

                case 3:
                    qn = 80;
                    break;

                case 4:
                    qn = 112;
                    break;

                default:
                    break;
                }

                //https://interface.bilibili.com/v2/playurl?cid=31452468&appkey=84956560bc028eb7&otype=json&type=&quality=112&qn=112&sign=38b1355368ee65d055c12b57bdb26e3a

                if (m.downloadMode == DownloadMode.Video)
                {
                    string url = string.Format("https://interface.bilibili.com/v2/playurl?cid={1}&appkey={0}&otype=json&type=&quality={2}&qn={2}&ts={3}", ApiHelper._appKey_VIDEO, m.cid, qn, ApiHelper.GetTimeSpan_2);
                    url += "&sign=" + ApiHelper.GetSign_VIDEO(url);
                    string re = await WebClientClass.GetResults(new Uri(url));

                    FlvPlyaerUrlModel flvPlyaerUrlModel = JsonConvert.DeserializeObject <FlvPlyaerUrlModel>(re);
                    if (flvPlyaerUrlModel.code == 0)
                    {
                        foreach (var item in flvPlyaerUrlModel.durl)
                        {
                            urls.Add(item.url);
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    string url = string.Format("https://interface.bilibili.com/playurl?cid={0}&player=1&quality={1}&qn={1}&ts={2}", m.cid, qn, ApiHelper.GetTimeSpan);
                    url += "&sign=" + ApiHelper.GetSign_PlayUrl(url);
                    string re = await WebClientClass.GetResults(new Uri(url));

                    if (re.Contains("<code>"))
                    {
                        string url2 = string.Format(
                            "https://bangumi.bilibili.com/player/web_api/v2/playurl?cid={1}&appkey={0}&otype=json&type=&quality={2}&module=bangumi&season_type=1&qn={2}&ts={3}", ApiHelper._appKey_VIDEO, m.cid, qn, ApiHelper.GetTimeSpan_2);
                        url2 += "&sign=" + ApiHelper.GetSign_VIDEO(url2);
                        re    = await WebClientClass.GetResults(new Uri(url2));

                        FlvPlyaerUrlModel flvPlyaerUrlModel = JsonConvert.DeserializeObject <FlvPlyaerUrlModel>(re);
                        if (flvPlyaerUrlModel.code == 0 && !re.Contains("8986943"))
                        {
                            foreach (var item in flvPlyaerUrlModel.durl)
                            {
                                urls.Add(item.url);
                            }
                        }
                        else
                        {
                            var re3 = await WebClientClass.GetResults(new Uri(string.Format("https://moe.nsapps.cn/api/v1/BiliAnimeUrl?animeid={0}&cid={1}&epid={2}&rnd={3}", m.sid, m.cid, m.epid, ApiHelper.GetTimeSpan)));

                            JObject obj = JObject.Parse(re3);
                            if (Convert.ToInt32(obj["code"].ToString()) == 0)
                            {
                                urls.Add(obj["data"][0]["url"].ToString());
                            }
                            else
                            {
                                var playurl = await _5DMHelper.GetUrl(m.sid, Convert.ToInt32(m.epIndex) - 1);

                                if (playurl == "")
                                {
                                    return(null);
                                }
                                else
                                {
                                    urls.Add(playurl);
                                }
                            }
                        }
                    }
                    else
                    {
                        var mc = Regex.Matches(re, @"<length>(.*?)</length>.*?<size>(.*?)</size>.*?<url><!\[CDATA\[(.*?)\]\]></url>", RegexOptions.Singleline);
                        foreach (Match item in mc)
                        {
                            urls.Add(item.Groups[3].Value);
                        }
                    }
                }


                return(urls);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Example #22
0
        /// <summary>
        /// 读取番剧播放地址
        /// </summary>
        /// <param name="model"></param>
        /// <param name="quality"></param>
        /// <returns></returns>
        public static async Task <ReturnPlayModel> GetBangumiUrl(PlayerModel model, int qn)
        {
            try
            {
                if (qn < 10)
                {
                    switch (qn)
                    {
                    case 1:
                        qn = 32;
                        break;

                    case 2:
                        qn = 64;
                        break;

                    case 3:
                        qn = 80;
                        break;

                    case 4:
                        qn = 116;
                        break;

                    default:
                        qn = 64;
                        break;
                    }
                }


                List <string> urls = new List <string>();
                string        url  = string.Format("https://interface.bilibili.com/v2/playurl?cid={0}&player=1&quality={1}&qn={1}&ts={2}", model.Mid, qn, ApiHelper.GetTimeSpan);
                url += "&sign=" + ApiHelper.GetSign_PlayUrl(url);

                string re = await WebClientClass.GetResults(new Uri(url));

                var playList = new SYEngine.Playlist(SYEngine.PlaylistTypes.NetworkHttp);

                SYEngine.PlaylistNetworkConfigs config = new SYEngine.PlaylistNetworkConfigs();
                config.DownloadRetryOnFail = true;
                config.HttpCookie          = string.Empty;
                config.UniqueId            = string.Empty;
                config.HttpUserAgent       = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";

                if (re.Contains("<code>"))
                {
                    //string url2 = string.Format("https://bangumi.bilibili.com/player/web_api/playurl/?access_key={3}&cid={0}&module=bangumi&player=1&otype=json&type=flv&quality={1}&ts={2}", model.Mid, quality, GetTimeSpan_2,access_key);
                    //url2 += "&sign=" + ApiHelper.GetSign_VIP(url2);
                    //
                    string url2 = string.Format(
                        "https://bangumi.bilibili.com/player/web_api/v2/playurl?cid={1}&appkey={0}&otype=json&type=&quality={2}&module=bangumi&season_type=1&qn={2}&ts={3}", ApiHelper._appKey_VIDEO, model.Mid, qn, ApiHelper.GetTimeSpan_2);
                    url2 += "&sign=" + ApiHelper.GetSign_VIDEO(url2);
                    re    = await WebClientClass.GetResultsUTF8Encode(new Uri(url2));

                    FlvPlyaerUrlModel m = JsonConvert.DeserializeObject <FlvPlyaerUrlModel>(re);
                    if (m.code == 0 && !re.Contains("8986943") && (m.status == 13 && m.vip_status != 0))
                    {
                        //if (m.durl.Count==1)
                        //{
                        //    return new ReturnPlayModel()
                        //    {
                        //        usePlayMode = UsePlayMode.System,
                        //        url = m.durl[0].url,
                        //        urls = urls
                        //    };
                        //}

                        foreach (var item in m.durl)
                        {
                            urls.Add(item.url);
                            playList.Append(item.url, item.size, item.length / 1000);
                        }
                    }
                    else
                    {
                        string rnd = ApiHelper.GetTimeSpan.ToString();
                        if (SettingHelper.Get_UseVIP())
                        {
                            rnd = "true" + rnd;
                        }
                        var re3 = await WebClientClass.GetResults(new Uri(string.Format("https://moe.nsapps.cn/api/v1/BiliAnimeUrl?animeid={0}&cid={1}&epid={2}&rnd={3}", model.banId, model.Mid, model.banInfo.episode_id, rnd)));

                        JObject obj = JObject.Parse(re3);
                        if (Convert.ToInt32(obj["code"].ToString()) == 0)
                        {
                            if (obj["mode"].ToString() == "mp4")
                            {
                                urls.Add(obj["data"][0]["url"].ToString());
                                return(new ReturnPlayModel()
                                {
                                    usePlayMode = UsePlayMode.System,
                                    url = obj["data"][0]["url"].ToString(),
                                    urls = urls,
                                    from = "server"
                                });
                            }
                            else
                            {
                                var returnPlayModel = new ReturnPlayModel()
                                {
                                    usePlayMode = UsePlayMode.SYEngine,
                                    from        = "server"
                                };
                                foreach (var item in obj["data"])
                                {
                                    playList.Append(item["url"].ToString(), item["size"].ToInt32(), item["length"].ToInt32() / 1000);
                                    urls.Add(item["url"].ToString());
                                }
                                returnPlayModel.playlist = playList;
                                returnPlayModel.urls     = urls;
                                return(returnPlayModel);
                            }
                        }

                        if (SettingHelper.Get_UseOtherSite())
                        {
                            var playurl = await _5DMHelper.GetUrl(model.banId, Convert.ToInt32(model.No));

                            if (playurl == "")
                            {
                                return(null);
                            }
                            else
                            {
                                urls.Add(playurl);
                                return(new ReturnPlayModel()
                                {
                                    usePlayMode = UsePlayMode.System,
                                    url = playurl,
                                    urls = urls,
                                    from = "other_site"
                                });
                            }
                        }
                        else
                        {
                            return(null);
                        }
                    }
                }
                else
                {
                    var mc = Regex.Matches(re, @"<length>(.*?)</length>.*?<size>(.*?)</size>.*?<url><!\[CDATA\[(.*?)\]\]></url>", RegexOptions.Singleline);

                    foreach (Match item in mc)
                    {
                        playList.Append(item.Groups[3].Value, Convert.ToInt32(item.Groups[2].Value), Convert.ToInt64(item.Groups[1].Value) / 1000);
                    }
                }
                config.HttpReferer = "https://www.bilibili.com/bangumi/play/ep" + model.episode_id;
                //config.HttpReferer = "";
                //config.HttpCookie = "sid=aj08qul1; pgv_pvi=2726422528; fts=1498031012; rpdid=ikxqxlpildoplqwkwlqw; buvid3=0916A88B-F02E-46E2-95B1-BEF35678E1EE37229infoc; LIVE_BUVID=9b2dbd17fe02c6e0b9a5f7cbfe182be2; LIVE_BUVID__ckMd5=54bf74d417f1dfe6; OUTFOX_SEARCH_USER_ID_NCOO=301070296.3442316; uTZ=-480; biliMzIsnew=1; biliMzTs=0; UM_distinctid=16072fe8c3138-01d5f1e1fd27a6-5d4e211f-1fa400-16072fe8c32d6; _ga=GA1.2.701916902.1513903771; im_notify_type_7251681=0; BANGUMI_SS_21728_REC=164986; finger=81df3ec0; 21680=183802; 22843=173309; BANGUMI_SS_22843_REC=173309; BANGUMI_SS_21680_REC=183802; balh_server=https://biliplus.ipcjs.win; purl_token=bilibili_1518001366; balh_season_21680=1; pgv_si=s8821510144; DedeUserID=7251681; DedeUserID__ckMd5=e2742b2aff29c1cf; SESSDATA=83ace795%2C1520595578%2Ca2c615ce; bili_jct=a0f037944a8423a37efb566011d0a84b; _dfcaptcha=42d9ae3eecffafaf47b08effeef54128";
                playList.NetworkConfigs = config;
                //FlvPlyaerUrlModel m = JsonConvert.DeserializeObject<FlvPlyaerUrlModel>(re);
                // var playList = new SYEngine.Playlist(SYEngine.PlaylistTypes.NetworkHttp);



                //foreach (var item in m.durl)
                //{
                //    playList.Append(item.url, item.size, item.length / 1000);
                //}


                // mediaPlay.Source = await playList.SaveAndGetFileUriAsync();
                return(new ReturnPlayModel()
                {
                    playlist = playList,
                    usePlayMode = UsePlayMode.SYEngine,
                    urls = urls,
                    from = "bilibili"
                });
            }
            catch (Exception)
            {
                return(null);
            }
        }
Example #23
0
        /// <summary>
        /// 读取视频播放地址
        /// </summary>
        /// <param name="model"></param>
        /// <param name="quality"></param>
        /// <returns></returns>
        public static async Task <ReturnPlayModel> GetVideoUrl(string aid, string cid, int qn)
        {
            try
            {
                if (qn < 10)
                {
                    switch (qn)
                    {
                    case 1:
                        qn = 32;
                        break;

                    case 2:
                        qn = 64;
                        break;

                    case 3:
                        qn = 80;
                        break;

                    case 4:
                        qn = 116;
                        break;

                    default:
                        qn = 64;
                        break;
                    }
                }
                List <string> urls = new List <string>();

                //https://interface.bilibili.com/v2/playurl?cid=31452468&appkey=84956560bc028eb7&otype=json&type=&quality=112&qn=112&sign=38b1355368ee65d055c12b57bdb26e3a

                string url = string.Format("https://interface.bilibili.com/v2/playurl?cid={1}&appkey={0}&otype=json&type=&quality={2}&qn={2}&ts={3}", ApiHelper._appKey_VIDEO, cid, qn, ApiHelper.GetTimeSpan_2);
                url += "&sign=" + ApiHelper.GetSign_VIDEO(url);


                string re = await WebClientClass.GetResults(new Uri(url));

                //var mc = Regex.Matches(re, @"<length>(.*?)</length>.*?<size>(.*?)</size>.*?<url><!\[CDATA\[(.*?)\]\]></url>", RegexOptions.Singleline);
                FlvPlyaerUrlModel m = JsonConvert.DeserializeObject <FlvPlyaerUrlModel>(re);
                // FlvPlyaerUrlModel m = JsonConvert.DeserializeObject<FlvPlyaerUrlModel>(re);
                var playList = new SYEngine.Playlist(SYEngine.PlaylistTypes.NetworkHttp);
                if (m.code == 0)
                {
                    foreach (var item in m.durl)
                    {
                        urls.Add(item.url);
                        playList.Append(item.url, item.size, item.length / 1000);
                    }
                }
                else
                {
                    var re3 = await WebClientClass.GetResults(new Uri(string.Format("https://moe.nsapps.cn/api/v1/BiliVideoUrl?cid={0}&qn={1}&rnd={2}", cid, qn, ApiHelper.GetTimeSpan)));

                    JObject obj = JObject.Parse(re3);
                    if (Convert.ToInt32(obj["code"].ToString()) == 0)
                    {
                        if (obj["mode"].ToString() == "mp4")
                        {
                            return(new ReturnPlayModel()
                            {
                                urls = new List <string>()
                                {
                                    obj["data"][0]["url"].ToString()
                                },
                                usePlayMode = UsePlayMode.System,
                                url = obj["data"][0]["url"].ToString(),
                                from = "server"
                            });
                        }
                        else
                        {
                            var returnPlayModel = new ReturnPlayModel()
                            {
                                usePlayMode = UsePlayMode.SYEngine,
                                from        = "server"
                            };
                            foreach (var item in obj["data"])
                            {
                                urls.Add(item["url"].ToString());
                                playList.Append(item["url"].ToString(), item["size"].ToInt32(), item["length"].ToInt32() / 1000);
                            }
                            returnPlayModel.playlist = playList;
                            returnPlayModel.urls     = urls;
                            return(returnPlayModel);
                        }
                    }
                }



                SYEngine.PlaylistNetworkConfigs config = new SYEngine.PlaylistNetworkConfigs();
                config.DownloadRetryOnFail = true;
                config.HttpCookie          = string.Empty;

                config.UniqueId      = string.Empty;
                config.HttpReferer   = "https://www.bilibili.com/video/av" + aid + "/";
                config.HttpUserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";

                playList.NetworkConfigs = config;

                // mediaPlay.Source = await playList.SaveAndGetFileUriAsync();
                return(new ReturnPlayModel()
                {
                    usePlayMode = UsePlayMode.SYEngine,
                    playlist = playList,
                    urls = urls,
                    from = "bilibili"
                });
            }
            catch (Exception)
            {
                return(null);
            }
        }
Example #24
0
        private async void LoadDynamicData(string dynamic_id)
        {
            try
            {
                string url = string.Format("https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail?access_key={0}&appkey={1}&dynamic_id={2}&build=5250000&mobi_app=android&platform=android&src=bilih5&ts={3}", ApiHelper.AccessKey, ApiHelper.AndroidKey.Appkey, dynamic_id, ApiHelper.TimeStamp);
                url += "&sign=" + ApiHelper.GetSign(url);

                string re = await WebClientClass.GetResultsUTF8Encode(new Uri(url));

                JObject obj = JObject.Parse(re);
                if (obj["code"].ToInt32() == 0)
                {
                    DynamicCardsModel dynamicCardsModel = Newtonsoft.Json.JsonConvert.DeserializeObject <DynamicCardsModel>(obj["data"]["card"].ToString());
                    _data = dynamicCardsModel;
                    //_data = new DynamicCardsModel()
                    //{
                    //    feed1 = dynamicFeed1Model,
                    //    desc = new DynamicCardsModel()
                    //    {
                    //        timestamp = dynamicFeed1Model.item.upload_timestamp,
                    //        type = 2,
                    //        uid = dynamicFeed1Model.user.uid,
                    //        dynamic_id = Convert.ToInt64(dynamic_id),
                    //        user_profile = new user_profileModel()
                    //        {
                    //            info = new user_profileModel()
                    //            {
                    //                uid = dynamicFeed1Model.user.uid,
                    //                face = dynamicFeed1Model.user.head_url,
                    //                uname = dynamicFeed1Model.user.name
                    //            }
                    //        },
                    //        rid = dynamicFeed1Model.item.doc_id,

                    //        like = dynamicFeed1Model.item.vote_count,
                    //    },
                    //    reply = dynamicFeed1Model.item.comment_count,
                    //    card = obj["data"].ToString()
                    //};
                    ObservableCollection <DynamicCardsModel> ls = new ObservableCollection <DynamicCardsModel>();
                    ls.Add(_data);
                    dynamic.LoadData(ls, true);
                    ls_repost.ItemsSource = null;
                    if (_data.desc.user_profile != null)
                    {
                        if (_data.desc.user_profile.info.uid.ToString() == ApiHelper.GetUserId())
                        {
                            btn_Delete.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            btn_Delete.Visibility = Visibility.Collapsed;
                        }
                    }
                    LoadRepost();

                    comment.ClearComment();
                    InitializeComment();
                }
                else
                {
                    obj["message"].ToString();
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("无法读取动态");
            }
        }
Example #25
0
        private async void SetHome(bool local)
        {
            try
            {
                disaid             = "";
                pr_Load.Visibility = Visibility.Visible;

                string results = "";

                if (local)
                {
                    results = await SettingHelper.Get_HomeInfo();
                }
                else
                {
                    string url = string.Format("http://app.bilibili.com/x/v2/show?access_key={0}&appkey={1}&build=429001&mobi_app=android&platform=android&ts={2}000", ApiHelper.access_key, ApiHelper._appKey_Android, ApiHelper.GetTimeSpan);
                    url    += "&sign=" + ApiHelper.GetSign_Android(url);
                    results = await WebClientClass.GetResults(new Uri(url));

                    results = results.Replace("goto", "_goto");
                }
                HomeModel m = JsonConvert.DeserializeObject <HomeModel>(results);
                if (m.code == 0)
                {
                    if (!local && SettingHelper.IsPc())
                    {
                        SettingHelper.Set_HomeInfo(results);
                    }
                    //var ls = m.data.Where(x => x.type == "topic").ToList();

                    //topic_2.DataContext = ls[1].body[0];
                    //topic_3.DataContext = ls[2].body[0];
                    int i = 0;
                    foreach (var item in m.data)
                    {
                        switch (item.title)
                        {
                        case "热门焦点":
                            home_GridView_Hot.ItemsSource = item.body;
                            home_flipView.ItemsSource     = item.banner.top;

                            break;

                        case "正在直播":
                            home_GridView_Live.ItemsSource = item.body;
                            break;

                        case "番剧推荐":
                            home_GridView_Bangumi.ItemsSource = item.body;
                            break;

                        case "动画区":
                            home_GridView_DH.ItemsSource = item.body;
                            break;

                        case "音乐区":
                            home_GridView_YY.ItemsSource = item.body;
                            break;

                        case "舞蹈区":
                            home_GridView_WD.ItemsSource = item.body;
                            break;

                        case "游戏区":
                            home_GridView_YX.ItemsSource = item.body;
                            break;

                        case "鬼畜区":
                            home_GridView_GC.ItemsSource = item.body;
                            break;

                        case "科技区":
                            home_GridView_KJ.ItemsSource = item.body;
                            break;

                        case "活动中心":
                            home_GridView_Activity.ItemsSource = item.body;
                            break;

                        case "生活区":
                            home_GridView_SH.ItemsSource = item.body;
                            break;

                        case "娱乐区":
                            home_GridView_YL.ItemsSource = item.body;
                            break;

                        case "时尚区":
                            home_GridView_SS.ItemsSource = item.body;
                            break;

                        case "电视剧区":
                            home_GridView_DSJ.ItemsSource = item.body;
                            break;

                        case "电影区":
                            home_GridView_DY.ItemsSource = item.body;
                            break;

                        case "广告区":
                            home_GridView_GG.ItemsSource = item.body;
                            break;

                        default:
                        {
                            if (item.type == "topic")
                            {
                                switch (i)
                                {
                                case 0:
                                    topic_1.DataContext = item.body[0];
                                    break;

                                case 1:
                                    topic_2.DataContext = item.body[0];
                                    break;

                                case 2:
                                    topic_3.DataContext = item.body[0];
                                    break;

                                default:
                                    break;
                                }
                                i++;
                            }
                        }
                        break;
                        }
                    }

                    //home_GridView_Hot.ItemsSource = m.data.First(x => x.title == "热门焦点").body;
                    // home_flipView.ItemsSource = m.data.First(x => x.title == "热门焦点").banner.top;
                    //home_GridView_Live.ItemsSource = m.data.First(x => x.title == "正在直播").body;
                    //home_GridView_Bangumi.ItemsSource = m.data.First(x => x.title == "番剧推荐").body;
                    //home_GridView_Activity.ItemsSource = m.data.First(x => x.title == "活动中心").body;
                    //home_GridView_DH.ItemsSource = m.data.First(x => x.title == "动画区").body;
                    //home_GridView_DSJ.ItemsSource = m.data.First(x => x.title == "电视剧区").body;
                    //home_GridView_DY.ItemsSource = m.data.First(x => x.title == "电影区").body;
                    //home_GridView_GC.ItemsSource = m.data.First(x => x.title == "鬼畜区").body;
                    //home_GridView_GG.ItemsSource = m.data.First(x => x.title == "广告区").body;
                    //home_GridView_KJ.ItemsSource = m.data.First(x => x.title == "科技区").body;
                    //home_GridView_SH.ItemsSource = m.data.First(x => x.title == "生活区").body;
                    //home_GridView_SS.ItemsSource = m.data.First(x => x.title == "时尚区").body;
                    //home_GridView_WD.ItemsSource = m.data.First(x => x.title == "舞蹈区").body;
                    //home_GridView_YL.ItemsSource = m.data.First(x => x.title == "娱乐区").body;
                    //home_GridView_YX.ItemsSource = m.data.First(x => x.title == "游戏区").body;
                    //home_GridView_YY.ItemsSource = m.data.First(x => x.title == "音乐区").body;
                }
                else
                {
                    await new MessageDialog(m.message).ShowAsync();
                }
            }
            catch (Exception ex)
            {
                if (ex.HResult == -2147012867 || ex.HResult == -2147012889)
                {
                    messShow.Show("无法连接服务器,请检查你的网络连接", 3000);
                }
                else
                {
                    messShow.Show("更新数据失败了", 3000);
                }
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
            }
        }
Example #26
0
        private async void LaodTimeline()
        {
            try
            {
                pr_Load.Visibility = Visibility.Visible;
                string url = "";
                switch (cb_OrderBy.SelectedIndex)
                {
                case 0:
                    url = string.Format("https://bangumi.bilibili.com/api/timeline_v4?access_key={0}&appkey={1}&area_id=1%2C2%2C-1&build=5250000&date_after=6&date_before=6&mobi_app=android&platform=wp&see_mine=0&ts={2}000", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpan);
                    break;

                case 1:
                    url = string.Format("https://bangumi.bilibili.com/api/timeline_v4?access_key={0}&appkey={1}&area_id=1%2C2%2C-1&build=5250000&date_after=6&date_before=6&mobi_app=android&platform=wp&see_mine=1&ts={2}000", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpan);
                    break;

                case 2:
                    url = string.Format("https://bangumi.bilibili.com/api/timeline_v4?access_key={0}&appkey={1}&area_id=2%2C-1&build=5250000&date_after=6&date_before=6&mobi_app=android&platform=wp&see_mine=0&ts={2}000", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpan);
                    break;

                case 3:
                    url = string.Format("https://bangumi.bilibili.com/api/timeline_v4?access_key={0}&appkey={1}&area_id=1%2C-1&build=5250000&date_after=6&date_before=6&mobi_app=android&platform=wp&see_mine=0&ts={2}000", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpan);
                    break;

                default:
                    break;
                }
                url += "&sign=" + ApiHelper.GetSign(url);
                string results = await WebClientClass.GetResultsUTF8Encode(new Uri(url));

                TimeLineModel m = JsonConvert.DeserializeObject <TimeLineModel>(results);
                if (m.code == 0)
                {
                    AllTimeLineModel model = new AllTimeLineModel();
                    var t0 = GetWeek(DateTime.Now);
                    model.today = new AllTimeLineModel()
                    {
                        Week = t0[0], WeekStr = t0[1], Date = t0[2], ls = new List <TimeLineModel>()
                    };
                    var n0 = GetWeek(DateTime.Now.AddDays(1));
                    model.next1 = new AllTimeLineModel()
                    {
                        Week = n0[0], WeekStr = n0[1], Date = n0[2], ls = new List <TimeLineModel>()
                    };
                    var n1 = GetWeek(DateTime.Now.AddDays(2));
                    model.next2 = new AllTimeLineModel()
                    {
                        Week = n1[0], WeekStr = n1[1], Date = n1[2], ls = new List <TimeLineModel>()
                    };
                    var n2 = GetWeek(DateTime.Now.AddDays(3));
                    model.next3 = new AllTimeLineModel()
                    {
                        Week = n2[0], WeekStr = n2[1], Date = n2[2], ls = new List <TimeLineModel>()
                    };
                    var n3 = GetWeek(DateTime.Now.AddDays(4));
                    model.next4 = new AllTimeLineModel()
                    {
                        Week = n3[0], WeekStr = n3[1], Date = n3[2], ls = new List <TimeLineModel>()
                    };
                    var n4 = GetWeek(DateTime.Now.AddDays(5));
                    model.next5 = new AllTimeLineModel()
                    {
                        Week = n4[0], WeekStr = n4[1], Date = n4[2], ls = new List <TimeLineModel>()
                    };
                    var n5 = GetWeek(DateTime.Now.AddDays(6));
                    model.next6 = new AllTimeLineModel()
                    {
                        Week = n5[0], WeekStr = n5[1], Date = n5[2], ls = new List <TimeLineModel>()
                    };
                    var p0 = GetWeek(DateTime.Now.AddDays(-6));
                    model.per1 = new AllTimeLineModel()
                    {
                        Week = p0[0], WeekStr = p0[1], Date = p0[2], ls = new List <TimeLineModel>()
                    };
                    var p1 = GetWeek(DateTime.Now.AddDays(-5));
                    model.per2 = new AllTimeLineModel()
                    {
                        Week = p1[0], WeekStr = p1[1], Date = p1[2], ls = new List <TimeLineModel>()
                    };
                    var p2 = GetWeek(DateTime.Now.AddDays(-4));
                    model.per3 = new AllTimeLineModel()
                    {
                        Week = p2[0], WeekStr = p2[1], Date = p2[2], ls = new List <TimeLineModel>()
                    };
                    var p3 = GetWeek(DateTime.Now.AddDays(-3));
                    model.per4 = new AllTimeLineModel()
                    {
                        Week = p3[0], WeekStr = p3[1], Date = p3[2], ls = new List <TimeLineModel>()
                    };
                    var p4 = GetWeek(DateTime.Now.AddDays(-2));
                    model.per5 = new AllTimeLineModel()
                    {
                        Week = p4[0], WeekStr = p4[1], Date = p4[2], ls = new List <TimeLineModel>()
                    };
                    var p5 = GetWeek(DateTime.Now.AddDays(-1));
                    model.per6 = new AllTimeLineModel()
                    {
                        Week = p5[0], WeekStr = p5[1], Date = p5[2], ls = new List <TimeLineModel>()
                    };
                    foreach (var item in m.result)
                    {
                        DateTime dt = DateTime.Parse(item.pub_date).Date;
                        if (dt == DateTime.Now.Date)
                        {
                            model.today.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(-6).Date)
                        {
                            model.per1.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(-5).Date)
                        {
                            model.per2.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(-4).Date)
                        {
                            model.per3.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(-3).Date)
                        {
                            model.per4.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(-2).Date)
                        {
                            model.per5.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(-1).Date)
                        {
                            model.per6.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(1).Date)
                        {
                            model.next1.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(2).Date)
                        {
                            model.next2.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(3).Date)
                        {
                            model.next3.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(4).Date)
                        {
                            model.next4.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(5).Date)
                        {
                            model.next5.ls.Add(item);
                        }
                        if (dt == DateTime.Now.AddDays(6).Date)
                        {
                            model.next6.ls.Add(item);
                        }
                    }


                    this.DataContext = model;
                }
                else
                {
                    Utils.ShowMessageToast(m.message, 3000);
                }
            }
            catch (Exception ex)
            {
                if (ex.HResult == -2147012867 || ex.HResult == -2147012889)
                {
                    Utils.ShowMessageToast("无法连接服务器,请检查你的网络连接", 3000);
                }
                else
                {
                    Utils.ShowMessageToast("读取放送表失败了", 3000);
                }
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
                await Task.Delay(1000);

                GeneralTransform generalTransform = st.TransformToVisual(gv_today);
                Point            point            = generalTransform.TransformPoint(new Point(0, 0));

                sv.ChangeView(null, Math.Abs(point.Y), null);
            }
        }
Example #27
0
        private async void LoadMenu()
        {
            try
            {
                loading                 = true;
                pr_load.Visibility      = Visibility.Visible;
                btn_LoadMore.Visibility = Visibility.Collapsed;
                int catId  = 0;
                int itemId = 0;
                if (_selectCategroies != null)
                {
                    catId  = _selectCategroies.cateId;
                    itemId = _selectCategroies.itemId;
                }
                if (_page == 1)
                {
                    list_menus.ItemsSource = null;
                }
                string url = "";
                switch (_opentype)
                {
                case OpenMenuType.Menu:
                    url = string.Format("https://api.bilibili.com/audio/music-service-c/menus/filteMenu?appkey={0}&build=5250000&cateId={1}&itemId={2}&mobi_app=android&orderBy={3}&pageNum={4}&pageSize=24&platform=android&ts={5}", ApiHelper._appKey, catId, itemId, _sort, _page, ApiHelper.GetTimeSpan);
                    break;

                case OpenMenuType.Album:
                    url = string.Format("https://api.bilibili.com/audio/music-service-c/menus/filte-pmenu?appkey={0}&build=5250000&cateId={1}&itemId={2}&mobi_app=android&orderBy={3}&pageNum={4}&pageSize=24&platform=android&ts={5}", ApiHelper._appKey, catId, itemId, _sort, _page, ApiHelper.GetTimeSpan);
                    break;

                case OpenMenuType.MissEvan:
                    url = string.Format("https://api.bilibili.com/audio/music-service-c/menus/missevan?appkey={0}&build=5250000&cateId={1}&itemId={2}&mobi_app=android&orderBy={3}&pageNum={4}&pageSize=24&platform=android&ts={5}", ApiHelper._appKey, catId, itemId, _sort, _page, ApiHelper.GetTimeSpan);
                    break;

                default:
                    break;
                }
                url += "&sign=" + ApiHelper.GetSign(url);
                var results = await WebClientClass.GetResults(new Uri(url));

                MusicCateMenusModel obj = JsonConvert.DeserializeObject <MusicCateMenusModel>(results);

                if (obj.code == 0)
                {
                    if (obj.data.list != null && obj.data.list.Count != 0)
                    {
                        if (_page == 1)
                        {
                            list_menus.ItemsSource = obj.data.list;
                        }
                        else
                        {
                            var ls = list_menus.ItemsSource as ObservableCollection <MusicHomeMenuModel>;
                            foreach (var item in obj.data.list)
                            {
                                ls.Add(item);
                            }
                        }
                        btn_LoadMore.Visibility = Visibility.Visible;
                        _page++;
                    }
                    else
                    {
                        Utils.ShowMessageToast("加载完了");
                    }
                }
                else
                {
                    Utils.ShowMessageToast(obj.msg);
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("加载失败歌单");
            }
            finally
            {
                loading            = false;
                pr_load.Visibility = Visibility.Collapsed;
            }
        }
Example #28
0
 public async Task GetPlayInfo(string mid, int quality)
 {
     try
     {
         pro_Num.Text = "读取视频地址...";
         WebClientClass wc = new WebClientClass();
         string url = "http://interface.bilibili.com/playurl?platform=android&cid=" + mid + "&quality=" + quality + "&otype=json&appkey=422fd9d7289a1dd9&type=mp4";
         url += "&sign=" + ApiHelper.GetSign(url);
         string results = await wc.GetResults(new Uri(url));
         VideoUriModel model = JsonConvert.DeserializeObject<VideoUriModel>(results);
         List<VideoUriModel> model1 = JsonConvert.DeserializeObject<List<VideoUriModel>>(model.durl.ToString());
         mediaElement.Source = new Uri(model1[0].url);
         pro_Num.Text = "开始缓冲视频...";
     }
     catch (Exception)
     {
         MessageDialog md = new MessageDialog("视频地址获取失败!", "错误");
         await md.ShowAsync();
     }
 }
Example #29
0
        private async void GetMessage()
        {
            try
            {
                pr_Load.Visibility = Visibility.Visible;

                // http://message.bilibili.com/api/msg/query.room.list.do?access_key=a36a84cc8ef4ea2f92c416951c859a25&actionKey=appkey&appkey=c1b107428d337928&build=414000&page_size=100&platform=android&ts=1461404884000&sign=5e212e424761aa497a75b0fb7fbde775
                string url = string.Format("https://message.bilibili.com/api/notify/query.notify.count.do?_device=android&_ulv=10000&access_key={0}&actionKey=appkey&appkey={1}&build=518000&platform=android&ts={2}", ApiHelper.AccessKey, ApiHelper.AndroidKey.Appkey, ApiHelper.TimeStamp);
                url += "&sign=" + ApiHelper.GetSign(url);
                string results = await WebClientClass.GetResults(new Uri(url));

                MessageModel model = JsonConvert.DeserializeObject <MessageModel>(results);
                if (model.code == 0)
                {
                    MessageModel list = JsonConvert.DeserializeObject <MessageModel>(model.data.ToString());
                    if (list.reply_me != 0)
                    {
                        bor_HF.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        bor_HF.Visibility = Visibility.Collapsed;
                    }

                    if (list.at_me != 0)
                    {
                        bor_At.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        bor_At.Visibility = Visibility.Collapsed;
                    }

                    if (list.praise_me != 0)
                    {
                        bor_Zan.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        bor_Zan.Visibility = Visibility.Collapsed;
                    }

                    if (list.notify_me != 0)
                    {
                        bor_TZ.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        bor_TZ.Visibility = Visibility.Collapsed;
                    }

                    if (list.chat_me != 0)
                    {
                        bor_SX.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        bor_SX.Visibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    Utils.ShowMessageToast("读取通知失败," + model.message, 3000);
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("读取通知失败", 3000);
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
            }
        }
Example #30
0
        public static async Task <List <QualityModel> > GetAnimeQualities(PlayerModel model)
        {
            List <QualityModel> qualities = new List <QualityModel>();

            try
            {
                var           qn   = 64;
                List <string> urls = new List <string>();

                string url2 = string.Format(
                    "https://bangumi.bilibili.com/player/web_api/v2/playurl?cid={1}&appkey={0}&otype=json&type=&quality={2}&module=bangumi&season_type=1&qn={2}&ts={3}", ApiHelper._appKey_VIDEO, model.Mid, qn, ApiHelper.GetTimeSpan_2);
                url2 += "&sign=" + ApiHelper.GetSign_VIDEO(url2);
                var re = await WebClientClass.GetResultsUTF8Encode(new Uri(url2));

                FlvPlyaerUrlModel m = JsonConvert.DeserializeObject <FlvPlyaerUrlModel>(re);
                if (m.code == 0 && !re.Contains("8986943"))
                {
                    foreach (var item in m.accept_description)
                    {
                        qualities.Add(new QualityModel()
                        {
                            description = item,
                            qn          = m.accept_quality[m.accept_description.IndexOf(item)]
                        });
                    }
                }
                else
                {
                    var re3 = await WebClientClass.GetResults(new Uri(string.Format("https://moe.nsapps.cn/api/v1/BiliAnimeUrl?animeid={0}&cid={1}&epid={2}&rnd={3}", model.banId, model.Mid, model.banInfo.episode_id, ApiHelper.GetTimeSpan)));

                    JObject obj = JObject.Parse(re3);
                    if (Convert.ToInt32(obj["code"].ToString()) == 0)
                    {
                        qualities.Add(new QualityModel()
                        {
                            description = "默认",
                            qn          = 80
                        });
                    }
                    else
                    {
                        return(new List <QualityModel>()
                        {
                            new QualityModel()
                            {
                                description = "流畅", qn = 32
                            },
                            new QualityModel()
                            {
                                description = "清晰", qn = 64
                            },
                            new QualityModel()
                            {
                                description = "高清", qn = 80
                            },
                            new QualityModel()
                            {
                                description = "超清", qn = 112
                            },
                        });
                    }
                }


                qualities = qualities.OrderBy(x => x.qn).ToList();
                return(qualities);
            }
            catch (Exception)
            {
                return(new List <QualityModel>()
                {
                    new QualityModel()
                    {
                        description = "流畅", qn = 32
                    },
                    new QualityModel()
                    {
                        description = "清晰", qn = 64
                    },
                    new QualityModel()
                    {
                        description = "高清", qn = 80
                    },
                    new QualityModel()
                    {
                        description = "超清", qn = 112
                    },
                });
            }
        }
Example #31
0
        private async void GetUserInfo()
        {
            try
            {
                pr_Load.Visibility = Visibility.Visible;
                try
                {
                    string results = await WebClientClass.PostResults(new Uri("http://space.bilibili.com/ajax/member/GetInfo"), "mid=" + Uid + "&_=" + ApiHelper.TimeStamp2, "http://space.bilibili.com/" + Uid + "/");

                    JObject jObject = JObject.Parse(results);
                    img_bg.ImageSource = new BitmapImage(new Uri("https://i0.hdslb.com/" + jObject["data"]["toutu"]));
                }
                catch (Exception)
                {
                    img_bg.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Img/toutu.png"));
                }

                string url = string.Format("https://app.bilibili.com/x/v2/space?access_key={0}&appkey={1}&build=5250000&from=712&mobi_app=android&platform=android&ps=10&ts={2}&vmid={3}", ApiHelper.AccessKey, ApiHelper.AndroidKey.Appkey, ApiHelper.TimeStamp, Uid);
                url += "&sign=" + ApiHelper.GetSign(url);
                string results1 = await WebClientClass.GetResults(new Uri(url));

                UserInfoModel m = JsonConvert.DeserializeObject <UserInfoModel>(results1);
                if (m.code == 0)
                {
                    if (m.data.relation == 1 && ApiHelper.IsLogin())
                    {
                        btn_AddFollow.Visibility    = Visibility.Collapsed;
                        btn_CancelFollow.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        btn_AddFollow.Visibility    = Visibility.Visible;
                        btn_CancelFollow.Visibility = Visibility.Collapsed;
                    }

                    if (Uid == ApiHelper.GetUserId())
                    {
                        btn_AddFollow.Visibility    = Visibility.Collapsed;
                        btn_CancelFollow.Visibility = Visibility.Collapsed;
                    }

                    if (m.data.season != null && m.data.season.item != null)
                    {
                        DT_0.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        DT_0.Visibility = Visibility.Visible;
                    }

                    if (m.data.card.vip.vipType != 0)
                    {
                        if (m.data.card.vip.vipType == 2)
                        {
                            viptype.Text = "年度大会员";
                        }
                        else
                        {
                            viptype.Text = "大会员";
                        }
                        bor_Vip.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        bor_Vip.Visibility = Visibility.Collapsed;
                    }

                    if (m.data.card.level_info.current_level <= 3)
                    {
                        bor_Level.Background = new SolidColorBrush(new Windows.UI.Color()
                        {
                            R = 48, G = 161, B = 255, A = 200
                        });
                    }
                    else
                    {
                        if (m.data.card.level_info.current_level <= 6)
                        {
                            bor_Level.Background = new SolidColorBrush(new Windows.UI.Color()
                            {
                                R = 255, G = 48, B = 48, A = 200
                            });
                        }
                        else
                        {
                            bor_Level.Background = new SolidColorBrush(new Windows.UI.Color()
                            {
                                R = 255, G = 199, B = 45, A = 200
                            });
                        }
                    }

                    switch (m.data.card.sex)
                    {
                    case "男":
                        ic_female.Visibility = Visibility.Collapsed;
                        ic_gay.Visibility    = Visibility.Collapsed;
                        ic_male.Visibility   = Visibility.Visible;
                        break;

                    case "女":
                        ic_female.Visibility = Visibility.Visible;
                        ic_gay.Visibility    = Visibility.Collapsed;
                        ic_male.Visibility   = Visibility.Collapsed;
                        break;

                    default:
                        ic_female.Visibility = Visibility.Collapsed;
                        ic_gay.Visibility    = Visibility.Visible;
                        ic_male.Visibility   = Visibility.Collapsed;
                        break;
                    }
                    if (m.data.coin_archive != null && m.data.coin_archive.item != null)
                    {
                        list_ACoin.ItemsSource = m.data.coin_archive.item;
                    }
                    info.DataContext          = m.data.card;
                    grid_UserInfo.DataContext = m.data.card;
                    data.DataContext          = m.data;
                }

                user_GridView_FovBox.ItemsSource = await GetUserFovBox();
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("读取用户信息失败", 3000);
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
            }
        }
Example #32
0
        private async void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            if (Send_text_Comment.Text.Length == 0)
            {
                Utils.ShowMessageToast("弹幕内容不能为空!", 2000);
                return;
            }
            if (!ApiHelper.IsLogin())
            {
                Utils.ShowMessageToast("请先登录!", 2000);
                return;
            }
            try
            {
                var url = $"https://api.bilibili.com/x/v2/dm/post?access_key={ApiHelper.access_key}&aid={aid}&appkey={ApiHelper.AndroidKey.Appkey}&build={ApiHelper.build}&mobi_app=android&oid={cid}&platform=android&ts={ApiHelper.GetTimeSpan}";
                url += "&sign=" + ApiHelper.GetSign(url);

                Uri ReUri   = new Uri(url);
                int modeInt = 1;
                if (Send_cb_Mode.SelectedIndex == 2)
                {
                    modeInt = 4;
                }
                if (Send_cb_Mode.SelectedIndex == 1)
                {
                    modeInt = 5;
                }
                string data = $"pool=0&rnd={ApiHelper.GetTimeSpan}&oid={cid}&fontsize=25&msg={Uri.EscapeDataString(Send_text_Comment.Text)}&mode={modeInt}&progress={position}&color={ ((ComboBoxItem)Send_cb_Color.SelectedItem).Tag}&plat=2&screen_state=0&from=861&type=1";
                //string data = string.Format("playTime={0}&pool=0&color={1}&screen_state=1&rnd={2}&from=0&type=json&msg={3}&cid={4}&fontsize=25&mode={5}&mid={6}",
                //    position,
                //    ((ComboBoxItem)Send_cb_Color.SelectedItem).Tag,
                //    new Random().Next(1, 99999999),
                //    Uri.EscapeDataString(Send_text_Comment.Text),
                //    cid, modeInt, ApiHelper.GetUserId()
                //    );

                //string Canshu = "message=" + Send_text_Comment.Text + "&pool=0&playTime=" + mediaElement.Position.TotalSeconds.ToString() + "&cid=" + playNow.Mid + "&date=" + DateTime.Now.ToString() + "&fontsize=25&mode=" + modeInt + "&rnd=" + new Random().Next(100000000, 999999999) + "&color=" + ((ComboBoxItem)Send_cb_Color.SelectedItem).Tag;
                string result = await WebClientClass.PostResults(ReUri, data);

                var obj = JObject.Parse(result);

                if (Convert.ToInt32(obj["code"].ToString()) != 0)
                {
                    Utils.ShowMessageToast("弹幕发送失败" + obj["message"].ToString(), 3000);
                }
                else
                {
                    if (DanmakuSended != null)
                    {
                        DanmakuSended(this, new SendDanmakuModel()
                        {
                            location = modeInt,
                            color    = ((ComboBoxItem)Send_cb_Color.SelectedItem).Tag.ToString(),
                            text     = Send_text_Comment.Text
                        });
                    }
                    Utils.ShowMessageToast("弹幕成功发射", 3000);

                    Send_text_Comment.Text = string.Empty;
                }
            }
            catch (Exception ex)
            {
                Utils.ShowMessageToast("发送弹幕发生错误!\r\n" + ex.HResult, 3000);
            }
        }
Example #33
0
        private async void GetInfo()
        {
            try
            {
                canLoad            = false;
                pr_load.Visibility = Visibility.Visible;
                wc = new WebClientClass();
                string url = "http://bangumi.bilibili.com/web_api/season/index?page=" + PageNum + "&pagesize=" + 30;
                url += "&version" + DHLX;
                url += "&is_finish=" + ZT;
                //url += "&is_finish=" + ZT;
                url += "&update_period=" + GXSJ;
                if (DQ.Length != 0)
                {
                    url += "&area=" + DQ;
                }
                if (FG.Length != 0)
                {
                    url += "&tag_id=" + FG;
                }
                if (NF.Length != 0)
                {
                    url += "&start_year=" + NF;
                }
                url += "&index_type=" + index_type.ToString();
                //url += "&index_sort=" + index_sort.ToString();

                string results = await wc.GetResults(new Uri(url));

                ALLBangumiModel all = JsonConvert.DeserializeObject <ALLBangumiModel>(results);
                if (all.code == 0)
                {
                    if (all.result.list.Count != 0)
                    {
                        foreach (var item in all.result.list)
                        {
                            items.Items.Add(item);
                        }
                        PageNum++;
                    }
                    else
                    {
                        messShow.Show("没有结果了", 2000);
                    }
                }
                else
                {
                    messShow.Show(all.message, 2000);
                }
            }
            catch (Exception ex)
            {
                messShow.Show("发生错误" + ex.Message, 2000);
                //throw;
            }
            finally
            {
                canLoad            = true;
                pr_load.Visibility = Visibility.Collapsed;
            }
        }
        private async void GetUserInfo()
        {
            try
            {
                pr_Load.Visibility = Visibility.Visible;
                string results = await WebClientClass.PostResults(new Uri("http://space.bilibili.com/ajax/member/GetInfo"), "mid=" + Uid + "&_=" + ApiHelper.GetTimeSpan_2, "http://space.bilibili.com/" + Uid + "/");

                UserModel um = JsonConvert.DeserializeObject <UserModel>(results);



                if (um.status)
                {
                    info.DataContext          = um.data;
                    grid_UserInfo.DataContext = um.data;

                    if (um.data.approve)
                    {
                        if (um.data.official_verify.type != -1)
                        {
                            txt_RZ.Text = um.data.official_verify.desc;
                        }
                        txt_RZ.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        txt_RZ.Visibility = Visibility.Collapsed;
                    }

                    if (um.data.level_info.current_level <= 3)
                    {
                        bor_Level.Background = new SolidColorBrush(new Windows.UI.Color()
                        {
                            R = 48, G = 161, B = 255, A = 200
                        });
                    }
                    else
                    {
                        if (um.data.current_level <= 6)
                        {
                            bor_Level.Background = new SolidColorBrush(new Windows.UI.Color()
                            {
                                R = 255, G = 48, B = 48, A = 200
                            });
                        }
                        else
                        {
                            bor_Level.Background = new SolidColorBrush(new Windows.UI.Color()
                            {
                                R = 255, G = 199, B = 45, A = 200
                            });
                        }
                    }
                }
                else
                {
                    messShow.Show("读取用户信息失败", 3000);
                }

                string url = string.Format("http://app.bilibili.com/x/v2/space?access_key={0}&appkey={1}&platform=wp&ps=10&ts={2}000&vmid={3}&build=411005&mobi_app=android", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpan, Uid);

                url += "&sign=" + ApiHelper.GetSign(url);
                string results1 = await WebClientClass.GetResults(new Uri(url));

                UserInfoModel m = JsonConvert.DeserializeObject <UserInfoModel>(results1);
                if (m.code == 0)
                {
                    if (m.data.season != null && m.data.season.item != null)
                    {
                        DT_0.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        DT_0.Visibility = Visibility.Visible;
                    }

                    if (m.data.card.vip.vipType != 0)
                    {
                        bor_Vip.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        bor_Vip.Visibility = Visibility.Collapsed;
                    }
                    if (m.data.coin_archive != null && m.data.coin_archive.item != null)
                    {
                        list_ACoin.ItemsSource = m.data.coin_archive.item;
                    }

                    data.DataContext = m.data;
                }
            }
            catch (Exception)
            {
                messShow.Show("读取用户信息失败", 3000);
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
            }
        }
        private async void btn_concern_Click(object sender, RoutedEventArgs e)
        {
            UserClass getLogin = new UserClass();
            wc = new WebClientClass();
            if (getLogin.IsLogin())
            {
                try
                {
                    if (btn_concern.Label == "订阅")
                    {
                        //http://www.bilibili.com/api_proxy?app=bangumi&action=/concern_season&season_id=779
                        string results = await wc.GetResults(new Uri("http://www.bilibili.com/api_proxy?app=bangumi&action=/concern_season&season_id=" + banID));
                        JObject json = JObject.Parse(results);
                        if ((int)json["code"] == 0)
                        {
                            font_icon.Glyph = "\uE00B";
                            btn_concern.Label = "取消订阅";
                            messShow.Show("订阅成功!", 3000);
                            //MessageDialog md = new MessageDialog("订阅成功!");
                            //  await md.ShowAsync();

                        }
                        else
                        {
                            messShow.Show("订阅失败!", 3000);
                        }
                    }
                    else
                    {
                        //http://www.bilibili.com/api_proxy?app=bangumi&action=/concern_season&season_id=779

                        string results = await wc.GetResults(new Uri("http://www.bilibili.com/api_proxy?app=bangumi&action=/unconcern_season&season_id=" + banID));
                        JObject json = JObject.Parse(results);
                        if ((int)json["code"] == 0)
                        {
                            font_icon.Glyph = "\uE006";
                            btn_concern.Label = "订阅";
                            messShow.Show("取消订阅成功!", 3000);
                            
                        }
                        else
                        {
                            messShow.Show("取消订阅失败!", 3000);
                        }
                    }
                }
                catch (Exception)
                {
                    MessageDialog md = new MessageDialog("订阅操作失败!");

                    await md.ShowAsync();
                }
            }
            else
            {
                MessageDialog md = new MessageDialog("先登录好伐", "(´・ω・`) ");
                await md.ShowAsync();
            }
        }
Example #36
0
        private async void GetComment()
        {
            if (_page == 1)
            {
                noRepost.Visibility    = Visibility.Collapsed;
                closeRepost.Visibility = Visibility.Collapsed;
                ls_hot.ItemsSource     = null;
                ls_new.ItemsSource     = null;
            }
            try
            {
                btn_HotSort.Visibility = Visibility.Collapsed;
                var sort = 0;
                if (_loadCommentInfo.conmmentSortMode == ConmmentSortMode.Hot)
                {
                    sort = 2;
                }

                btn_LoadMore.Visibility = Visibility.Collapsed;
                _loading           = true;
                pr_load.Visibility = Visibility.Visible;
                ObservableCollection <CommentModel> ls = new ObservableCollection <CommentModel>();
                var url = string.Format("https://api.bilibili.com/x/v2/reply?access_key={0}&appkey={1}&build={7}&mobi_app=android&oid={2}&plat=2&platform=android&pn={3}&ps=20&sort={6}&ts={4}&type={5}",
                                        ApiHelper.access_key, ApiHelper._appKey, _loadCommentInfo.oid, _page, ApiHelper.GetTimeSpan_2, _type, sort, ApiHelper.build);
                url += "&sign=" + ApiHelper.GetSign(url);

                //var url = "https://api.bilibili.com/x/v2/reply?oid=2381475&plat=2&pn=1&ps=20&sort=0&type=11";

                var re = await WebClientClass.GetResults(new Uri(url));

                dataCommentModel m = JsonConvert.DeserializeObject <dataCommentModel>(re);
                if (m.code == 0)
                {
                    if (m.data.hots == null || m.data.hots.Count == 0 || _loadCommentInfo.conmmentSortMode != ConmmentSortMode.All)
                    {
                        hot.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        hot.Visibility = Visibility.Visible;
                    }

                    if (m.data.replies.Count != 0)
                    {
                        if (_page == 1)
                        {
                            if (m.data.upper.top != null)
                            {
                                m.data.upper.top.showTop = Visibility.Visible;
                                m.data.hots.Insert(0, m.data.upper.top);
                            }
                            ls_hot.ItemsSource = m.data.hots;
                            ls_new.ItemsSource = m.data.replies;
                        }
                        else
                        {
                            foreach (var item in m.data.replies)
                            {
                                (ls_new.ItemsSource as ObservableCollection <CommentModel>).Add(item);
                            }
                        }
                        _page++;

                        if (m.data.replies.Count >= 20)
                        {
                            btn_LoadMore.Visibility = Visibility.Visible;
                        }
                    }
                    else
                    {
                        if (_page == 1)
                        {
                            noRepost.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            Utils.ShowMessageToast("全部加载完了...");
                        }
                    }
                }
                else
                {
                    if (m.code == 12002)
                    {
                        closeRepost.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        Utils.ShowMessageToast(m.message);
                    }
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("加载评论失败");
                //throw;
            }
            finally
            {
                _loading           = false;
                pr_load.Visibility = Visibility.Collapsed;
                if (_loadCommentInfo.conmmentSortMode == ConmmentSortMode.All)
                {
                    btn_HotSort.Visibility = Visibility.Visible;
                }
            }
        }
 private async void GetNotify()
 {
     try
     {
         wc = new WebClientClass();
         //http://message.bilibili.com/api/notify/query.sysnotify.list.do?_device=android&_hwid=68fc5d795c256cd1&_ulv=10000&access_key=a36a84cc8ef4ea2f92c416951c859a25&actionKey=appkey&appkey=c1b107428d337928&build=414000&data_type=1&page_size=40&platform=android&ts=1461404973000&sign=fc3b4e26348a1204e2064e7712d10179
         string url = string.Format("http://message.bilibili.com/api/notify//query.sysnotify.list.do?_device=wp&&_ulv=10000&access_key={0}&actionKey=appkey&appkey={1}&build=410005&data_type=1&page_size=40&platform=android&ts={2}", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpen);
         url += "&sign=" + ApiHelper.GetSign(url);
         string results = await wc.GetResults(new Uri(url));
         MessageReplyModel model = JsonConvert.DeserializeObject<MessageReplyModel>(results);
         if (model.code == 0)
         {
             List<MessageReplyModel> list = JsonConvert.DeserializeObject<List<MessageReplyModel>>(model.data.ToString());
             list_Notify.ItemsSource = list;
         }
         else
         {
             messShow.Show("读取失败" + model.message, 3000);
         }
     }
     catch (Exception)
     {
         messShow.Show("读取失败", 3000);
     }
     
 }
Example #38
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="captcha">验证码</param>
        /// <returns></returns>
        public async Task <LoginCallbackModel> LoginV2(string username, string password, string captcha = null)
        {
            try
            {
                string url  = "https://passport.bilibili.com/api/oauth2/login";
                string data = $"appkey={ApiHelper.AndroidKey.Appkey}&build={ApiHelper.build}&mobi_app=android&password={Uri.EscapeDataString(await EncryptedPassword(password))}&platform=android&ts={ApiHelper.GetTimeSpan}&username={Uri.EscapeDataString(username)}";
                if (!string.IsNullOrEmpty(captcha))
                {
                    data += "&captcha=" + captcha;
                }
                data += "&sign=" + ApiHelper.GetSign(data);
                var results = await WebClientClass.PostResults(new Uri(url), data);

                var m = JsonConvert.DeserializeObject <AccountLoginModel>(results);
                if (m.code == 0)
                {
                    SettingHelper.Set_Access_key(m.data.access_token);
                    SettingHelper.Set_Refresh_Token(m.data.refresh_token);
                    SettingHelper.Set_LoginExpires(DateTime.Now.AddSeconds(m.data.expires_in));
                    SettingHelper.Set_UserID(m.data.mid);
                    //foreach (var item in m.data.sso)
                    //{
                    await SSO(m.data.access_token);

                    //}
                    MessageCenter.SendLogined();
                    return(new LoginCallbackModel()
                    {
                        status = LoginStatus.Success,
                        message = "登录成功"
                    });
                }
                else if (m.code == -2100)
                {
                    return(new LoginCallbackModel()
                    {
                        status = LoginStatus.NeedValidate,
                        url = m.url,
                        message = "登录需要验证"
                    });
                }
                else if (m.code == -105)
                {
                    return(new LoginCallbackModel()
                    {
                        status = LoginStatus.NeedCaptcha,
                        message = "登录需要验证码"
                    });
                }
                else
                {
                    return(new LoginCallbackModel()
                    {
                        status = LoginStatus.Fail,
                        message = m.message
                    });
                }
            }
            catch (Exception ex)
            {
                return(new LoginCallbackModel()
                {
                    status = LoginStatus.Error,
                    message = "登录出现小问题,请重试"
                });
            }
        }
Example #39
0
        public async void GetBangumiInfo(string banID)
        {
            //string uri = "http://bangumi.bilibili.com/api/season?_device=wp&_ulv=10000&build=411005&platform=android&appkey=422fd9d7289a1dd9&ts="+APIHelper.GetTimeSpen+ "000&type=sp&sp_id=56719";
            //string sign=  APIHelper.GetSign(uri);
            //uri += "&sign=" + sign;
            try
            {
                pr_load.Visibility = Visibility.Visible;
                wc = new WebClientClass();
                string uri = "";
                uri  = string.Format("http://bangumi.bilibili.com/api/season?_device=wp&access_key={2}&_ulv=10000&build=411005&platform=android&appkey=422fd9d7289a1dd9&ts={0}000&type=bangumi&season_id={1}", ApiHelper.GetTimeSpen, banID, ApiHelper.access_key);
                uri += "&sign=" + ApiHelper.GetSign(uri);
                string result = await wc.GetResults(new Uri(uri));

                BangumiInfoModel model = new BangumiInfoModel();
                if ((int)JObject.Parse(result)["code"] == 0)
                {
                    model = JsonConvert.DeserializeObject <BangumiInfoModel>(JObject.Parse(result)["result"].ToString());
                    grid_Info.DataContext = model;
                    BangumiInfoModel m = JsonConvert.DeserializeObject <BangumiInfoModel>(model.user_season.ToString());
                    if (m.attention == 0)
                    {
                        font_icon.Glyph   = "\uE006";
                        btn_concern.Label = "订阅";
                    }
                    else
                    {
                        font_icon.Glyph   = "\uE00B";
                        btn_concern.Label = "取消订阅";
                    }

                    List <BangumiInfoModel> list  = JsonConvert.DeserializeObject <List <BangumiInfoModel> >(model.episodes.ToString());
                    List <BangumiInfoModel> list2 = new List <BangumiInfoModel>();
                    for (int i = 0; i < list.Count; i++)
                    {
                        list[i].Num = i;
                        list2.Add(list[i]);
                        if (DownloadManage.Downloaded.Contains(list[i].danmaku.ToString()))
                        {
                            list[i].inLocal = true;
                        }
                    }
                    list_E.ItemsSource = list2;
                    List <BangumiInfoModel> list_CV = JsonConvert.DeserializeObject <List <BangumiInfoModel> >(model.actor.ToString());
                    txt_CV.Text = "";
                    foreach (BangumiInfoModel item in list_CV)
                    {
                        txt_CV.Text += string.Format("{0}:{1}\r\n", item.role, item.actor);
                    }
                    List <BangumiInfoModel> list_Tag = JsonConvert.DeserializeObject <List <BangumiInfoModel> >(model.tags.ToString());
                    Grid_tag.Children.Clear();
                    foreach (BangumiInfoModel item in list_Tag)
                    {
                        HyperlinkButton btn = new HyperlinkButton();
                        btn.DataContext = item;
                        btn.Margin      = new Thickness(0, 0, 10, 0);
                        btn.Content     = item.tag_name;
                        btn.Click      += Btn_Click;
                        Grid_tag.Children.Add(btn);
                    }
                }
                if ((int)JObject.Parse(result)["code"] == -3)
                {
                    messShow.Show("密钥注册失败,请联系作者", 3000);
                }
                if ((int)JObject.Parse(result)["code"] == 10)
                {
                    messShow.Show(JObject.Parse(result)["message"].ToString(), 3000);
                }
            }
            catch (Exception ex)
            {
                messShow.Show("发生错误\r\n" + ex.Message, 3000);
            }
            finally
            {
                pr_load.Visibility = Visibility.Collapsed;
            }
        }
Example #40
0
        private async void SendDynamic()
        {
            if (txt_Comment.Text.Trim().Length == 0)
            {
                Utils.ShowMessageToast("不能发送空白动态");
            }

            var ctrl    = "[]";
            var at_uids = "";

            atlist.Clear();
            var txt = txt_Comment.Text;

            if (atDisplaylist.Count != 0)
            {
                foreach (var item in atDisplaylist)
                {
                    if (txt.Contains(item.text))
                    {
                        atlist.Add(new AtModel()
                        {
                            data     = item.data.ToString(),
                            length   = item.length - 2,
                            location = txt.IndexOf(item.text),
                            type     = 1
                        });
                        var d = item.text.Replace("[", "").Replace("]", "");
                        txt      = txt.Replace(item.text, d);
                        at_uids += item.data.ToString() + ",";
                    }
                }
                ctrl    = JsonConvert.SerializeObject(atlist);
                at_uids = at_uids.Remove(at_uids.Length - 1, 1);
                atDisplaylist.Clear();
            }

            List <SendImagesModel> send_pics = new List <SendImagesModel>();

            foreach (var item in imgs)
            {
                send_pics.Add(new SendImagesModel()
                {
                    img_height = item.image_height,
                    img_size   = item.image_size,
                    img_src    = item.image_url,
                    img_width  = item.image_width
                });
            }
            var    imgStr  = JsonConvert.SerializeObject(send_pics);
            string setting = "{\"copy_forbidden\":0}";

            try
            {
                string url = string.Format("http://api.vc.bilibili.com/link_draw/v1/doc/create?access_key={0}&appkey={1}&build=5250000&platform=android&src=bilih5&ts={2}", ApiHelper.access_key, ApiHelper.AndroidKey.Appkey, ApiHelper.GetTimeSpan_2);
                url += "&sign" + ApiHelper.GetSign(url);
                string content = "category=3&pictures={0}&description={1}&setting={2}&at_uids={3}&at_control={4}&jumpfrom=110";

                content = string.Format(content, Uri.EscapeDataString(imgStr), Uri.EscapeDataString(txt), Uri.EscapeDataString(setting), at_uids, Uri.EscapeDataString(ctrl));

                var re = await WebClientClass.PostResultsUtf8(new Uri(url), content);

                Newtonsoft.Json.Linq.JObject obj = JObject.Parse(re);
                if (obj["code"].ToInt32() == 0)
                {
                    SendState = true;
                    Utils.ShowMessageToast("发表动态成功");
                    this.Hide();
                }
                else
                {
                    SendState = false;
                    Utils.ShowMessageToast("发表动态失败" + obj["message"].ToString());
                }
            }
            catch (Exception)
            {
                SendState = false;
                Utils.ShowMessageToast("发表动态发生错误");
            }
        }
        //时间表
        public async void GetBangumiTimeLine()
        {
            try
            {
                pr_Load_Ban.Visibility = Visibility.Visible;
                WebClientClass wc      = new WebClientClass();
                string         results = await wc.GetResults(new Uri("http://app.bilibili.com/bangumi/timeline_v2"));

                BangumiTimeLineModel model = new BangumiTimeLineModel();
                model = JsonConvert.DeserializeObject <BangumiTimeLineModel>(results);
                List <BangumiTimeLineModel> ban = JsonConvert.DeserializeObject <List <BangumiTimeLineModel> >(model.list.ToString());
                list_0.Items.Clear();
                list_1.Items.Clear();
                list_2.Items.Clear();
                list_3.Items.Clear();
                list_4.Items.Clear();
                list_5.Items.Clear();
                list_6.Items.Clear();
                list_7.Items.Clear();
                foreach (BangumiTimeLineModel item in ban)
                {
                    switch (item.weekday)
                    {
                    case -1:
                        list_7.Items.Add(item);
                        break;

                    case 0:
                        switch (taday)
                        {
                        case 0:
                            list_0.Items.Add(item);
                            break;

                        case 1:
                            list_1.Items.Add(item);
                            break;

                        case 2:
                            list_2.Items.Add(item);
                            break;

                        case 3:
                            list_3.Items.Add(item);
                            break;

                        case 4:
                            list_4.Items.Add(item);
                            break;

                        case 5:
                            list_5.Items.Add(item);
                            break;

                        case 6:
                            list_6.Items.Add(item);
                            break;

                        default:
                            break;
                        }
                        break;

                    case 1:
                        switch (taday)
                        {
                        case 1:
                            list_0.Items.Add(item);
                            break;

                        case 2:
                            list_1.Items.Add(item);
                            break;

                        case 3:
                            list_2.Items.Add(item);
                            break;

                        case 4:
                            list_3.Items.Add(item);
                            break;

                        case 5:
                            list_4.Items.Add(item);
                            break;

                        case 6:
                            list_5.Items.Add(item);
                            break;

                        case 0:
                            list_6.Items.Add(item);
                            break;

                        default:
                            break;
                        }
                        break;

                    case 2:
                        switch (taday)
                        {
                        case 2:
                            list_0.Items.Add(item);
                            break;

                        case 3:
                            list_1.Items.Add(item);
                            break;

                        case 4:
                            list_2.Items.Add(item);
                            break;

                        case 5:
                            list_3.Items.Add(item);
                            break;

                        case 6:
                            list_4.Items.Add(item);
                            break;

                        case 0:
                            list_5.Items.Add(item);
                            break;

                        case 1:
                            list_6.Items.Add(item);
                            break;

                        default:
                            break;
                        }
                        break;

                    case 3:
                        switch (taday)
                        {
                        case 3:
                            list_0.Items.Add(item);
                            break;

                        case 4:
                            list_1.Items.Add(item);
                            break;

                        case 5:
                            list_2.Items.Add(item);
                            break;

                        case 6:
                            list_3.Items.Add(item);
                            break;

                        case 0:
                            list_4.Items.Add(item);
                            break;

                        case 1:
                            list_5.Items.Add(item);
                            break;

                        case 2:
                            list_6.Items.Add(item);
                            break;

                        default:
                            break;
                        }
                        break;

                    case 4:
                        switch (taday)
                        {
                        case 4:
                            list_0.Items.Add(item);
                            break;

                        case 5:
                            list_1.Items.Add(item);
                            break;

                        case 6:
                            list_2.Items.Add(item);
                            break;

                        case 0:
                            list_3.Items.Add(item);
                            break;

                        case 1:
                            list_4.Items.Add(item);
                            break;

                        case 2:
                            list_5.Items.Add(item);
                            break;

                        case 3:
                            list_6.Items.Add(item);
                            break;

                        default:
                            break;
                        }
                        break;

                    case 5:
                        switch (taday)
                        {
                        case 5:
                            list_0.Items.Add(item);
                            break;

                        case 6:
                            list_1.Items.Add(item);
                            break;

                        case 0:
                            list_2.Items.Add(item);
                            break;

                        case 1:
                            list_3.Items.Add(item);
                            break;

                        case 2:
                            list_4.Items.Add(item);
                            break;

                        case 3:
                            list_5.Items.Add(item);
                            break;

                        case 4:
                            list_6.Items.Add(item);
                            break;

                        default:
                            break;
                        }
                        break;

                    case 6:
                        switch (taday)
                        {
                        case 6:
                            list_0.Items.Add(item);
                            break;

                        case 0:
                            list_1.Items.Add(item);
                            break;

                        case 1:
                            list_2.Items.Add(item);
                            break;

                        case 2:
                            list_3.Items.Add(item);
                            break;

                        case 3:
                            list_4.Items.Add(item);
                            break;

                        case 4:
                            list_5.Items.Add(item);
                            break;

                        case 5:
                            list_6.Items.Add(item);
                            break;

                        default:
                            break;
                        }
                        break;

                    default:
                        break;
                    }
                }
                pr_Load_Ban.Visibility = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                MessageDialog md = new MessageDialog("读取番剧更新失败\r\n" + ex.Message);
                await md.ShowAsync();
            }
        }
Example #42
0
        private async void LoadRepost()
        {
            //_data
            try
            {
                _repostLoading                = true;
                pr_Load.Visibility            = Visibility.Visible;
                noRepost.Visibility           = Visibility.Collapsed;
                btn_LoadMoreRepost.Visibility = Visibility.Collapsed;

                string offset = "0";
                if (ls_repost.Items.Count != 0)
                {
                    offset = ls_repost.Items.Count.ToString();
                }
                string url = "https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/view_repost";

                string content = string.Format("_device=android&access_key={0}&appkey={1}&build=5250000&dynamic_id={2}&mobi_app=android&offset={5}&platform=android&src=bilih5&ts={3}&uid={4}",
                                               ApiHelper.AccessKey, ApiHelper.AndroidKey.Appkey, _data.desc.dynamic_id, ApiHelper.TimeStamp2, ApiHelper.GetUserId(), offset);
                content += "&sign=" + ApiHelper.GetSign(content);
                var re = await WebClientClass.PostResultsUtf8(new Uri(url), content);

                JObject obj = JObject.Parse(re);
                if (obj["code"].ToInt32() == 0)
                {
                    if (obj["data"]["comments"] == null)
                    {
                        if (ls_repost.Items.Count != 0)
                        {
                            Utils.ShowMessageToast("没有更多转发了");
                        }
                        else
                        {
                            noRepost.Visibility = Visibility.Visible;
                        }
                        return;
                    }

                    ObservableCollection <RepostModel> ls = Newtonsoft.Json.JsonConvert.DeserializeObject <ObservableCollection <RepostModel> >(obj["data"]["comments"].ToString());
                    if (ls_repost.Items.Count == 0)
                    {
                        ls_repost.ItemsSource = ls;
                    }
                    else
                    {
                        ls.ToList().ForEach(x => (ls_repost.ItemsSource as ObservableCollection <RepostModel>).Add(x));
                    }
                    btn_LoadMoreRepost.Visibility = Visibility.Visible;


                    _data.desc.repost = obj["data"]["total_count"].ToInt32();
                }
                else
                {
                    Utils.ShowMessageToast(obj["message"].ToString());
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("无法读取转发信息");
            }
            finally
            {
                pr_Load.Visibility  = Visibility.Collapsed;
                pivot.SelectedIndex = 0;
                _repostLoading      = false;
            }
        }
        private async void LoadSongs()
        {
            try
            {
                loading                 = true;
                pr_load.Visibility      = Visibility.Visible;
                btn_LoadMore.Visibility = Visibility.Collapsed;
                int cate1id = _selectCategroies.parentId;
                int cate2id = _selectCategroies.cateId;

                if (_page == 1)
                {
                    list_songs.ItemsSource = null;
                }
                string url = string.Format("https://api.bilibili.com/audio/music-service-c/songs/getcatesongslist?access_key={0}&appkey={1}&build=5250000&cate1id={2}&cate2id={3}&mid={4}&mobi_app=android&pageIndex={5}&pageSize=20&platform=android&sortBy={6}&ts={7}",
                                           ApiHelper.access_key, ApiHelper.AndroidKey.Appkey, cate1id, cate2id, ApiHelper.GetUserId(), _page, _sort, ApiHelper.GetTimeSpan);

                url += "&sign=" + ApiHelper.GetSign(url);
                var results = await WebClientClass.GetResults(new Uri(url));

                MusicCateSongsModel obj = JsonConvert.DeserializeObject <MusicCateSongsModel>(results);

                if (obj.code == 0)
                {
                    if (obj.data.list != null && obj.data.list.Count != 0)
                    {
                        if (_page == 1)
                        {
                            list_songs.ItemsSource = obj.data.list;
                        }
                        else
                        {
                            var ls = list_songs.ItemsSource as ObservableCollection <MusicHomeSongModel>;
                            foreach (var item in obj.data.list)
                            {
                                ls.Add(item);
                            }
                        }
                        btn_LoadMore.Visibility = Visibility.Visible;
                        _page++;
                    }
                    else
                    {
                        Utils.ShowMessageToast("加载完了");
                    }
                }
                else
                {
                    Utils.ShowMessageToast(obj.msg);
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("加载歌曲失败");
            }
            finally
            {
                loading            = false;
                pr_load.Visibility = Visibility.Collapsed;
            }
        }
Example #44
0
        /// <summary>
        /// 登录V3版本,由于Edge未能很好支持Webp格式图片,会出现无法显示拼图验证码问题
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="captcha">验证码</param>
        /// <returns></returns>
        public async Task <LoginCallbackModel> LoginV3(string username, string password)
        {
            try
            {
                string url = "https://passport.bilibili.com/api/v3/oauth2/login";
                var    pwd = Uri.EscapeDataString(await EncryptedPassword(password));

                string data = $"username={username}&password={pwd}&gee_type=10&appkey={ApiHelper.AndroidKey.Appkey}&mobi_app=android_comic&platform=android&ts={ApiHelper.GetTimeSpan}";
                data += "&sign=" + ApiHelper.GetSign(data);
                var results = await WebClientClass.PostResults(new Uri(url), data);

                var m = JsonConvert.DeserializeObject <AccountLoginModel>(results);
                if (m.code == 0)
                {
                    if (m.data.status == 0)
                    {
                        SettingHelper.Set_Access_key(m.data.token_info.access_token);
                        SettingHelper.Set_Refresh_Token(m.data.token_info.refresh_token);
                        SettingHelper.Set_LoginExpires(DateTime.Now.AddSeconds(m.data.token_info.expires_in));
                        SettingHelper.Set_UserID(m.data.token_info.mid);
                        //foreach (var item in m.data.sso)
                        //{
                        await SSO(m.data.token_info.access_token);

                        //}
                        MessageCenter.SendLogined();
                        return(new LoginCallbackModel()
                        {
                            status = LoginStatus.Success,
                            message = "登录成功"
                        });
                    }
                    if (m.data.status == 1)
                    {
                        return(new LoginCallbackModel()
                        {
                            status = LoginStatus.NeedValidate,
                            message = "本次登录需要安全验证",
                            url = m.data.url
                        });
                    }

                    return(new LoginCallbackModel()
                    {
                        status = LoginStatus.Fail,
                        message = m.message
                    });
                }
                else if (m.code == -105)
                {
                    return(new LoginCallbackModel()
                    {
                        status = LoginStatus.NeedCaptcha,
                        url = m.data.url,
                        message = "登录需要验证码"
                    });
                }
                else
                {
                    return(new LoginCallbackModel()
                    {
                        status = LoginStatus.Fail,
                        message = m.message
                    });
                }
            }
            catch (Exception ex)
            {
                return(new LoginCallbackModel()
                {
                    status = LoginStatus.Error,
                    message = "登录出现小问题,请重试"
                });
            }
        }
Example #45
0
        /// <summary>
        /// 使用biliplus的接口,支持番剧/视频
        /// 需要授权
        /// </summary>
        /// <param name="model"></param>
        /// <param name="qn"></param>
        /// <returns></returns>
        public static async Task <ReturnPlayModel> GetBiliPlusUrl(string cid, int qn, string referer)
        {
            try
            {
                string url = "https://www.biliplus.com/BPplayurl.php?cid=" + cid + $"&otype=json&type=&quality={qn}&module=bangumi&season_type=1&qn={qn}&access_key={ApiHelper.access_key}";
                Dictionary <string, string> header = new Dictionary <string, string>();
                if (SettingHelper.Get_BiliplusCookie() != "")
                {
                    header.Add("Cookie", SettingHelper.Get_BiliplusCookie());
                }

                string re = await WebClientClass.GetResults(new Uri(url));

                FlvPlyaerUrlModel m = JsonConvert.DeserializeObject <FlvPlyaerUrlModel>(re);
                if (m.code == 0)
                {
                    List <string> urls     = new List <string>();
                    var           playList = new SYEngine.Playlist(SYEngine.PlaylistTypes.NetworkHttp);
                    foreach (var item in m.durl)
                    {
                        urls.Add(item.url);
                        playList.Append(item.url, item.size, item.length / 1000);
                    }
                    playList.NetworkConfigs = CreatePlaylistNetworkConfigs(referer);
                    return(new ReturnPlayModel()
                    {
                        playlist = playList,
                        usePlayMode = UsePlayMode.SYEngine,
                        urls = urls,
                        from = "biliplus"
                    });
                }
                else if (m.code == -403)
                {
                    if (ApiHelper.IsLogin())
                    {
                        ReturnPlayModel returnPlayModel = null;
                        MessageDialog   messageDialog   = new MessageDialog("读取视频地址失败了,是否授权Biliplus后再试一次?");
                        messageDialog.Commands.Add(new UICommand("授权", async(e) => {
                            var bp = await Account.AuthBiliPlus();
                            if (bp != "")
                            {
                                returnPlayModel = await GetBiliPlusUrl(cid, qn, referer);
                            }
                            else
                            {
                                Utils.ShowMessageToast("授权失败了");
                            }
                        }));
                        messageDialog.Commands.Add(new UICommand("取消"));
                        await messageDialog.ShowAsync();

                        return(returnPlayModel);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }
 private async void PostHistory(string aid)
 {
     try
     {
         WebClientClass wc = new WebClientClass();
         string url = string.Format("http://api.bilibili.com/x/history/add?_device=wp&_ulv=10000&access_key={0}&appkey={1}&build=411005&platform=android", ApiHelper.access_key, ApiHelper._appKey);
         url += "&sign=" + ApiHelper.GetSign(url);
         string result = await wc.PostResults(new Uri(url), "aid=" + aid);
     }
     catch (Exception)
     {
     }
 }
Example #47
0
        public static async Task<string> LoginBilibili(string UserName, string Password)
        {
            try
            {
                //发送第一次请求,得到access_key
                WebClientClass wc = new WebClientClass();
                string results =await wc.GetResults(new Uri("https://api.bilibili.com/login?appkey=422fd9d7289a1dd9&platform=wp&pwd=" +WebUtility.UrlEncode(Password) + "&type=json&userid=" + WebUtility.UrlEncode(UserName)));
                //Json解析及数据判断
                LoginModel model = new LoginModel();
                model = JsonConvert.DeserializeObject<LoginModel>(results);
                if (model.code == -627)
                {
                    return "登录失败,密码错误!";
                }
                if (model.code == -626)
                {
                    return "登录失败,账号不存在!";
                }
                if (model.code == -625)
                {
                    return "密码错误多次";
                }
                if (model.code==-628)
                {
                    return "未知错误";
                }
                if (model.code == -1)
                {
                    return "登录失败,程序注册失败!请联系作者!";
                }
                Windows.Web.Http.HttpClient hc = new Windows.Web.Http.HttpClient();
                if (model.code == 0)
                {
                    access_key = model.access_key;
                    Windows.Web.Http.HttpResponseMessage hr2 = await hc.GetAsync(new Uri("http://api.bilibili.com/login/sso?&access_key=" + model.access_key + "&appkey=422fd9d7289a1dd9&platform=wp"));
                    hr2.EnsureSuccessStatusCode();
                    StorageFolder folder = ApplicationData.Current.LocalFolder;
                    StorageFile file = await folder.CreateFileAsync("us.bili", CreationCollisionOption.OpenIfExists);
                    await FileIO.WriteTextAsync(file, model.access_key);
                }
                //看看存不存在Cookie
                HttpBaseProtocolFilter hb = new HttpBaseProtocolFilter();
                HttpCookieCollection cookieCollection = hb.CookieManager.GetCookies(new Uri("http://bilibili.com/"));
                List<string> ls = new List<string>();
                foreach (HttpCookie item in cookieCollection)
                {
                    ls.Add(item.Name);
                }
                if (ls.Contains("DedeUserID"))
                {
                    return "登录成功";
                }
                else
                {
                    return "登录失败";
                }
            }
            catch (Exception)
            {
                return "登录发生错误";
            }

        }
Example #48
0
 protected override void OnNavigatedFrom(NavigationEventArgs e)
 {
     wc = null;
 }
 private async void GetReply()
 {
     try
     {
         wc = new WebClientClass();
         string url = string.Format("http://message.bilibili.com/api/notify/query.replyme.list.do?_device=wp&&_ulv=10000&access_key={0}&actionKey=appkey&appkey={1}&build=410005&data_type=1&page_size=40&platform=android&ts={2}", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpen);
         url += "&sign=" + ApiHelper.GetSign(url);
         string results = await wc.GetResults(new Uri(url));
         MessageReplyModel model = JsonConvert.DeserializeObject<MessageReplyModel>(results);
         if (model.code == 0)
         {
             List<MessageReplyModel> list = JsonConvert.DeserializeObject<List<MessageReplyModel>>(model.data.ToString());
             foreach (var item in list)
             {
                 MessageReplyModel models = JsonConvert.DeserializeObject<MessageReplyModel>(item.publisher.ToString());
                 item.mid = models.mid;
                 item.name = models.name;
                 item.face = models.face;
             }
             list_Reply.ItemsSource = list;
         }
         else
         {
             messShow.Show("读取失败" + model.message, 3000);
         }
     }
     catch (Exception)
     {
         messShow.Show("读取失败", 3000);
     }
     
 }