Exemplo n.º 1
0
        public void URLLoad()
        {
            string text;

            string[] items;
            string[] splits = new string[1];
            splits[0] = OVERHEAD;

            try
            {
                foreach (var txtFile in urlDirectoryInfo.GetFiles())
                {
                    text  = File.ReadAllText(URL_FILE_PATH + txtFile);
                    items = text.Split(splits, StringSplitOptions.RemoveEmptyEntries);

                    URLData url = new URLData
                    {
                        BookMark     = Convert.ToBoolean(items[0]),
                        Vpn          = Convert.ToBoolean(items[1]),
                        Title        = items[2],
                        Url          = items[3],
                        CategoryName = items[4],
                        SelectThis   = false,
                    };
                    URLs.Add(url);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex + DateTime.Now.ToLongTimeString());
            }
        }
Exemplo n.º 2
0
 public IActionResult GetUrlStats()
 {
     return(View("GetUrlStats", new DocsModel()
     {
         HostName = URLData.GetHostname(Request)
     }));
 }
Exemplo n.º 3
0
        public async Task <IActionResult> URLExample()
        {
            using (var httpClient = new HttpClient())
            {
                //setup HttpClient
                httpClient.BaseAddress = new Uri(_apiUrl);
                httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _apiKey);
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                //setup data object
                var dataObject = new URLData()
                {
                    url = "https://oxfordportal.blob.core.windows.net/emotion/recognition1.jpg"
                };

                //setup httpContent object
                var         dataJson = JsonConvert.SerializeObject(dataObject);
                HttpContent content  = new StringContent(dataJson);
                content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");

                //make request
                var response = await httpClient.PostAsync(_apiUrl, content);

                //read response and write to view
                var responseContent = await response.Content.ReadAsStringAsync();

                ViewData["Result"] = responseContent;
            }

            return(View());
        }
Exemplo n.º 4
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> ShortenCollection([FromBody] IEnumerable <string> UrlList)
        {
            if (UrlList == null || UrlList.Count() == 0)
            {
                return(StatusCode(400));
            }

            List <string> returnList = new List <string>();

            foreach (var baseUrl in UrlList)
            {
                if (Uri.IsWellFormedUriString(baseUrl, UriKind.Absolute))
                {
                    var urlToAdd = new URL {
                        BaseURL = baseUrl
                    };
                    await _urlService.AddURL(_urlContext, urlToAdd, null);

                    returnList.Add(URLData.GetHostname(Request) + urlToAdd.ShortenedIdentifier);
                }
                else
                {
                    returnList.Add("");
                }
            }

            return(Ok(returnList));
        }
Exemplo n.º 5
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> UploadURL(URL url)
        {
            if (!ModelState.IsValid)
            {
                var enterURLModel = new EnterURLModel()
                {
                    UrlData = url, HostName = null
                };
                var UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext);

                if (UserUrls.Count() >= 5)
                {
                    UserUrls = UserUrls.Skip(UserUrls.Count() - 5); //Takes last 5 only
                }

                enterURLModel.UserUrls = UserUrls;

                return(View("EnterURL", enterURLModel));
            }

            url.ExternalIP = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

            await _urlService.AddURL(_urlContext, url, Request);

            var enterUrlModel = new EnterURLModel()
            {
                UrlData = url, UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext), HostName = URLData.GetHostname(Request)
            };

            enterUrlModel.HostName = URLData.GetHostname(Request);

            return(View("DisplayURL", enterUrlModel));
        }
