예제 #1
0
파일: AV.cs 프로젝트: qiuguoqiang/BiliDuang
        public AV(string aid, bool nonotice = false)
        {
            this.aid = aid;
            //https://api.bilibili.com/x/web-interface/view/detail?aid=81012897&jsonp=json

            WebClient MyWebClient = new WebClient();

            MyWebClient.Credentials = CredentialCache.DefaultCredentials;                                                                                           //获取或设置用于向Internet资源的请求进行身份验证的网络凭据
            string callback = Encoding.UTF8.GetString(MyWebClient.DownloadData("https://api.bilibili.com/x/web-interface/view/detail?aid=" + aid + "&jsonp=json")); //如果获取网站页面采用的是UTF-8,则使用这句

            av = JsonConvert.DeserializeObject <JSONCallback.AV.AV>(callback);
            MyWebClient.Dispose();
            if (av.code != 0)
            {
                if (!nonotice)
                {
                    Dialog.Show(av.message, "获取错误");
                }
                name   = av.message;
                status = false;
                return;
            }
            if (av.data.View.redirect_url != null)
            {
                if (av.data.View.redirect_url.Contains("ep"))
                {
                    isbangumi  = true;
                    bangumiurl = av.data.View.redirect_url;
                    return;
                }
            }
            status    = true;
            cid       = av.data.View.cid;
            name      = av.data.View.title;
            des       = av.data.View.desc;
            up.id     = av.data.Card.card.mid;
            up.name   = av.data.Card.card.name;
            up.imgurl = av.data.Card.card.face;
            imgurl    = av.data.View.pic;
            foreach (JSONCallback.AV.PagesItem page in av.data.View.pages)
            {
                episode episode = new episode();
                episode.cid  = page.cid;
                episode.pic  = _pic;
                episode.name = page.part;
                episode.aid  = aid;
                episodes.Add(episode);
            }
        }
예제 #2
0
        public AV(string aid, bool nonotice = false)
        {
            this.aid = aid;
            //https://api.bilibili.com/x/web-interface/view/detail?aid=81012897&jsonp=json

            WebClient MyWebClient = new WebClient();

            MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
            string callback = "";

            if (Settings.useapi == 1)
            {
                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;                                               //加上这一句
                callback = Encoding.UTF8.GetString(MyWebClient.DownloadData("http://www.biliplus.com/api/view?id=" + aid + "&jsonp=json")); //如果获取网站页面采用的是UTF-8,则使用这句
                if (callback == "")
                {
                    if (!nonotice)
                    {
                        Dialog.Show("使用BiliPlus API 获取错误", "获取错误");
                    }
                    name   = "获取错误";
                    status = false;
                    return;
                }
                plusav = JsonConvert.DeserializeObject <JSONCallback.BiliPlus.AV>(callback);
                MyWebClient.Dispose();
                if (plusav.v2_app_api.redirect_url != null)
                {
                    if (plusav.v2_app_api.redirect_url.Contains("ep"))
                    {
                        isbangumi  = true;
                        bangumiurl = plusav.v2_app_api.redirect_url;
                        return;
                    }
                }
                status    = true;
                cid       = plusav.v2_app_api.cid;
                name      = plusav.v2_app_api.title;
                des       = plusav.v2_app_api.desc;
                up.id     = plusav.v2_app_api.owner.mid;
                up.name   = plusav.v2_app_api.owner.name;
                up.imgurl = plusav.v2_app_api.owner.face;
                imgurl    = plusav.pic;
                foreach (JSONCallback.BiliPlus.PagesItem page in plusav.v2_app_api.pages)
                {
                    episode episode = new episode();
                    episode.cid  = page.cid;
                    episode.pic  = _pic;
                    episode.name = page.part;
                    episode.aid  = aid;
                    episodes.Add(episode);
                }
            }
            else
            {
                //https://api.bilibili.com/x/web-interface/view?aid=
                callback = Encoding.UTF8.GetString(MyWebClient.DownloadData("https://api.bilibili.com/x/web-interface/view?aid=" + aid + "&jsonp=json")); //如果获取网站页面采用的是UTF-8,则使用这句
                av       = JsonConvert.DeserializeObject <JSONCallback.AV.AV>(callback);
                MyWebClient.Dispose();
                if (av.code != 0)
                {
                    if (!nonotice)
                    {
                        Dialog.Show(av.message, "获取错误");
                    }
                    name   = av.message;
                    status = false;
                    return;
                }
                if (av.data.redirect_url != null)
                {
                    if (av.data.redirect_url.Contains("ep"))
                    {
                        isbangumi  = true;
                        bangumiurl = av.data.redirect_url;
                        return;
                    }
                }
                status    = true;
                cid       = av.data.cid;
                name      = av.data.title;
                des       = av.data.desc;
                up.id     = av.data.owner.mid;
                up.name   = av.data.owner.name;
                up.imgurl = av.data.owner.face;
                imgurl    = av.data.pic;
                foreach (JSONCallback.AV.PagesItem page in av.data.pages)
                {
                    episode episode = new episode();
                    episode.cid  = page.cid;
                    episode.pic  = _pic;
                    episode.name = page.part;
                    episode.aid  = aid;
                    episodes.Add(episode);
                }
            }
        }