/// <summary> /// 加载内容 /// </summary> public override void LookupTorrentContents(IResourceInfo torrent) { var url = GetDetailUrl(torrent); var htmlContext = NetworkClient.Create <string>(HttpMethod.Get, url, ReferUrlPage).Send(); if (!htmlContext.IsValid()) { return; } var html = htmlContext.Result.SearchStringTag("id=\"filelist\">", "</ul>"); if (string.IsNullOrEmpty(html)) { return; } var charPos = 0; var row = ""; while (!string.IsNullOrEmpty((row = html.SearchStringTag("<li", "</li>", ref charPos)))) { var m = Regex.Match(row, "<span.*?>([^<]+)</span><span.*?>([^<]+)</span>", RegexOptions.IgnoreCase | RegexOptions.Singleline); if (!m.Success) { continue; } var path = m.GetGroupValue(1); var size = m.GetGroupValue(2); AddFileNode(torrent, BrtUtility.ClearString(path), null, BrtUtility.ClearString(size)); } }
/// <summary> /// 加载内容 /// </summary> public override void LookupTorrentContents(IResourceInfo torrent) { var url = GetDetailUrl(torrent); var htmlContext = NetworkClient.Create <string>(HttpMethod.Get, url, _referUrl).Send(); if (!htmlContext.IsValid()) { return; } var html = htmlContext.Result.SearchStringTag("<th>文件名</th></tr>", "</table>"); if (string.IsNullOrEmpty(html)) { return; } var charPos = 0; var row = ""; while (!string.IsNullOrEmpty((row = html.SearchStringTag("<tr", "</tr>", ref charPos)))) { var m = Regex.Match(row, @"<td>([\.\d]+(\s| )+\w+)</td>.*?<td>(.*?)</td>", RegexOptions.IgnoreCase); if (!m.Success) { continue; } var path = m.GetGroupValue(3); var size = m.GetGroupValue(1); AddFileNode(torrent, BrtUtility.ClearString(path), null, BrtUtility.ClearString(size)); } }
protected override void LoadSubResourcesCore(ResourceInfo resource) { if (resource.SubResources != null) { return; } var url = GetDetailUrl(resource); var ctx = NetworkClient.Create <HtmlDocument>(HttpMethod.Get, url).Send(); if (!ctx.IsValid()) { return; } var nodes = ctx.Result.DocumentNode.SelectNodes("//table[@id='emuleFile']//tr[position()>1 and position()<last()]"); if (nodes == null) { return; } var subRes = new List <IResourceInfo>(); foreach (var node in nodes) { var link = node.SelectSingleNode("td[2]/a"); if (link == null) { continue; } var title = link.GetAttributeValue("title", ""); var linkvalue = link.GetAttributeValue("href", ""); if (linkvalue.StartsWith("ed2k://")) { //电驴资源 //ed2k://|file|%5BPBS.%E8%87%AA%E7%84%B6S27E01.%E7%99%BD%E9%9B%AA%E9%B9%B0%E7%8B%BC%5DPBS.Nature.S27E01.White.Falcon.White.Wolf.2008.720p.HDTV.AC3-SoS.avi|1772847104|d645fc5169c7646d7f13c958704f1f54|h=cidyzfagvpgfpunxdlxvhyfxyrwe3t3s|/ var reg = Regex.Match(linkvalue, "\\|file\\|([^\\|]+)\\|(\\d+)\\|([a-z\\d]+)", RegexOptions.IgnoreCase); if (!reg.Success) { continue; } var filename = BrtUtility.ClearString(UD(reg.GetGroupValue(1))); var hash = reg.GetGroupValue(3); var filesize = reg.GetGroupValue(2).ToInt64(); var res = CreateResourceInfo(hash, filename, ResourceType.Ed2K); res.DownloadSizeValue = filesize; subRes.Add(res); } else if (linkvalue.StartsWith("magnet:")) { //磁力链 //magnet:?xt=urn:btih:47fc15e7d5f3ad834f6f2152d0983cd07bafad9d&dn=菲洛梅娜.Philomena.2013.BD1080P.X264.AAC.english.CHS-ENG.Mp4Ba[ICILI.COM] var reg = Regex.Match(linkvalue, "btih:([a-f\\d]{40})", RegexOptions.IgnoreCase); if (!reg.Success) { continue; } var filename = BrtUtility.ClearString(UD(title)); var hash = reg.GetGroupValue(1); var res = CreateResourceInfo(hash, filename, ResourceType.BitTorrent); res.DownloadSizeValue = null; subRes.Add(res); } } resource.SubResources = subRes.ToArray(); base.LoadSubResourcesCore(resource); }