Exemplo n.º 6
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> ShortenURL(string BaseURL)
        {
            if (!Uri.IsWellFormedUriString(BaseURL, UriKind.Absolute))
            {
                return(StatusCode(400)); //Bad Request - Input must be of type URL
            }

            var urlToAdd = new URL()
            {
                BaseURL = BaseURL
            };

            try //Attempts to add URL to DB
            {
                await _urlService.AddURL(_urlContext, urlToAdd, null);
            }
            catch (Exception postShortURLError)
            {
                Console.WriteLine($"{postShortURLError} at {DateTime.Now}");
                return(StatusCode(500)); //Internal Server Error
            }

            if (!string.IsNullOrEmpty(urlToAdd.ShortenedIdentifier))                                                      //Final check to see if the action is about to return a null value
            {
                var    returnObject = new { shortenedUrl = URLData.GetHostname(Request) + urlToAdd.ShortenedIdentifier }; //Creates object with all of the data needing to be returned
                string returnData   = JsonConvert.SerializeObject(returnObject);                                          //Serializes the object (Second layer to prevent returning a pure object)

                return(Ok(returnData));
            }
            else
            {
                return(StatusCode(500)); //Internal Server Error
            }
        }
Exemplo n.º 7
0
        public void GetDirectoryAndFilesFromValidURLWithoutQueryString()
        {
            var dataAccessMock = new Mock <IDataAccessService>();

            dataAccessMock.Setup(x => x.ReadFile(It.IsAny <string>())).Returns("expectedData");
            HttpContext defaultContext = new DefaultHttpContext();

            var contextAccessorMock = new Mock <IHttpContextAccessor>();

            contextAccessorMock.Setup(x => x.HttpContext).Returns(defaultContext);

            var hostEnvMock = new Mock <IHostingEnvironment>();

            hostEnvMock.Setup(x => x.ContentRootPath).Returns("some/dir");

            StubDataController controller = new StubDataController(dataAccessMock.Object, contextAccessorMock.Object, hostEnvMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = defaultContext;

            string urlPath = "/some-controller/someaction/chk1000";

            controller.HttpContext.Request.Path = urlPath;

            URLData urlData = ContextHelper.GetData(controller.HttpContext);

            Assert.Equal("/some-controller/someaction", urlData.Directory);
            Assert.Equal("/some-controller/someaction/chk1000.json", urlData.Path);
            Assert.Equal("chk1000.json", urlData.FileName);
        }
Exemplo n.º 8
0
 public IActionResult ShortenCollection()
 {
     return(View("ShortenCollection", new DocsModel()
     {
         HostName = URLData.GetHostname(Request)
     }));
 }
Exemplo n.º 9
0
 public static void UrlSave(URLData url)
 {
     using StreamWriter streamWriter = new StreamWriter(URL_FILE_PATH + url.Title + URL_FILE_NAME, false);
     streamWriter.Write(url.BookMark + OVERHEAD);
     streamWriter.Write(url.Vpn + OVERHEAD);
     streamWriter.Write(url.Title + OVERHEAD);
     streamWriter.Write(url.Url + OVERHEAD);
     streamWriter.Write(url.CategoryName);
 }
Exemplo n.º 10
0
        public void ShouldReturnCorrectPath()
        {
            string directory = "/some/dir/";
            string fileName  = "newFile.json";

            URLData urlData = new URLData(directory, fileName);

            Assert.Equal("/some/dir/newFile.json", urlData.Path);
        }
Exemplo n.º 11
0
        public void FileNameShouldRemoveLeadingSlash()
        {
            string directory = "/some/dir";
            string fileName  = "/newFile.json";

            URLData urlData = new URLData(directory, fileName);

            Assert.Equal("newFile.json", urlData.FileName);
        }
Exemplo n.º 12
0
        public void ShouldReturnPathWithAdditionalSlash()
        {
            string directory = "/some/dir";
            string fileName  = "newFile.json";

            URLData urlData = new URLData(directory, fileName);

            Assert.Equal("/some/dir/newFile.json", urlData.Path);
        }
Exemplo n.º 13
0
        public IActionResult UrlList()
        {
            var enterURLModel = new EnterURLModel()
            {
                UrlData = null, UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext), HostName = null
            };

            enterURLModel.HostName = URLData.GetHostname(Request);

            return(View("DisplayURL", enterURLModel));
        }
