Beispiel #1
0
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                if (!string.IsNullOrEmpty(requeststr) &&
                    item != null)
                {
                    HtmlDocument document = new HtmlDocument();
                    document.LoadHtml(requeststr);

                    HtmlNode node = document.GetElementbyId("content");

                    if (node != null)
                    {
                        item.Title        = node.GetInnerText(node.XPath + "/div[1]/h1[1]");
                        item.CreateTime   = node.GetInnerText(node.XPath + "/div[1]/div[1]/p[3]").Replace("收录时间:", "");
                        item.MagneticLink = node.GetFirstAttrText(node.XPath + "/div[1]/div[1]/p[6]/a[1]", "href");

                        HtmlNodeCollection filelistnodes = node.SelectNodes("//ol/li");
                        if (filelistnodes != null &&
                            filelistnodes.Count > 0)
                        {
                            for (int i = 0; i < filelistnodes.Count; i++)
                            {
                                string text = filelistnodes[i].InnerText;
                                string size = null;

                                if (filelistnodes[i].HasChildNodes)
                                {
                                    HtmlNode sizenode = filelistnodes[i].ChildNodes.FindFirst("span");
                                    if (sizenode != null)
                                    {
                                        size = sizenode.InnerText;
                                        text = text.RemoveEnd(size);
                                    }
                                }

                                item.AddFileItem(new FileItem
                                {
                                    Index    = i + 1,
                                    FileName = text,
                                    Size     = size
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                if (!string.IsNullOrEmpty(requeststr) &&
                    item != null)
                {
                    HtmlDocument document = new HtmlDocument();
                    document.LoadHtml(requeststr);

                    HtmlNode node       = document.GetElementbyId("content");
                    HtmlNode detailnode = node?.SelectSingleNode(node.XPath + "/div[1]/ul[1]");
                    if (detailnode != null)
                    {
                        item.UpdateTime = detailnode.GetInnerText(detailnode.XPath + "/li[3]/span[1]").Replace("更新时间:", "");
                        item.HotLevel   = detailnode.GetInnerText(detailnode.XPath + "/li[6]/span[1]").Replace("访问热度:", "");

                        item.MagneticLink = detailnode.GetFirstAttrText(detailnode.XPath + "/li[9]/span[1]/a[1]", "href");
                        item.ThunderLink  = detailnode.GetFirstAttrText(detailnode.XPath + "/li[10]/span[1]/a[1]", "href");
                    }

                    HtmlNodeCollection filelistnodes = document.GetElementbyId("filelist").ChildNodes;
                    if (filelistnodes != null &&
                        filelistnodes.Count > 0)
                    {
                        for (int i = 0; i < filelistnodes.Count; i++)
                        {
                            string source = filelistnodes[i].GetInnerText(filelistnodes[i].XPath + "/span[1]/script[1]").SubStringInner("document.write(decodeURIComponent(", "));").Replace("+", "").Replace("\"", "");
                            string text   = HttpUtility.UrlDecode(source);
                            string size   = null;

                            size = filelistnodes[i].GetInnerText(filelistnodes[i].XPath + "/span[2]");
                            text = text.RemoveEnd(size);

                            item.AddFileItem(new FileItem
                            {
                                Index    = i + 1,
                                FileName = text,
                                Size     = size
                            });
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }
Beispiel #3
0
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                if (!string.IsNullOrEmpty(requeststr) &&
                    item != null)
                {
                    HtmlDocument document = new HtmlDocument();
                    document.LoadHtml(requeststr);

                    HtmlNode linknode = document.DocumentNode.SelectSingleNode("/html/body/div/div[3]/div[2]/table[1]/tr[5]/td[2]/a");
                    item.MagneticLink = linknode.GetAttributeValue("href", "");

                    var filelistnodes = document.DocumentNode.SelectSingleNode("/html/body/div/div[3]/div[2]/table[2]")
                                        .ChildNodes
                                        .Where(
                        _p => _p.NodeType == HtmlNodeType.Element &&
                        _p.Name == "tr"
                        )
                                        .ToList();

                    if (filelistnodes != null &&
                        filelistnodes.Count > 0)
                    {
                        int index = 1;
                        foreach (HtmlNode filenode in filelistnodes)
                        {
                            if (filenode.NodeType == HtmlNodeType.Element)
                            {
                                item.AddFileItem(new FileItem
                                {
                                    Index    = index++,
                                    FileName = filenode.GetInnerText(filenode.XPath + "/td[2]").RemoveStart("&nbsp"),
                                    Size     = filenode.GetInnerText(filenode.XPath + "/td[1]")
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }
Beispiel #4
0
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);

            MagnetItem item = param as MagnetItem;

            if (item != null &&
                !string.IsNullOrEmpty(requeststr))
            {
                try
                {
                    MatchCollection itemmatchs = Regex.Matches(requeststr, this.ItemMatchString, RegexOptions.IgnoreCase | RegexOptions.Multiline);

                    if (itemmatchs.Count > 0)
                    {
                        int    first = itemmatchs[0].Value.IndexOf("{");
                        int    last  = itemmatchs[0].Value.LastIndexOf(";");
                        string value = itemmatchs[0].Value.Substring(first, last - first);

                        ContentInfomationWrapper infomationWrapper = JsonConvert.DeserializeObject <ContentInfomationWrapper>(value);

                        if (infomationWrapper != null)
                        {
                            item.UpdateTime = infomationWrapper.information.updated_time;
                            item.HotLevel   = infomationWrapper.information.download_count + "";

                            if (infomationWrapper.information.magnet_file_list != null)
                            {
                                int i = 1;
                                foreach (var fileitem in infomationWrapper.information.magnet_file_list)
                                {
                                    item.AddFileItem(new FileItem
                                    {
                                        Index    = i++,
                                        FileName = fileitem.name,
                                        Size     = ((double)fileitem.length / 1024 / 1024 / 1024).ToString("0.00") + " GB"
                                    });
                                }
                            }
                        }
                    }
                }
                catch (Exception)
                {
                }
                finally
                {
                    item.IsDetailLoaded = true;
                }
            }
        }
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                if (!string.IsNullOrEmpty(requeststr) &&
                    item != null)
                {
                    HtmlDocument document = new HtmlDocument();
                    document.LoadHtml(requeststr);

                    HtmlNode linknode = document.DocumentNode.SelectSingleNode("/html/body/div[2]/div[3]/div/div[1]/div[3]/div[2]/div/a[3]");

                    //item.MagneticLink = linknode.GetFirstAttrText(linknode.XPath + "/li[9]/span[1]/a[1]", "href");
                    item.ThunderLink = linknode.GetAttributeValue("href", "");

                    HtmlNodeCollection filelistnodes = document.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[2]/div[3]/div[1]/div[1]/div[5]/div[2]/ul").ChildNodes;

                    if (filelistnodes != null &&
                        filelistnodes.Count > 0)
                    {
                        int index = 1;
                        foreach (HtmlNode filenode in filelistnodes)
                        {
                            if (filenode.NodeType == HtmlNodeType.Element)
                            {
                                string size = filenode.GetInnerText(filenode.XPath + "/span");
                                item.AddFileItem(new FileItem
                                {
                                    Index    = index++,
                                    FileName = filenode.GetInnerText(filenode.XPath).RemoveEnd(size).RemoveEnd("&nbsp;"),
                                    Size     = size
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                if (!string.IsNullOrEmpty(requeststr) &&
                    item != null)
                {
                    HtmlDocument document = new HtmlDocument();
                    document.LoadHtml(requeststr);

                    var filelistnodes = document.DocumentNode.SelectSingleNode("/html/body/div[2]/div[1]/div/ul[2]/li[5]/div/ol")
                                        .ChildNodes
                                        .Where(
                        _p => _p.NodeType == HtmlNodeType.Element &&
                        _p.Name == "li"
                        )
                                        .ToList();

                    if (filelistnodes != null &&
                        filelistnodes.Count > 0)
                    {
                        int index = 1;
                        foreach (HtmlNode filenode in filelistnodes)
                        {
                            string size = filenode.GetInnerText(filenode.XPath + "/span");

                            item.AddFileItem(new FileItem
                            {
                                Index    = index++,
                                FileName = filenode.GetInnerText(filenode.XPath).RemoveEnd(size),
                                Size     = size
                            });
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }
Beispiel #7
0
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                if (!string.IsNullOrEmpty(requeststr) &&
                    item != null)
                {
                    HtmlDocument document = new HtmlDocument();
                    document.LoadHtml(requeststr);

                    item.MagneticLink = document.GetElementbyId("MagnetLink")?.InnerText;

                    HtmlNodeCollection filelistnodes = document.DocumentNode.SelectNodes("//table[@class='table table-striped']/tr");
                    if (filelistnodes != null &&
                        filelistnodes.Count > 0)
                    {
                        for (int i = 1; i < filelistnodes.Count; i++)
                        {
                            string text = filelistnodes[i].GetInnerText(filelistnodes[i].XPath + "/td[1]");
                            string size = filelistnodes[i].GetInnerText(filelistnodes[i].XPath + "/td[2]");

                            item.AddFileItem(new FileItem
                            {
                                Index    = i,
                                FileName = text,
                                Size     = size
                            });
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }
Beispiel #8
0
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                item.AddFileItem(new FileItem
                {
                    FileName = "未知"
                });
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }
        protected override void OnRequestDetailSuccess(object param, string requeststr)
        {
            base.OnRequestDetailSuccess(param, requeststr);
            MagnetItem item = param as MagnetItem;

            try
            {
                requeststr = HttpUtility.HtmlDecode(requeststr);

                if (!string.IsNullOrEmpty(requeststr) &&
                    item != null)
                {
                    HtmlDocument document = new HtmlDocument();
                    document.LoadHtml(requeststr);

                    HtmlNode node = document.DocumentNode.SelectSingleNode("//div[@class='content']");

                    if (node != null)
                    {
                        item.ActiveTime   = node.GetInnerText(node.XPath + "/div[1]/div[1]/p[2]/b[8]");
                        item.MagneticLink = node.GetFirstAttrText(node.XPath + "/div[1]/div[1]/p[6]/a[1]", "href");

                        HtmlNodeCollection filelistnodes1 = node.SelectNodes("//div[@class='dd filelist']/p");
                        HtmlNodeCollection filelistnodes2 = document.GetElementbyId("filelist_hidden").ChildNodes;

                        var filelist = filelistnodes1 == null
                                ?
                                       filelistnodes2 == null ? null : filelistnodes2
                                :
                                       filelistnodes2 == null ? filelistnodes1 : filelistnodes1.Concat(filelistnodes2);

                        if (filelist != null &&
                            filelist.Any())
                        {
                            int i = 1;
                            foreach (var filenode in filelist)
                            {
                                string text = filenode.InnerText;
                                string size = null;

                                if (filenode.HasChildNodes)
                                {
                                    HtmlNode sizenode = filenode.ChildNodes[2];
                                    if (sizenode != null)
                                    {
                                        size = sizenode.InnerText;
                                        text = text.RemoveEnd(size);
                                    }
                                }

                                item.AddFileItem(new FileItem
                                {
                                    Index    = i++,
                                    FileName = text,
                                    Size     = size
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                item.IsDetailLoaded = true;
            }
        }