Ejemplo n.º 1
0
        /// <summary>
        /// 获取任务列表,出错时返回null
        /// </summary>
        /// <returns></returns>
        public TaskModel[] GeTaskModel()
        {
            string linkurl = "http://disk.yun.uc.cn/uclxmgr/ajaxGetList?offset=0&_=" + Cf_Web.currenttime();

            this._httpWeb.Accpet  = "application/json, text/javascript, */*; q=0.01";
            this._httpWeb.Referer = "http://disk.yun.uc.cn/";

            var jsondata = this._httpWeb.CPostOrGet(linkurl, HttpMethod.GET).HtmlValue;

            jsondata = Regex.Unescape(jsondata);

            try
            {
                JObject jObject = JObject.Parse(jsondata);
                var     data    = jObject["uclxList"];
                return(JsonConvert.DeserializeObject <TaskModel[]>(data.ToString()));
            }
            catch
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取验证码
        /// </summary>
        public virtual byte[] GetCaptchaBytes()
        {
            const string link_1      = "http://yun.uc.cn/cloud/login";
            string       captchaid_2 = "https://api.open.uc.cn/cas/commonjson/needCaptcha?callback=callback&_=" + Cf_Web.currenttime();
            const string captcha_3   = "https://api.open.uc.cn/cas/commonjson/captcha?captchaId=";

            // 1、访问主页并且得到_loginurl
            this._httpWeb.AllowAutoRedirect = true;
            this._httpWeb.EncodingSet       = "utf-8";
            const string starstring = "<form id=\"loginForm\" target=\"loginiframe\" action=\"";
            string       tempstring = this._httpWeb.CPostOrGet(link_1, HttpMethod.GET).HtmlValue;

            this._loginurl = tempstring.ExtractStringNoQH(starstring, "\"").FirstOrDefault();

            // 2、获取其他captchaid
            this._httpWeb.Referer = "http://yun.uc.cn/cloud/login";
            this._captchaid       = this._httpWeb.CPostOrGet(captchaid_2, HttpMethod.GET).HtmlValue.ExtractStringNoQH("'captchaId':'", "'").FirstOrDefault();

            // 3、获取captchaBytes
            this._httpWeb.Referer = "http://yun.uc.cn/cloud/login";
            byte[] codeBytes = this._httpWeb.CPostOrGet(captcha_3 + this._captchaid, HttpMethod.GET).Bytes;

            return(codeBytes);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 刷新验证码,请在调用GetCaptchaBytes()方法之后有必要时再使用
        /// </summary>
        /// <returns></returns>
        public virtual byte[] RefreshCaptcha()
        {
            const string captcha_3 = "https://api.open.uc.cn/cas/commonjson/captcha?captchaId=";

            string url = "https://api.open.uc.cn/cas/commonjson/refreshCaptchaByIframe?captchaId=&callback=callback&_=" + Cf_Web.currenttime();

            this._httpWeb.Referer = "http://yun.uc.cn/cloud/login";
            this._captchaid       = this._httpWeb.CPostOrGet(url, HttpMethod.GET).HtmlValue.ExtractStringNoQH("'captchaId':'", "'").FirstOrDefault();

            this._httpWeb.Referer = "http://yun.uc.cn/cloud/login";
            byte[] codeBytes = this._httpWeb.CPostOrGet(captcha_3 + this._captchaid, HttpMethod.GET).Bytes;

            return(codeBytes);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获得一个资源下面的所有可播放格式的DownloadModel模型
        /// </summary>
        /// <param name="html"></param>
        /// <param name="httpWeb"></param>
        /// <param name="taskid"></param>
        /// <returns></returns>
        private static DownloadModel[] GetDownloadModelForHtml(string html, Cf_HttpWeb httpWeb, string taskid)
        {
            var data     = html.LastExtractString("在线播放</a></li>", "<a onclick=");
            var djangoid = data.Select(o => o.ExtractStringNoQH("djangoid=\"", "\"").FirstOrDefault()).ToArray();
            var name     = data.Select(o => o.ExtractStringNoQH("filename=\"", "\"").FirstOrDefault()).ToArray();

            DownloadModel[] downloadModels = new DownloadModel[djangoid.Length];

            // 注意此处要求djangoid和name的数量必须相等,这里不做判断了,默认相等,出异常再说
            for (int i = 0; i < djangoid.Length; i++)
            {
                var link = $"{_downloadlink}&djangoID={djangoid[i]}&filename={name[i]}&_={Cf_Web.currenttime()}";
                httpWeb.Referer =
                    "http://mydiskm.uc.cn/uclxmgr/btDetail?uc_param_str=frpfvesscplaprnisieint&taskId=" + taskid;
                httpWeb.Accpet      = "application/json, text/javascript, */*";
                httpWeb.UserAgent   = "Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; TianTian Build/tt) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/10.6.0.620 U3/0.8.0 Mobile Safari/534.30";
                httpWeb.EncodingSet = "utf-8";
                var jsondata = httpWeb.CPostOrGet(link, HttpMethod.GET).HtmlValue;
                jsondata = Regex.Unescape(jsondata);

                DownloadModel dm = new DownloadModel();
                dm.Link_low       = jsondata.ExtractStringNoQH("low\":\"", "\"").FirstOrDefault();
                dm.Link_hi        = jsondata.ExtractStringNoQH("hi\":\"", "\"").FirstOrDefault();
                dm.Name           = name[i];
                downloadModels[i] = dm;
            }
            return(downloadModels);
        }