Exemplo n.º 14
0
        public ActionResult FindScoring(string firstURL, string secondURL)
        {
            URLData urlData = new URLData()
            {
                firstURL = firstURL, secondURL = secondURL
            };

            var FirstUrl  = HTMLParse(urlData.firstURL);
            var SecondUrl = HTMLParse(urlData.secondURL);

            List <string> FirstUrlWord      = new List <string>();
            List <int>    FirstUrlWordFreq  = new List <int>();
            List <string> SecondUrlWord     = new List <string>();
            List <int>    SecondUrlWordFreq = new List <int>();

            int count_1 = 0;
            int count_2 = 0;

            foreach (var item in FirstUrl)
            {
                if (count_1 < 5)
                {
                    FirstUrlWord.Add(item.Key);
                    FirstUrlWordFreq.Add(item.Count());
                }
                count_1++;
            }

            foreach (var item in SecondUrl)
            {
                if (count_2 < 5)
                {
                    SecondUrlWord.Add(item.Key);
                    SecondUrlWordFreq.Add(item.Count());
                }
                count_2++;
            }

            double score = CalculateScoring(FirstUrlWord, SecondUrlWord);

            ViewData["FirstUrl_Keyword"]      = FirstUrlWord;
            ViewData["FirstUrl_Keyword_Freq"] = FirstUrlWordFreq;

            ViewData["SecondUrl_Keyword"]      = SecondUrlWord;
            ViewData["SecondUrl_Keyword_Freq"] = SecondUrlWordFreq;

            ViewData["Similarity Score"] = score;

            return(View(urlData));
        }
Exemplo n.º 15
0
        private bool URLTitleCheck(object item)
        {
            URLData category = item as URLData;

            if (String.IsNullOrWhiteSpace(SelectTitle))
            {
                return(true);
            }

            if (0 <= category.Title.IndexOf(SelectTitle))
            {
                return(true);
            }
            return(false);
        }
Exemplo n.º 16
0
        //GET: .../Index or .../URL/Index (Due to default routing in startup)
        public IActionResult Index()
        {
            var enterUrlModel = new EnterURLModel()
            {
                UrlData = null, HostName = URLData.GetHostname(Request)
            };
            var UserUrls = _urlService.GetUserUrls(_urlContext, HttpContext);

            if (UserUrls.Count() >= 5)
            {
                UserUrls = UserUrls.Skip(UserUrls.Count() - 5); //Takes last 5 only
            }

            enterUrlModel.UserUrls = UserUrls;

            return(View("EnterURL", enterUrlModel));
        }
Exemplo n.º 17
0
        /// <summary> Adds a URL, indicating a file or other resource that contains
        /// the value of the attribute.
        ///
        /// </summary>
        /// <param name="url">A URL class pointing to the resource containing the value
        /// of the attribute.
        ///
        /// @throws IllegalArgumentException if url is null
        /// </param>
        public virtual void addURLValue(Uri url)
        {
            // Class to encapsulate the data bytes and the length
            if (url == null)
            {
                throw new ArgumentException("Attribute URL cannot be null");
            }
            try
            {
                using (var httpClient = new HttpClient())
                {
                    // Get InputStream from the URL
                    System.IO.Stream in_Renamed = httpClient.GetStreamAsync(url).Result;
                    // Read the bytes into buffers and store the them in an arraylist
                    System.Collections.ArrayList bufs = new System.Collections.ArrayList();
                    sbyte[] buf = new sbyte[4096];
                    int     len, totalLength = 0;
                    while ((len = SupportClass.ReadInput(in_Renamed, ref buf, 0, 4096)) != -1)
                    {
                        bufs.Add(new URLData(this, buf, len));
                        buf          = new sbyte[4096];
                        totalLength += len;
                    }

                    /*
                     * Now that the length is known, allocate an array to hold all
                     * the bytes of data and copy the data to that array, store
                     * it in this LdapAttribute
                     */
                    sbyte[] data   = new sbyte[totalLength];
                    int     offset = 0; //
                    for (int i = 0; i < bufs.Count; i++)
                    {
                        URLData b = (URLData)bufs[i];
                        len = b.getLength();
                        Array.Copy((Array)b.getData(), 0, (Array)data, offset, len);
                        offset += len;
                    }
                    add(data);
                }
            }
            catch (System.IO.IOException ue)
            {
                throw new Exception(ue.ToString());
            }
        }
