Exemplo n.º 1
0
        public Model.ScanModels.EverythingResult EverythingSearch(string token, string content)
        {
            var to = ScanDataBaseManager.GetToken().Token;

            if (to == token)
            {
                var htmlModel = HtmlManager.GetHtmlContentViaUrl("http://*****:*****@"?s=&o=0&j=1&p=c&path_column=1&size_column=1&j=1&q=!c:\ " + EverythingHelper.Extensions + " " + content);

                if (htmlModel.Success)
                {
                    var retModel = JsonConvert.DeserializeObject <Model.ScanModels.EverythingResult>(htmlModel.Content);

                    if (retModel != null && retModel.results != null)
                    {
                        retModel.results = retModel.results.OrderByDescending(x => double.Parse(x.size)).ToList();

                        foreach (var r in retModel.results)
                        {
                            r.sizeStr = FileSize.GetAutoSizeString(double.Parse(r.size), 1);
                        }

                        return(retModel);
                    }
                }
            }

            return(new Model.ScanModels.EverythingResult());
        }
Exemplo n.º 2
0
        public static void UpdateJavBusCategory(CookieContainer cc)
        {
            Dictionary <string, string> ret = new Dictionary <string, string>();
            List <string> busCategory       = new List <string>();
            var           url = "https://www.javbus.com/genre";

            var           mapping    = JavBusDownloadHelper.GetJavCategoryMapping(MappingFile);
            List <string> javLibrary = GetJavLibraryCategory();

            var content = HtmlManager.GetHtmlContentViaUrl(url, "utf-8", false, cc);

            if (content.Success)
            {
                HtmlDocument htmlDocument = new HtmlDocument();
                htmlDocument.LoadHtml(content.Content);

                string xpath = "//a[@class='col-lg-2 col-md-2 col-sm-3 col-xs-6 text-center']";

                HtmlNodeCollection nodes = htmlDocument.DocumentNode.SelectNodes(xpath);

                foreach (var node in nodes)
                {
                    busCategory.Add(FileUtility.GetJianTiStr(node.InnerText.Trim()));
                }
            }

            var copyBus = string.Join("\r\n", busCategory);
            var copyLib = string.Join("\r\n", javLibrary);

            for (int i = 0; i < busCategory.Count; i++)
            {
                if (javLibrary.Contains(busCategory[i]))
                {
                    if (!ret.ContainsKey(busCategory[i]))
                    {
                        ret.Add(busCategory[i], javLibrary.FirstOrDefault(x => x == busCategory[i]));
                    }
                }
                else
                {
                    if (mapping.ContainsKey(busCategory[i]))
                    {
                        ret.Add(busCategory[i], mapping[busCategory[i]]);
                    }
                }
            }

            if (ret.Count > 0)
            {
                JavDataBaseManager.DeleteJavBusCategory();

                foreach (var map in ret)
                {
                    JavDataBaseManager.InsertJavBusCategory(map.Key, map.Value);
                }
            }
        }
Exemplo n.º 3
0
        public static void TestSearchEverything(string content)
        {
            var retModel  = new Model.ScanModels.EverythingResult();
            var htmlModel = HtmlManager.GetHtmlContentViaUrl("http://*****:*****@"?s=&o=0&j=1&p=c&path_column=1&size_column=1&j=1&q=!c:\ " + EverythingHelper.Extensions + " " + content);

            if (htmlModel.Success)
            {
                retModel = JsonConvert.DeserializeObject <Model.ScanModels.EverythingResult>(htmlModel.Content);

                if (retModel != null && retModel.results != null && retModel.results.Count > 0)
                {
                    retModel.results = retModel.results.OrderByDescending(x => double.Parse(x.size)).ToList();

                    foreach (var r in retModel.results)
                    {
                        r.sizeStr  = FileSize.GetAutoSizeString(double.Parse(r.size), 1);
                        r.location = "本地";
                    }
                }
                else
                {
                    retModel = new Model.ScanModels.EverythingResult
                    {
                        results = new List <EverythingFileResult>()
                    };

                    List <FileItemModel> oneOneFiveFiles = new List <FileItemModel>();

                    oneOneFiveFiles = OneOneFiveService.Get115SearchFileResult(OneOneFiveService.Get115Cookie(), content);

                    oneOneFiveFiles.AddRange(OneOneFiveService.Get115SearchFileResult(OneOneFiveService.Get115Cookie(), content, "2068937774368408801"));

                    if (oneOneFiveFiles != null && oneOneFiveFiles.Any())
                    {
                        var targetFile = oneOneFiveFiles.Where(x => x.n.ToLower().Contains(content.ToLower()) && !string.IsNullOrEmpty(x.fid)).ToList();
                        retModel.totalResults = targetFile.Count + "";

                        if (targetFile != null)
                        {
                            foreach (var file in targetFile)
                            {
                                EverythingFileResult temp = new EverythingFileResult
                                {
                                    size     = file.s + "",
                                    sizeStr  = FileSize.GetAutoSizeString(double.Parse(file.s + ""), 1),
                                    location = "115网盘",
                                    name     = file.n
                                };

                                retModel.results.Add(temp);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 4
0
        public static void Init(StringBuilder sb)
        {
            if (!Directory.Exists(RootFolder))
            {
                sb.AppendLine(string.Format("没有找到{0},创建文件夹", RootFolder));
                Directory.CreateDirectory(RootFolder);
            }

            var lastOperationEndDate = SisDataBaseManager.GetLastOperationEndDate();

            sb.AppendLine(string.Format("上次执行时间: {0}", lastOperationEndDate.ToString("yyyy-MM-dd")));

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

            //listChannel.Add(AsiaUncensoredAuthorshipSeed);
            //sb.AppendLine(string.Format("添加频道: {0}", "AsiaUncensoredAuthorshipSeed"));
            //listChannel.Add(AsiaUncensoredSection);
            //sb.AppendLine(string.Format("添加频道: {0}", "AsiaUncensoredSection"));
            //listChannel.Add(WesternUncensoredAuthorshipSeed);
            //sb.AppendLine(string.Format("添加频道: {0}", "WesternUncensoredAuthorshipSeed"));
            //listChannel.Add(WesternUncensored);
            //sb.AppendLine(string.Format("添加频道: {0}", "WesternUncensored"));
            listChannel.Add(AsiaCensoredAuthorshipSeed);
            sb.AppendLine(string.Format("添加频道: {0}", "AsiaCensoredAuthorshipSeed"));
            listChannel.Add(AsiaCensoredSection);
            sb.AppendLine(string.Format("添加频道: {0}", "AsiaCensoredSection"));

            foreach (var channel in listChannel)
            {
                var page = 1;

                while (page < 6)
                {
                    var url = string.Format(channel, page);
                    //Console.WriteLine("Get content from " + string.Format(channel, page));
                    sb.AppendLine(string.Format("正在处理URL: {0}, 页码: {1}", url, page));
                    var res = HtmlManager.GetHtmlContentViaUrl(url, "gbk");

                    if (res.Success)
                    {
                        sb.AppendLine("    URL内容获取成功");
                        page = GetTargetThread(res.Content, ChannelMapping[channel], lastOperationEndDate, string.Format(channel, page), sb, page);
                    }
                    else
                    {
                        sb.AppendLine("    URL内容获取失败");
                    }

                    sb.AppendLine("*******************************************************************************");

                    page++;
                }
            }
        }
Exemplo n.º 5
0
        public static void DownloadActreeAvator()
        {
            int  index        = 1;
            bool contiune     = true;
            var  folderPrefix = @"G:\Github\AllInOneAV\Setting\avator\";
            var  url          = "https://www.javbus.com/actresses/";
            var  cc           = JavBusDownloadHelper.GetJavBusCookie();

            while (contiune)
            {
                var content = HtmlManager.GetHtmlContentViaUrl(url + index++, "utf-8", false, cc);

                if (content.Success)
                {
                    HtmlDocument htmlDocument = new HtmlDocument();
                    htmlDocument.LoadHtml(content.Content);

                    string xpath   = "//a[@class='avatar-box text-center']";
                    string imgPath = "/img";

                    HtmlNodeCollection nodes = htmlDocument.DocumentNode.SelectNodes(xpath);

                    foreach (var node in nodes)
                    {
                        var img = node.ChildNodes[1].ChildNodes[1];

                        var src   = img.Attributes["src"].Value;
                        var title = img.Attributes["title"].Value;

                        if (!string.IsNullOrEmpty(src) && !string.IsNullOrEmpty(title))
                        {
                            var tempFolder = folderPrefix + title[0] + "\\";
                            if (!Directory.Exists(tempFolder))
                            {
                                Directory.CreateDirectory(tempFolder);
                            }

                            DownloadHelper.DownloadFile(src, tempFolder + title + ".jpg");
                            Console.WriteLine($"下载第 {index - 1} 页,{title} 的头像");
                        }
                    }
                }
                else
                {
                    contiune = false;
                }
            }
        }
Exemplo n.º 6
0
        public static List <JavBusSearchListModel> GetJavBusSearchListModel(string key, CookieContainer cc)
        {
            List <JavBusSearchListModel> ret = new List <JavBusSearchListModel>();

            var searchUrl = string.Format(@"https://www.javbus.com/search/{0}&type=&parent=ce", key);

            var listHtml = HtmlManager.GetHtmlContentViaUrl(searchUrl, "utf-8", false, cc);

            if (listHtml.Success)
            {
                HtmlDocument htmlDocument = new HtmlDocument();
                htmlDocument.LoadHtml(listHtml.Content);

                var listXpath            = "//div[@class='item']";
                HtmlNodeCollection nodes = htmlDocument.DocumentNode.SelectNodes(listXpath);

                foreach (var item in nodes)
                {
                    var regUrl  = "<a class=\"movie-box\" href=\"(.*?)\">";
                    var regImg  = "<img src=\"(.*?)\" title=\"(.*?)\">";
                    var content = item.InnerHtml;

                    var mImg = Regex.Match(content, regImg);
                    var mUrl = Regex.Match(content, regUrl);

                    var img   = mImg.Groups[1].Value;
                    var title = mImg.Groups[2].Value;
                    var url   = mUrl.Groups[1].Value;

                    ret.Add(new JavBusSearchListModel
                    {
                        Img   = img,
                        Title = title,
                        Url   = url
                    });
                }
            }

            return(ret);
        }
Exemplo n.º 7
0
        public static DateTime DoParse(ScanThread st, StringBuilder sb)
        {
            var      url   = st.Url;
            var      res   = HtmlManager.GetHtmlContentViaUrl(url, "gbk");
            DateTime today = DateTime.Today;

            if (res.Success)
            {
                sb.AppendLine(string.Format("    获取内容成功"));
                string subFolder = today.ToString("yyyy年MM月dd日") + "/" + st.Channel + "/";

                if (!string.IsNullOrEmpty(res.Content))
                {
                    var m              = Regex.Matches(res.Content, DetailAttach, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    var attachFolder   = "";
                    var attachName     = "";
                    var innerSubFolder = "";

                    foreach (Match item in m)
                    {
                        attachFolder = FileUtility.ReplaceInvalidChar(st.Name);
                        attachName   = FileUtility.ReplaceInvalidChar(st.Name) + ".torrent";

                        innerSubFolder = subFolder + attachFolder + "/";

                        if (!Directory.Exists(RootFolder + innerSubFolder))
                        {
                            Directory.CreateDirectory(RootFolder + innerSubFolder);
                        }

                        var attach = Prefix + DetailAttachPrefix + item.Groups[1].Value + "&clickDownload=1";
                        var path   = RootFolder + subFolder + attachName;

                        //Console.WriteLine(string.Format("Download {0} to {1} and create folder {2} for picture", attach, path, innerSubFolder));
                        sb.AppendLine(string.Format("    Download {0} to {1} and create folder {2} for picture", attach, path, innerSubFolder));

                        if (!string.IsNullOrEmpty(Utils.DownloadHelper.DownloadFile(attach, path)))
                        {
                            sb.AppendLine(string.Format("    下载附件失败"));
                        }

                        var ps    = Regex.Matches(res.Content, DetailImg, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                        int index = 1;

                        foreach (Match p in ps)
                        {
                            if (p.Groups[1].Value.ToLower().StartsWith("http"))
                            {
                                var pic     = p.Groups[1].Value;
                                var picPath = RootFolder + innerSubFolder + index + ".jpg";
                                //Console.WriteLine(string.Format("Download Picture {0} to {1}", pic, picPath));
                                sb.AppendLine(string.Format("    Download Picture {0} to {1}", pic, picPath));
                                if (string.IsNullOrEmpty(Utils.DownloadHelper.DownloadFile(pic, picPath)))
                                {
                                    sb.AppendLine(string.Format("    下载图片失败"));
                                }
                                Console.Write(".");
                                index++;
                            }
                        }

                        sb.AppendLine(string.Format("    更新{0}的下载状态", url));
                        SisDataBaseManager.UpdateDownload(url);
                        Console.WriteLine();
                    }
                }
            }
            else
            {
                sb.AppendLine(string.Format("    获取{0}内容失败", st.Url));
            }

            sb.AppendLine("*******************************************************************************");

            return(today);
        }
Exemplo n.º 8
0
        private static void UpdateRefreshUi(int jobId = 0)
        {
            Random ran     = new Random();
            int    count   = 1;
            string sukebei = JavINIClass.IniReadValue("Mag", "sukebei");

            Parallel.ForEach(models, new ParallelOptions {
                MaxDegreeOfParallelism = 10
            }, rm =>
            {
                RemoteScanMag entity = new RemoteScanMag();
                entity.JobId         = jobId;

                Console.Write("处理 --> " + rm.Name + " " + count++ + "/" + models.Count);

                var token = ScanDataBaseManager.GetToken();

                var htmlResult = HtmlManager.GetHtmlContentViaUrl($"http://www.cainqs.com:8087/avapi/EverythingSearch?token={token.Token}&content=" + rm.Id);

                Model.ScanModels.EverythingResult searchResult = new Model.ScanModels.EverythingResult();
                List <MyFileInfo> matchFiles = new List <MyFileInfo>();

                if (htmlResult.Success)
                {
                    searchResult = JsonConvert.DeserializeObject <Model.ScanModels.EverythingResult>(htmlResult.Content);

                    if (searchResult != null && searchResult.results != null)
                    {
                        foreach (var result in searchResult.results)
                        {
                            var temp = new MyFileInfo();

                            if (result.location == "本地")
                            {
                                temp.Length   = long.Parse(result.size);
                                temp.FullName = result.path + "\\" + result.name;
                            }
                            else
                            {
                                temp.Length   = long.Parse(result.size);
                                temp.FullName = "网盘" + long.Parse(result.size);
                            }

                            matchFiles.Add(temp);
                        }
                    }
                }

                List <SeedMagnetSearchModel> list = new List <SeedMagnetSearchModel>();

                if (sukebei == "pro" || sukebei == "si")
                {
                    list = MagService.SearchSukebei(id: rm.Id, web: sukebei);
                }
                else
                {
                    list = MagService.SearchJavBus(rm.Id, null);
                }

                if (list != null && list.Count > 0)
                {
                    if (matchFiles.Count > 0)
                    {
                        var biggestFile     = matchFiles.FirstOrDefault(x => x.Length == matchFiles.Max(y => y.Length));
                        entity.SearchStatus = 2;
                        entity.MatchFile    = biggestFile.FullName;
                    }
                    else
                    {
                        entity.SearchStatus = 1;
                    }

                    foreach (var seed in list)
                    {
                        entity.AvId     = rm.Id;
                        entity.AvName   = FileUtility.ReplaceInvalidChar(rm.Name);
                        entity.AvUrl    = rm.Url;
                        entity.MagDate  = seed.Date;
                        entity.MagSize  = seed.Size;
                        entity.MagTitle = FileUtility.ReplaceInvalidChar(seed.Title);
                        entity.MagUrl   = seed.MagUrl;

                        try
                        {
                            if (entity.MagTitle.Contains(rm.Id) || entity.MagTitle.Contains(rm.Id.Replace("-", "")))
                            {
                                ScanDataBaseManager.InsertRemoteScanMag(entity);
                            }
                        }
                        catch (Exception ee)
                        {
                            entity.MatchFile    = "";
                            entity.SearchStatus = 1;
                            ScanDataBaseManager.InsertRemoteScanMag(entity);
                        }
                    }
                }
                else
                {
                    Console.Write(" 没搜到");
                    entity.SearchStatus = 0;
                }

                Console.WriteLine();
            });
        }
Exemplo n.º 9
0
        private static void TestJavLibrarySearch(string id)
        {
            var cc = InitManager.UpdateCookie(null, "http://www.javlibrary.com/cn").CC;

            var res = HtmlManager.GetHtmlContentViaUrl("http://www.javlibrary.com/cn/vl_searchbyid.php?keyword=" + id, "utf-8", true, cc);
        }
Exemplo n.º 10
0
        public static AV GetJavBusSearchDetail(string url, CookieContainer cc, Dictionary <string, string> mapping)
        {
            AV av = new AV();

            var listHtml = HtmlManager.GetHtmlContentViaUrl(url, "utf-8", false, cc);

            if (listHtml.Success)
            {
                var titleTemplate     = "<h3>(.*?)</h3>";
                var imgTemplate       = "<a class=\"bigImage\" href=\"(.*?)\">";
                var idTemplate        = "<span style=\"color:#CC0000;\">(.*?)</span>";
                var dateTemplate      = "<p><span class=\"header\">發行日期:</span>(.*?)</p>";
                var directorTemplate  = "<p><span class=\"header\">導演:</span> <a href=\"(.*?)\">(.*?)</a></p>";
                var lengthTemplate    = "<p><span class=\"header\">長度:</span>(.*?)分鐘</p>";
                var actressTemplate   = "<div class=\"star-name\"><a href=\"(.*?)\" title=\"(.*?)\">(.*?)</a></div>";
                var companyTemplate   = "<p><span class=\"header\">製作商:</span> <a href=\"(.*?)\">(.*?)</a>";
                var publisherTemplate = "<p><span class=\"header\">發行商:</span> <a href=\"(.*?)\">(.*?)</a>";
                var categotyTemplate  = "<span class=\"genre\"><a href=\"(.*?)\">(.*?)</a></span>";

                var mTitle  = Regex.Match(listHtml.Content, titleTemplate);
                var mId     = Regex.Match(listHtml.Content, idTemplate);
                var mImg    = Regex.Match(listHtml.Content, imgTemplate);
                var mDate   = Regex.Match(listHtml.Content, dateTemplate);
                var mLength = Regex.Match(listHtml.Content, lengthTemplate);

                var mDirector  = Regex.Matches(listHtml.Content, directorTemplate);
                var mActress   = Regex.Matches(listHtml.Content, actressTemplate);
                var mCompany   = Regex.Matches(listHtml.Content, companyTemplate);
                var mPublisher = Regex.Matches(listHtml.Content, publisherTemplate);
                var mCategory  = Regex.Matches(listHtml.Content, categotyTemplate);

                var id     = mId.Groups[1];
                var title  = mTitle.Groups[1].ToString().Replace(id.ToString(), "").Trim();
                var img    = mImg.Groups[1];
                var date   = mDate.Groups[1];
                var length = mLength.Groups[1];

                var director  = "";
                var actress   = "";
                var company   = "";
                var publisher = "";
                var category  = "";

                foreach (Match d in mDirector)
                {
                    director += d.Groups[2] + ",";
                }

                foreach (Match d in mActress)
                {
                    var act = d.Groups[3].ToString();

                    actress += act + ",";
                }

                foreach (Match d in mCompany)
                {
                    company += d.Groups[2] + ",";
                }

                foreach (Match d in mPublisher)
                {
                    publisher += d.Groups[2] + ",";
                }

                foreach (Match d in mCategory)
                {
                    category += d.Groups[2] + ",";
                }

                DateTime parse = new DateTime(2050, 1, 1);
                av.Name       = title;
                av.ID         = id.ToString();
                av.PictureURL = img.ToString();
                av.Publisher  = publisher;
                DateTime.TryParse(date.ToString(), out parse);
                av.ReleaseDate = parse;
                av.Director    = director;
                av.Actress     = actress;
                av.Company     = company;
                av.Category    = category;
                av.AvLength    = int.Parse(length.ToString());

                return(av);
            }

            return(null);
        }
Exemplo n.º 11
0
        //下载漫画
        public static void TestDownload(string name, string folder)
        {
            Console.WriteLine($"正在处理{name}");

            var prefix = "http://www.5ikanhm.top";
            var html   = HtmlManager.GetHtmlContentViaUrl("http://www.5ikanhm.top/book/423");

            if (html.Success)
            {
                Console.WriteLine($"获取内容成功");

                if (Directory.Exists(folder))
                {
                    Directory.Delete(folder, true);
                }

                Thread.Sleep(100);

                var comicFolder = folder + "\\" + name + "\\";
                Directory.CreateDirectory(comicFolder);

                Console.WriteLine($"新建文件夹成功");

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

                HtmlDocument htmlDocument = new HtmlDocument();
                htmlDocument.LoadHtml(html.Content);

                string xpath = "//ul[@id='detail-list-select']//a";

                HtmlNodeCollection nodes = htmlDocument.DocumentNode.SelectNodes(xpath);

                foreach (var node in nodes)
                {
                    chapters.Add(prefix + node.Attributes["href"].Value);
                }

                foreach (var chapter in chapters)
                {
                    Console.WriteLine($"处理章节{chapter}");

                    var chtml = HtmlManager.GetHtmlContentViaUrl(chapter, agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1");

                    if (chtml.Success)
                    {
                        Console.WriteLine($"处理章节内容成功");
                        htmlDocument.LoadHtml(chtml.Content);

                        string cNameXpath = "//p[@class='view-fix-top-bar-title']";
                        string cXpath     = "//div[@id='cp_img']//img";

                        HtmlNode           cNameNode = htmlDocument.DocumentNode.SelectSingleNode(cNameXpath);
                        HtmlNodeCollection cImgNodes = htmlDocument.DocumentNode.SelectNodes(cXpath);

                        var chaperFolder = comicFolder + cNameNode.InnerText + "\\";
                        Directory.CreateDirectory(chaperFolder);

                        int i = 1;

                        foreach (var img in cImgNodes)
                        {
                            DownloadHelper.DownloadFile(img.Attributes["data-original"].Value, chaperFolder + i + ".jpg");

                            Console.WriteLine($"处理章节{cNameNode.InnerText}, 第 {i++} 张图片");
                        }
                    }
                }
            }
        }
Exemplo n.º 12
0
        public static List <RefreshModel> GetJavbusAVList(string url, int page, bool onlyMag = true)
        {
            List <RefreshModel> ret = new List <RefreshModel>();

            var cc = HtmlManager.GetCookies("https://www.javbus.com");

            if (onlyMag)
            {
                cc.Add(new Cookie()
                {
                    Domain = "www.javbus.com",
                    Name   = "existmag",
                    Value  = "mag"
                });
            }
            else
            {
                cc.Add(new Cookie()
                {
                    Domain = "www.javbus.com",
                    Name   = "existmag",
                    Value  = "all"
                });
            }

            var c = new CookieContainer();

            c.Add(cc);

            for (int i = 1; i <= page; i++)
            {
                var htmlResult = HtmlManager.GetHtmlContentViaUrl(url + "/" + i, "utf-8", true, c);

                if (htmlResult.Success)
                {
                    HtmlDocument htmlDocument = new HtmlDocument();
                    htmlDocument.LoadHtml(htmlResult.Content);

                    var itemPath = "//div[@class='item']";

                    var itemNodes = htmlDocument.DocumentNode.SelectNodes(itemPath);

                    foreach (var item in itemNodes)
                    {
                        if (!item.InnerHtml.Contains("avatar-box"))
                        {
                            RefreshModel temp = new RefreshModel();

                            var itemUrl = item.ChildNodes[1].Attributes["href"].Value;
                            var id      = itemUrl.Substring(itemUrl.LastIndexOf("/") + 1);
                            var name    = item.ChildNodes[1].ChildNodes[1].ChildNodes[1].Attributes["title"].Value;
                            var pic     = item.ChildNodes[1].ChildNodes[1].ChildNodes[1].Attributes["src"].Value;

                            temp.Id   = id;
                            temp.Name = name;
                            temp.Url  = pic.Replace("https://pics.javbus.com/thumb/", "https://pics.javbus.com/cover/").Replace(".jpg", "_b.jpg");

                            ret.Add(temp);
                        }
                    }
                }
            }

            return(ret);
        }
Exemplo n.º 13
0
        public static List <SeedMagnetSearchModel> SearchBtsow(string id)
        {
            List <SeedMagnetSearchModel> ret = new List <SeedMagnetSearchModel>();

            try
            {
                var serachContent = "https://btsow.space/search/" + id;
                var htmlRet       = HtmlManager.GetHtmlWebClient("https://btsow.space", serachContent, null, true);

                if (htmlRet.Success)
                {
                    HtmlDocument htmlDocument = new HtmlDocument();
                    htmlDocument.LoadHtml(htmlRet.Content);

                    string xpath = "//div[@class='row']";

                    HtmlNodeCollection nodes = htmlDocument.DocumentNode.SelectNodes(xpath);

                    foreach (var node in nodes.Take(nodes.Count - 1))
                    {
                        var text = node.ChildNodes[1].ChildNodes[1].InnerText.Trim();
                        var size = FileUtility.GetFileSizeFromString(node.ChildNodes[3].InnerText.Trim());
                        var date = node.ChildNodes[5].InnerText.Trim();
                        var a    = node.ChildNodes[1].OuterHtml;
                        var url  = a.Substring(a.IndexOf("\"") + 1);
                        url = url.Substring(0, url.IndexOf("\""));

                        SeedMagnetSearchModel temp = new SeedMagnetSearchModel
                        {
                            Title  = text,
                            Size   = size,
                            Date   = DateTime.Parse(date),
                            Url    = url,
                            Source = SearchSeedSiteEnum.Btsow
                        };

                        ret.Add(temp);
                    }

                    foreach (var r in ret)
                    {
                        var subHtmlRet = HtmlManager.GetHtmlContentViaUrl(r.Url);

                        if (subHtmlRet.Success)
                        {
                            htmlDocument = new HtmlDocument();
                            htmlDocument.LoadHtml(subHtmlRet.Content);

                            xpath = "//textarea[@class='magnet-link hidden-xs']";

                            HtmlNode node = htmlDocument.DocumentNode.SelectSingleNode(xpath);

                            if (node != null)
                            {
                                r.MagUrl = node.InnerText;
                            }
                        }
                    }
                }
            }
            catch (Exception ee)
            {
            }

            return(ret.OrderByDescending(x => x.Size).ToList());
        }
Exemplo n.º 14
0
        public static List <SeedMagnetSearchModel> SearchJavBus(string avId, CookieContainer cc = null)
        {
            List <SeedMagnetSearchModel> ret = new List <SeedMagnetSearchModel>();

            var refere = "https://www.javbus.com/" + avId;

            var html = HtmlManager.GetHtmlContentViaUrl(refere, "utf-8", false, cc);

            if (html.Success)
            {
                var gidPattern = "var gid = (.*?);";
                var ucPattern  = "var uc = (.*?);";
                var picPattern = "var img = '(.*?)';";

                var gidMatch = Regex.Match(html.Content, gidPattern);
                var ucMatch  = Regex.Match(html.Content, ucPattern);
                var picMatch = Regex.Match(html.Content, picPattern);

                var gid = gidMatch.Groups[1].Value;
                var uc  = ucMatch.Groups[1].Value;
                var pic = picMatch.Groups[1].Value;

                var url = $"https://www.javbus.com/ajax/uncledatoolsbyajax.php?gid={gid}&lang=zh&img={pic}&uc={uc}&floor=922";

                var magHtml = HtmlManager.GetHtmlWebClient(url, null, "javbus.com", "", refere);

                if (magHtml.Success)
                {
                    HtmlDocument htmlDocument = new HtmlDocument();
                    htmlDocument.LoadHtml(magHtml.Content);

                    var magPattern = "//tr[@style=' border-top:#DDDDDD solid 1px']";

                    HtmlNodeCollection nodes = htmlDocument.DocumentNode.SelectNodes(magPattern);

                    if (nodes != null)
                    {
                        foreach (var node in nodes)
                        {
                            var namePart = "";
                            var sizePart = "";
                            var datePart = "";
                            var magUrl   = "";
                            var size     = 0d;

                            try
                            {
                                if (node != null)
                                {
                                    if (node.ChildNodes.Count >= 2)
                                    {
                                        namePart = node.ChildNodes[1].InnerText.Trim();
                                        magUrl   = node.ChildNodes[1].ChildNodes[1].Attributes["href"].Value;
                                    }

                                    if (node.ChildNodes.Count >= 4)
                                    {
                                        sizePart = node.ChildNodes[3].InnerText.Trim();
                                        size     = FileSize.GetByteFromStr(sizePart);
                                    }

                                    if (node.ChildNodes.Count >= 5)
                                    {
                                        datePart = node.ChildNodes[5].InnerText.Trim();
                                    }

                                    ret.Add(new SeedMagnetSearchModel()
                                    {
                                        CompleteCount = 0,
                                        Date          = DateTime.Parse(datePart),
                                        Size          = size,
                                        MagUrl        = magUrl,
                                        Source        = SearchSeedSiteEnum.JavBus,
                                        Title         = namePart,
                                        Url           = ""
                                    });
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                }
            }

            return(ret);
        }