Exemplo n.º 18
0
        private void UrlAdd()
        {
            URLData urlData = new URLData
            {
                Title        = this.Title,
                Url          = this.Url,
                Vpn          = this.Vpn,
                CategoryName = Category,
                BookMark     = false,
                SelectThis   = false,
            };

            URLs.Add(urlData);
            UrlSave(urlData);

            URLValueClear();
        }
Exemplo n.º 19
0
        private bool CategoryFilter(object item)
        {
            URLData category = item as URLData;

            if (SelectCategory.Equals(CATEGORY_ALL))
            {
                return(true);
            }
            if ((category.BookMark == true) && (SelectCategory.Equals(CATEGORY_STAR)))
            {
                return(true);
            }

            if (category.CategoryName.Equals(SelectCategory))
            {
                return(true);
            }

            category.SelectThis = false;
            return(false);
        }
Exemplo n.º 20
0
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            lblPatientID.Text = lblTestDate.Text = lblTestTime.Text = lblTestType.Text = "";
            try
            {
                data = UrlDataExtractor.GetData(txtSource.Text, CultureInfo.CreateSpecificCulture(ConfigurationManager.AppSettings["culture"]));
                if (data == null)
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
            lblPatientID.Text = data.PID;
            lblTestType.Text  = data.TestType;
            lblTestDate.Text  = data.ParesedDateTime.ToLongDateString();
            lblTestTime.Text  = data.ParesedDateTime.ToLongTimeString();

            btnOpenMuse.Enabled = lblPatientID.Text != "" && lblTestDate.Text != "" & lblTestTime.Text != "" && lblTestType.Text != "";
        }
Exemplo n.º 21
0
        //static async Task MainAsync(string url)
        //public void Get(string url)
        //{

        //        string Url = "https://api.projectoxford.ai/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=true&subscription-key=e82c658c702d477a8d635552a8ddf1c5";


        //        HttpWebRequest request = WebRequest.Create(Url) as HttpWebRequest;
        //        request.Method = "POST";
        //        request.ContentType = " application/json";
        //        //request.Headers.Add("Authorization", token);



        //        string data = "[{url:http://pngimg.com/upload/face_PNG5660.png}]";
        //        using (var streamWriter = new StreamWriter(request.GetRequestStream()))
        //        {
        //            streamWriter.Write(data);
        //            streamWriter.Flush();
        //            streamWriter.Close();
        //        }

        //        // Get response
        //        HttpWebResponse myWebResponse = (HttpWebResponse)request.GetResponse();
        //        // Get the response stream
        //        StreamReader reader = new StreamReader(myWebResponse.GetResponseStream());

        //        // Console application output
        //        Console.WriteLine(reader.ReadToEnd());
        //        Console.ReadLine();

        //    }

        public async Task <List <Class1> > sendRequest(string imageUrl)
        {
            using (var httpClient = new HttpClient())
            {
                //setup HttpClient
                httpClient.BaseAddress = new Uri(_apiUrl);
                httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _apiKey);
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                //setup data object
                var dataObject = new URLData()
                {
                    url = imageUrl
                };

                //setup httpContent object
                var         dataJson = JsonConvert.SerializeObject(dataObject);
                HttpContent content  = new StringContent(dataJson);
                content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");

                //make request
                var response = await httpClient.PostAsync(_apiUrl, content);

                //read response and write to view

                var responseContent = await response.Content.ReadAsStringAsync();

                List <Class1> obj = JsonConvert.DeserializeObject <List <Class1> >(responseContent);



                return(obj);
            }

            //return null;
        }
Exemplo n.º 22
0
        public URLData GetHTTPURL_V1(Subfile_List item, string info_hash)
        {
            URLData   res = new URLData();
            WebClient web = new WebClient();

            #region 旧版接口

            /*
             #region QQ接口取File_hash
             * string postString = "torrent_para={\"uin\":\"985189148\",\"hash\":\"" + info_hash + "\",\"taskname\":\"M\",\"data\":[{\"index\":\"" + item.index + "\",\"filesize\":\"1\",\"filename\":\"M.mkv\"}]}";
             * byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式
             * string url = "http://fenxiang.qq.com/upload/index.php/upload_c/checkExist";//地址
             * web.Headers.Add("Referer", "http://fenxiang.qq.com/upload/index.php/upload_c/checkExist");
             * web.Headers.Add("Accept", "*//*");//此行删除一个/
             * web.Headers.Add("Accept-Language", "zh-cn");
             * web.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
             * web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)");
             * byte[] responseData = web.UploadData(url, "POST", postData);//得到返回字符流
             * for (int i = 0; i < 10; ++i)
             * {
             *  if (responseData.Length <= 0)
             *      responseData = web.UploadData(url, "POST", postData);//得到返回字符流
             *  else
             *      break;
             * }
             * string srcString = Encoding.UTF8.GetString(responseData);//解码
             * if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\" : 2"))
             *  return res;
             * QQFenXiang qqfx = JSONParser.FromJson<QQFenXiang>(srcString);
             * if (qqfx.data[0].file_hash.Equals("0000000000000000000000000000000000000000"))
             *  return res;
             #endregion
             *
             * string File_hash = qqfx.data[0].file_hash;
             *
             * string File_hash = "e88137ca28580665330a2287b3c4f3288f946ffa";
             * string postString;
             * byte[] postData;
             * string url;
             * byte[] responseData;
             * string srcString;
             */
            #endregion

            #region 获取File_hash

            string postString = "m=jx?hash=" + info_hash + "&index=" + item.index;
            byte[] postData   = Encoding.UTF8.GetBytes(postString);                                                           //编码,尤其是汉字,事先要看下抓取网页的编码方式
            //string url = "http://1.jxbt.applinzi.com/jx.php?hash=" + info_hash + "&index=" + item.index;//地址
            string url = "http://mt520.xyz:8080/CPServer/cloudplayer/getlistopen?hash=" + info_hash + "&index=" + item.index; //地址
            web.Headers.Add("Accept", "*/*");
            web.Headers.Add("Referer", url);
            web.Headers.Add("Accept-Language", "zh-cn");
            web.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)");
            web.Headers.Add("Host", "1.jxbt.applinzi.com");
            web.Headers.Add("Cache-Control", "no-cache");
            string srcString = web.DownloadString(url);
            for (int i = 0; i < 5; ++i)
            {
                if (srcString.Length <= 0)
                {
                    srcString = web.DownloadString(url);
                }
                else
                {
                    break;
                }
            }
            if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\" : 2"))
            {
                return(res);
            }
            QQFenXiang qqfx = JSONParser.FromJson <QQFenXiang>(srcString);
            if (qqfx.data[0].file_hash.Equals("0000000000000000000000000000000000000000"))
            {
                return(res);
            }

            string File_hash = qqfx.data[0].file_hash;

            #endregion

            #region 第三步:连线QQ取播放地址
            byte[] responseData;
            postString = string.Format("hash={0}&filename=movie", File_hash);
            postData   = Encoding.UTF8.GetBytes(postString);                     //编码,尤其是汉字,事先要看下抓取网页的编码方式
            url        = "http://lixian.qq.com/handler/lixian/get_http_url.php"; //地址
            web.Headers.Clear();
            web.Headers.Add("Referer", "http://lixian.qq.com/handler/lixian/get_http_url.php");
            web.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
            web.Headers.Add("Accept-Language", "zh-cn");
            web.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)");
            responseData = web.UploadData(url, "POST", postData);//得到返回字符流
            //解码
            byte[] buffer2 = Encoding.Convert(Encoding.UTF8, Encoding.Default, responseData, 0, responseData.Length);
            srcString = Encoding.Default.GetString(buffer2, 0, buffer2.Length).TrimStart('?');
            if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\":-1"))
            {
                return(res);
            }
            XFPlay xf = JSONParser.FromJson <XFPlay>(srcString);
            #endregion

            string com_url = xf.data.com_url;

            #region 分析真实地址调用播放
            string comkey   = com_url.Substring(com_url.IndexOf("ftn_handler/"), com_url.IndexOf("/movie") - com_url.IndexOf("ftn_handler/")).Replace("ftn_handler/", "");
            string urlstart = "cd";
            try
            {
                urlstart = com_url.Substring(com_url.IndexOf("http://"), com_url.IndexOf(".qq.com") - com_url.IndexOf("http://")).Replace("http://", "").Replace("xflx", "").Replace("store", "").Replace("ctfs", "").Replace("btfs", "").Replace("ftn", "").Replace(".", "").Replace("src", "xa");
            }
            catch { }
            string com_cookie = xf.data.com_cookie;
            com_url = GetPlayUrl(comkey, urlstart, com_cookie);
            if (string.IsNullOrEmpty(com_url))
            {
                return(res);
            }
            string VideoName = HttpUtility.UrlDecode(item.name).Replace("【失效链接】", "").Replace("【无效链接】", "").Replace("【处理中,请等待】", "");
            res.url    = com_url;
            res.cookie = com_cookie;
            return(res);

            #endregion
        }
Exemplo n.º 23
0
        public URLData GetHTTPURL(Subfile_List item, string info_hash)
        {
            URLData   res = new URLData();
            WebClient web = new WebClient();

            #region 获取File_hash

            string postString = "m=jx?hash=" + info_hash + "&index=" + item.index;
            byte[] postData   = Encoding.UTF8.GetBytes(postString);                                                          //编码,尤其是汉字,事先要看下抓取网页的编码方式
            //string url = "http://1.jxbt.applinzi.com/jxcode.php?hash=" + info_hash + "&index=" + item.index;//地址
            string url = "http://mt520.xyz:8080/CPServer/cloudplayer/geturlopen?hash=" + info_hash + "&index=" + item.index; //地址
            web.Headers.Add("Accept", "*/*");
            web.Headers.Add("Referer", url);
            web.Headers.Add("Accept-Language", "zh-cn");
            web.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)");
            web.Headers.Add("Host", "mt520.xyz:8080");
            web.Headers.Add("Cache-Control", "no-cache");
            string srcString = web.DownloadString(url);
            for (int i = 0; i < 2; ++i)
            {
                if (srcString.Length <= 0)
                {
                    srcString = web.DownloadString(url);
                }
                else
                {
                    break;
                }
            }

            Regex           reg = new Regex("Success#(.+?)#(.+?)");
            MatchCollection mc  = reg.Matches(srcString);
            if (mc.Count == 0)
            {
                return(res);
            }

            res.url    = mc[0].Groups[1].Value;
            res.cookie = mc[0].Groups[2].Value;
            return(res);

            if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\" : 2"))
            {
                return(res);
            }
            QQFenXiang qqfx = JSONParser.FromJson <QQFenXiang>(srcString);
            if (qqfx.data[0].file_hash.Equals("0000000000000000000000000000000000000000"))
            {
                return(res);
            }

            string File_hash = qqfx.data[0].file_hash;

            #endregion

            #region 第三步:连线QQ取播放地址
            byte[] responseData;
            postString = string.Format("hash={0}&filename=movie", File_hash);
            postData   = Encoding.UTF8.GetBytes(postString);                     //编码,尤其是汉字,事先要看下抓取网页的编码方式
            url        = "http://lixian.qq.com/handler/lixian/get_http_url.php"; //地址
            web.Headers.Clear();
            web.Headers.Add("Referer", "http://lixian.qq.com/handler/lixian/get_http_url.php");
            web.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
            web.Headers.Add("Accept-Language", "zh-cn");
            web.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)");
            responseData = web.UploadData(url, "POST", postData);//得到返回字符流
            //解码
            byte[] buffer2 = Encoding.Convert(Encoding.UTF8, Encoding.Default, responseData, 0, responseData.Length);
            srcString = Encoding.Default.GetString(buffer2, 0, buffer2.Length).TrimStart('?');
            if (string.IsNullOrEmpty(srcString) || srcString.Contains("\"ret\":-1"))
            {
                return(res);
            }
            XFPlay xf = JSONParser.FromJson <XFPlay>(srcString);
            #endregion

            string com_url = xf.data.com_url;

            #region 分析真实地址调用播放
            string comkey   = com_url.Substring(com_url.IndexOf("ftn_handler/"), com_url.IndexOf("/movie") - com_url.IndexOf("ftn_handler/")).Replace("ftn_handler/", "");
            string urlstart = "cd";
            try
            {
                urlstart = com_url.Substring(com_url.IndexOf("http://"), com_url.IndexOf(".qq.com") - com_url.IndexOf("http://")).Replace("http://", "").Replace("xflx", "").Replace("store", "").Replace("ctfs", "").Replace("btfs", "").Replace("ftn", "").Replace(".", "").Replace("src", "xa");
            }
            catch { }
            string com_cookie = xf.data.com_cookie;
            com_url = GetPlayUrl(comkey, urlstart, com_cookie);
            if (string.IsNullOrEmpty(com_url))
            {
                return(res);
            }
            string VideoName = HttpUtility.UrlDecode(item.name).Replace("【失效链接】", "").Replace("【无效链接】", "").Replace("【处理中,请等待】", "");
            res.url    = com_url;
            res.cookie = com_cookie;
            return(res);

            #endregion
        }
Exemplo n.º 24
0
        public static string TestCDN()
        {
            if (_isDev)
            {
                return("http://116.236.180.14");
            }
#if UNITY_EDITOR
            string content = FileUtils.ReadStringFromStreaming("url.dat", false);

            if (!string.IsNullOrEmpty(content))
            {
                urls = content.Replace("\r\n", "\n").Split('\n');

                foreach (var k in urls)
                {
                    if (!urlDatas.ContainsKey(k))
                    {
                        URLData data = new URLData();
                        data.pingOK     = true;
                        data.isUsed     = false;
                        data.downloadOK = true;
                        data.url        = k;
                        urlDatas.Add(k, data);
                    }
                }
            }
#else
            if (!_isReadUrl)
            {
                _isReadUrl = true;

                string content = FileUtils.ReadStringFromStreaming("url.dat", false);

                if (!string.IsNullOrEmpty(content))
                {
                    urls = content.Replace("\r\n", "\n").Split('\n');
                    foreach (var k in urls)
                    {
                        if (!urlDatas.ContainsKey(k))
                        {
                            URLData data = new URLData();
                            data.pingOK     = true;
                            data.isUsed     = false;
                            data.downloadOK = true;
                            data.url        = k;
                            urlDatas.Add(k, data);
                        }
                    }
                }
            }
#endif
            if (urls == null || urls.Length == 0)
            {
                return(null);
            }
            //Common.ShowLoading();
            //#if UNITY_EDITOR
            //        foreach (var k in urls)
            //        {
            //            isCDNOK(k);
            //        }
            //#else
            //            if (!_isTestedCDN)
            //            {
            //                _isTestedCDN = true;
            //                foreach (var k in urls)
            //                {
            //                    isCDNOK(k);
            //                }
            //            }
            //#endif

            bool isAnyPingOk = true;
            //foreach (var k in urlDatas)
            //{
            //    if (k.Value.pingOK)
            //    {
            //        isAnyPingOk = true;
            //        break;
            //    }

            //}

            if (!isAnyPingOk)
            {
                //Common.HideLoading();
                UIMessageBoxHelper.Show("网络断开" + "(error : 701)", () =>
                {
                    SceneManager.LoadScene("Launcher");
                }
                                        );

                throw new System.Exception("网络断开(error : 701)");
            }
            else
            {
                //Common.HideLoading();
                URLData data = null;
                foreach (var k in urlDatas)
                {
                    if (!k.Value.isUsed && k.Value.downloadOK)
                    {
                        data = k.Value;
                        //Debug.LogError("CDN地址无效,切换新IP:" + data.url);
                        break;
                    }
                }
                if (data == null)
                {
                    return(urls[0]);
                }
                return(data.url);
            }
        }