private List <TorrentLink> ParseSource(string output) { List <TorrentLink> torLinks = new List <TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = @"http://www.nyaa.eu/?page=torrentinfo"; string nameStart = ">"; string nameEnd = "</a>"; string torStart = "href=" + quote; string torEnd = quote; string sizeStart = "tlistsize" + quote + ">"; string sizeEnd = "</td>"; string seedStart = "tlistsn" + quote + ">"; string seedEnd = "</td>"; string leechStart = "tlistln" + quote + ">"; string leechEnd = "</td>"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) { break; } int posNameStart = output.IndexOf(nameStart, pos + 1); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); int posTorStart = output.IndexOf(torStart, posNameEnd); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); //Console.WriteLine("{0} - {1}", posTorStart, posTorEnd); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes torLink = HttpUtility.HtmlDecode(torLink); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posNameEnd); int posSizeEnd = 0; if (posSizeStart > 0) { posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } string torSeed = ""; int posSeedStart = output.IndexOf(seedStart, posSizeEnd); int posSeedEnd = 0; if (posSeedStart > 0) { posSeedEnd = output.IndexOf(seedEnd, posSeedStart + seedStart.Length + 1); torSeed = output.Substring(posSeedStart + seedStart.Length, posSeedEnd - posSeedStart - seedStart.Length); } string torLeech = ""; int posLeechStart = output.IndexOf(leechStart, posSeedStart + 3); int posLeechEnd = 0; if (posLeechStart > 0) { posLeechEnd = output.IndexOf(leechEnd, posLeechStart + leechStart.Length + 1); torLeech = output.Substring(posLeechStart + leechStart.Length, posLeechEnd - posLeechStart - leechStart.Length); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName; torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return(torLinks); }
private List<TorrentLink> ParseSource(string output) { List<TorrentLink> torLinks = new List<TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = "<a rel=" + quote + "nofollow" + quote + " type=" + quote + "application/x-bittorrent" + quote; string torStart = "href=" + quote; string torEnd = quote; string nameStart = ">"; string nameEnd = "</a>"; string sizeStart = "Size:"; string sizeEnd = "|"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) break; int posTorStart = output.IndexOf(torStart, pos + 1); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); //Console.WriteLine("{0} - {1}", posTorStart, posTorEnd); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes //torLink = torLink.Replace("amp;", ""); torLink = HttpUtility.HtmlDecode(torLink); //BaseConfig.MyAnimeLog.Write("HttpUtility.HtmlDecode(torLink): {0}", HttpUtility.HtmlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlDecode(torLink): {0}", HttpUtility.UrlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlEncode(torLink): {0}", HttpUtility.UrlEncode(torLink)); int posNameStart = output.IndexOf(nameStart, posTorEnd); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posNameEnd); if (posSizeStart > 0) { int posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName; torrentLink.Size = torSize.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return torLinks; }
private List <TorrentLink> ParseSourceSingleResult(string output) { List <TorrentLink> torLinks = new List <TorrentLink>(); char q = (char)34; string quote = q.ToString(); // Name:</td><td class="tinfotorrentname"> string startBlock = @"Name:"; // class="thead">Name:</td><td class="tinfotorrentname">[Hadena] Koi to Senkyo to Chocolate - 03 [720p] [9CD64623].mkv</td> string nameStart = "tinfotorrentname" + quote + ">"; string nameEnd = "</td>"; // Seeders:</td><td class="vtop"><span class="tinfosn">17</span> string seedStart = "Seeders:</td><td class=" + quote + "vtop" + quote + "><span class=" + quote + "tinfosn" + quote + ">"; string seedEnd = "</span>"; // Leechers:</td><td class="vtop"><span class="tinfoln"> string leechStart = "Leechers:</td><td class=" + quote + "vtop" + quote + "><span class=" + quote + "tinfoln" + quote + ">"; string leechEnd = "</span>"; // File size:</td><td class="vtop">193.8 MiB</td> string sizeStart = "File size:</td><td class=" + quote + "vtop" + quote + ">"; string sizeEnd = "</td>"; // class="tinfodownloadbutton"><a href="http://www.nyaa.eu/?page=download&tid=334194" string torStart = "class=" + quote + "tinfodownloadbutton" + quote + "><a href=" + quote; string torEnd = quote; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) { break; } int posNameStart = output.IndexOf(nameStart, pos + 1); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); string torSeed = ""; int posSeedStart = output.IndexOf(seedStart, posNameEnd); int posSeedEnd = 0; if (posSeedStart > 0) { posSeedEnd = output.IndexOf(seedEnd, posSeedStart + seedStart.Length + 1); torSeed = output.Substring(posSeedStart + seedStart.Length, posSeedEnd - posSeedStart - seedStart.Length); } string torLeech = ""; int posLeechStart = output.IndexOf(leechStart, posSeedEnd + 3); int posLeechEnd = 0; if (posLeechStart > 0) { posLeechEnd = output.IndexOf(leechEnd, posLeechStart + leechStart.Length + 1); torLeech = output.Substring(posLeechStart + leechStart.Length, posLeechEnd - posLeechStart - leechStart.Length); } string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posLeechEnd); int posSizeEnd = 0; if (posSizeStart > 0) { posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } int posTorStart = output.IndexOf(torStart, posSizeEnd); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes torLink = HttpUtility.HtmlDecode(torLink); TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName; torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return(torLinks); }
private List<TorrentLink> ParseSource(string output) { List<TorrentLink> torLinks = new List<TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = @"http://www.nyaa.eu/?page=torrentinfo"; string nameStart = ">"; string nameEnd = "</a>"; string torStart = "href=" + quote; string torEnd = quote; string sizeStart = "tlistsize" + quote + ">"; string sizeEnd = "</td>"; string seedStart = "tlistsn" + quote + ">"; string seedEnd = "</td>"; string leechStart = "tlistln" + quote + ">"; string leechEnd = "</td>"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) break; int posNameStart = output.IndexOf(nameStart, pos + 1); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); int posTorStart = output.IndexOf(torStart, posNameEnd); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); //Console.WriteLine("{0} - {1}", posTorStart, posTorEnd); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes torLink = HttpUtility.HtmlDecode(torLink); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posNameEnd); int posSizeEnd = 0; if (posSizeStart > 0) { posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } string torSeed = ""; int posSeedStart = output.IndexOf(seedStart, posSizeEnd); int posSeedEnd = 0; if (posSeedStart > 0) { posSeedEnd = output.IndexOf(seedEnd, posSeedStart + seedStart.Length + 1); torSeed = output.Substring(posSeedStart + seedStart.Length, posSeedEnd - posSeedStart - seedStart.Length); } string torLeech = ""; int posLeechStart = output.IndexOf(leechStart, posSeedStart + 3); int posLeechEnd = 0; if (posLeechStart > 0) { posLeechEnd = output.IndexOf(leechEnd, posLeechStart + leechStart.Length + 1); torLeech = output.Substring(posLeechStart + leechStart.Length, posLeechEnd - posLeechStart - leechStart.Length); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName; torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return torLinks; }
private List<TorrentLink> ParseSource(string output) { List<TorrentLink> torLinks = new List<TorrentLink>(); char q = (char)34; string quote = q.ToString(); string nameStart = "<a href=" + quote + "series.php?id="; string nameStart2 = quote + ">"; string nameEnd = "</a>"; // title="View Torrent"> string typeStart = "title=" + quote + "View Torrent" + quote + ">"; string typeEnd = "</a>"; // <tr class="edition_info"><td class=" " colspan="5"><strong> //string torrentSectionStart = "<tr class=" + quote + "edition_info"; // <table class="torrent_group"> string torrentSectionStart = "<table class=" + quote + "torrent_group"; // </table> string torrentSectionEnd = "</table>"; // <a href="torrents.php?action=download string torDownloadStart = "<a href=" + quote + "torrents.php?action=download"; string torDownloadEnd = quote; // <a href="torrents.php?id= string torInfoPreStart = "<a href=" + quote + "torrents.php?id="; string torInfoStart = ">"; string torInfoEnd = "</a>"; // <td class="torrent_size"><span> string torSizeStart = "<td class=" + quote + "torrent_size" + quote + "><span>"; string torSizeEnd = "</span>"; // <td class="torrent_seeders" title="Seeders"><span> string torSeedStart = "<td class=" + quote + "torrent_seeders" + quote + " title=" + quote + "Seeders" + quote + "><span>"; string torSeedEnd = "</span>"; // <td class="torrent_leechers" title="Leechers"><span> string torLeechStart = "<td class=" + quote + "torrent_leechers" + quote + " title=" + quote + "Leechers" + quote + "><span>"; string torLeechEnd = "</span>"; // <img src="static/common/hentaic.png" alt="Hentai" title="This torrent is of censored hentai (18+) material!" /> // <img src="static/common/flicon.png" alt="Freeleech!" title="This torrent is freeleech. Remember to seed!" /> string hentaiTag = "alt=" + quote + "Hentai"; string leechTag = "alt=" + quote + "Freeleech"; int pos = output.IndexOf(nameStart, 0); while (pos > 0) { if (pos <= 0) break; //int posnameStart = output.IndexOf(nameStart, pos + 1); int posnameStart2 = output.IndexOf(nameStart2, pos + nameStart.Length); int posnameEnd = output.IndexOf(nameEnd, posnameStart2 + nameStart2.Length + 1); string torName = output.Substring(posnameStart2 + nameStart2.Length, posnameEnd - posnameStart2 - nameStart2.Length); // remove html codes torName = HttpUtility.HtmlDecode(torName); int posTypeStart = output.IndexOf(typeStart, posnameEnd + 1); int posTypeEnd = output.IndexOf(typeEnd, posTypeStart + 1); string torType = output.Substring(posTypeStart + typeStart.Length, posTypeEnd - posTypeStart - typeStart.Length); // get all the torrents // find the section start and end int posTorSectionStart = output.IndexOf(torrentSectionStart, posTypeEnd + 1); int posTorSectionEnd = output.IndexOf(torrentSectionEnd, posTorSectionStart + 1); // find all the torrents int posTorDownloadStart = output.IndexOf(torDownloadStart, posTorSectionStart + 1); while (posTorDownloadStart < posTorSectionEnd && posTorDownloadStart > 0) { int posTorDownloadEnd = output.IndexOf(torDownloadEnd, posTorDownloadStart + 9); string torDownloadLink = output.Substring(posTorDownloadStart + 9, posTorDownloadEnd - posTorDownloadStart - 9); torDownloadLink = HttpUtility.HtmlDecode(torDownloadLink); int posTorInfoPreStart = output.IndexOf(torInfoPreStart, posTorDownloadEnd + 1); int posTorInfoStart = output.IndexOf(torInfoStart, posTorInfoPreStart + 1); int posTorInfoEnd = output.IndexOf(torInfoEnd, posTorInfoStart + 1); string torInfo = output.Substring(posTorInfoStart + 1, posTorInfoEnd - posTorInfoStart - 1); // TODO - extract out <img> imfomation // <img src="static/common/hentaic.png" alt="Hentai" title="This torrent is of censored hentai (18+) material!" /> // <img src="static/common/flicon.png" alt="Freeleech!" title="This torrent is freeleech. Remember to seed!" /> int posImgStart = torInfo.IndexOf("<img src=", 0); if (posImgStart >= 0) { bool hentai = torInfo.ToUpper().Contains(hentaiTag.ToUpper()); bool freeLeech = torInfo.ToUpper().Contains(leechTag.ToUpper()); // remove the img alts torInfo = torInfo.Substring(0, posImgStart - 2); if (hentai) torInfo = torInfo + " [hentai]"; if (freeLeech) torInfo = torInfo + " [FREE Leech]"; } int posTorSizeStart = output.IndexOf(torSizeStart, posTorInfoEnd + 1); int posTorSizeEnd = output.IndexOf(torSizeEnd, posTorSizeStart + 1); string torSize = output.Substring(posTorSizeStart + torSizeStart.Length, posTorSizeEnd - posTorSizeStart - torSizeStart.Length); int posTorSeedStart = output.IndexOf(torSeedStart, posTorSizeEnd + 1); int posTorSeedEnd = output.IndexOf(torSeedEnd, posTorSeedStart + 1); string torSeed = output.Substring(posTorSeedStart + torSeedStart.Length, posTorSeedEnd - posTorSeedStart - torSeedStart.Length); int posTorLeechStart = output.IndexOf(torLeechStart, posTorSeedEnd + 1); int posTorLeechEnd = output.IndexOf(torLeechEnd, posTorLeechStart + 1); string torLeech = output.Substring(posTorLeechStart + torLeechStart.Length, posTorLeechEnd - posTorLeechStart - torLeechStart.Length); TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = string.Format(@"http://animebyt.es/{0}", torDownloadLink); torrentLink.TorrentLinkURL = ""; torrentLink.TorrentName = torName + " - " + torInfo; torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); // find the next download link posTorDownloadStart = output.IndexOf(torDownloadStart, posTorLeechEnd + 1); } // find the next torrent group pos = output.IndexOf(nameStart, pos + 3); } //Console.ReadLine(); return torLinks; }
private void ShowBrowseSources(TorrentLink torLink) { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) return; dlg.Reset(); dlg.SetHeading("Select Source"); dlg.Add("<<< Browse"); dlg.Add("Anime Suki"); dlg.Add("Baka Updates"); dlg.Add("Nyaa Torrents"); dlg.Add("Tokyo Toshokan"); dlg.Add("Baka BT"); dlg.Add("Anime Byt.es"); dlg.DoModal(GUIWindowManager.ActiveWindow); switch (dlg.SelectedLabel) { case 0: ShowContextMenuBrowse(torLink); return; case 1: curBrowseSource = TorrentSource.AnimeSuki; break; case 2: curBrowseSource = TorrentSource.BakaUpdates; break; case 3: curBrowseSource = TorrentSource.Nyaa; break; case 4: curBrowseSource = TorrentSource.TokyoToshokan; break; case 5: curBrowseSource = TorrentSource.BakaBT; break; case 6: curBrowseSource = TorrentSource.AnimeBytes; break; } PerformTorrentBrowseAsync(); }
private List<TorrentLink> ParseSourceSingleResult(string output) { List<TorrentLink> torLinks = new List<TorrentLink>(); char q = (char)34; string quote = q.ToString(); // Name:</td><td class="tinfotorrentname"> string startBlock = @"Name:"; // class="thead">Name:</td><td class="tinfotorrentname">[Hadena] Koi to Senkyo to Chocolate - 03 [720p] [9CD64623].mkv</td> string nameStart = "tinfotorrentname" + quote + ">"; string nameEnd = "</td>"; // Seeders:</td><td class="vtop"><span class="tinfosn">17</span> string seedStart = "Seeders:</td><td class=" + quote + "vtop" + quote + "><span class=" + quote + "tinfosn" + quote + ">"; string seedEnd = "</span>"; // Leechers:</td><td class="vtop"><span class="tinfoln"> string leechStart = "Leechers:</td><td class=" + quote + "vtop" + quote + "><span class=" + quote + "tinfoln" + quote + ">"; string leechEnd = "</span>"; // File size:</td><td class="vtop">193.8 MiB</td> string sizeStart = "File size:</td><td class=" + quote + "vtop" + quote + ">"; string sizeEnd = "</td>"; // class="tinfodownloadbutton"><a href="http://www.nyaa.eu/?page=download&tid=334194" string torStart = "class=" + quote + "tinfodownloadbutton" + quote + "><a href=" + quote; string torEnd = quote; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) break; int posNameStart = output.IndexOf(nameStart, pos + 1); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); string torSeed = ""; int posSeedStart = output.IndexOf(seedStart, posNameEnd); int posSeedEnd = 0; if (posSeedStart > 0) { posSeedEnd = output.IndexOf(seedEnd, posSeedStart + seedStart.Length + 1); torSeed = output.Substring(posSeedStart + seedStart.Length, posSeedEnd - posSeedStart - seedStart.Length); } string torLeech = ""; int posLeechStart = output.IndexOf(leechStart, posSeedEnd + 3); int posLeechEnd = 0; if (posLeechStart > 0) { posLeechEnd = output.IndexOf(leechEnd, posLeechStart + leechStart.Length + 1); torLeech = output.Substring(posLeechStart + leechStart.Length, posLeechEnd - posLeechStart - leechStart.Length); } string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posLeechEnd); int posSizeEnd = 0; if (posSizeStart > 0) { posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } int posTorStart = output.IndexOf(torStart, posSizeEnd); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes torLink = HttpUtility.HtmlDecode(torLink); TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName; torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return torLinks; }
private List<TorrentLink> ParseSourceBrowse(string output) { List<TorrentLink> torLinks = new List<TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = "rlsheader"; string nameStart = "class=" + quote + "thereleasetitle"; string nameStart2 = ">"; string nameEnd = "</a>"; string epnoEnd = "</td>"; string groupStart = "<a href=" + quote + "/groups/info/name"; string groupStart2 = ">"; string groupEnd = "</a>"; string torStart = "<a class='btlink' href=" + quote; string torEnd = quote; int pos = output.IndexOf(startBlock, 0); pos = output.IndexOf(nameStart, pos + 1); while (pos > 0) { if (pos <= 0) break; int posNameStart = output.IndexOf(nameStart, pos); posNameStart = output.IndexOf(nameStart2, posNameStart + nameStart.Length + 1); int posNameEnd = output.IndexOf(nameEnd, posNameStart + 1); string torName = output.Substring(posNameStart + 1, posNameEnd - posNameStart - 1); string epno = ""; int posEpnoEnd = output.IndexOf(epnoEnd, posNameEnd + nameEnd.Length); if (posEpnoEnd > 0) { epno = output.Substring(posNameEnd + nameEnd.Length, posEpnoEnd - posNameEnd - nameEnd.Length); epno = epno.Replace("-", ""); epno = epno.Replace("\t", ""); epno = epno.Trim(); } int posGroupStart = output.IndexOf(groupStart, posNameEnd); posGroupStart = output.IndexOf(groupStart2, posGroupStart + groupStart.Length + 1); int posGroupEnd = output.IndexOf(groupEnd, posGroupStart + 1); string torGroup = output.Substring(posGroupStart + 1, posGroupEnd - posGroupStart - 1); int posTorStart = output.IndexOf(torStart, pos); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = HttpUtility.HtmlDecode(torLink); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = string.Format("{0} - {1} ({2})", torName, epno, torGroup); torrentLink.Size = "UNKNOWN"; torLinks.Add(torrentLink); pos = output.IndexOf(nameStart, pos + 1); } return torLinks; }
private List <TorrentLink> ParseSource(string output) { List <TorrentLink> torLinks = new List <TorrentLink>(); char q = (char)34; string quote = q.ToString(); //<td class="name"> // remove html codes string rubbish1 = "<span class=" + quote + "highlight" + quote + ">"; string rubbish2 = "</span>"; //string startBlock = "<td class=" + quote + "name" + quote; string startBlock = "<td class=" + quote + "category"; string altBlock = "class=" + quote + "alt_title" + quote; string catStart = "title=" + quote; string catEnd = quote; string linkStart = "href=" + quote; string linkEnd = quote; string nameStart = "title=" + quote + "Download torrent:"; string nameStart2 = quote + ">"; string nameEnd = "</a>"; string sizeStart = "<td class=" + quote + "size" + quote + ">"; string sizeEnd = "</td>"; string seedInit = "<td class=" + quote + "peers" + quote + ">"; string seedStart = quote + ">"; string seedEnd = "</a>"; string leechStart = quote + ">"; string leechEnd = "</a>"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) { break; } int poscatStart = output.IndexOf(catStart, pos + 1); int poscatEnd = output.IndexOf(catEnd, poscatStart + catStart.Length + 1); string cat = output.Substring(poscatStart + catStart.Length, poscatEnd - poscatStart - catStart.Length); int poslinkStart = output.IndexOf(linkStart, poscatEnd + 1); int poslinkEnd = output.IndexOf(linkEnd, poslinkStart + linkStart.Length + 1); string link = output.Substring(poslinkStart + linkStart.Length, poslinkEnd - poslinkStart - linkStart.Length); int posnameStart = output.IndexOf(nameStart, poslinkEnd); int posnameStart2 = output.IndexOf(nameStart2, posnameStart + nameStart.Length); int posnameEnd = output.IndexOf(nameEnd, posnameStart2 + nameStart2.Length + 1); string torName = output.Substring(posnameStart2 + nameStart2.Length, posnameEnd - posnameStart2 - nameStart2.Length); torName = torName.Replace(rubbish1, ""); torName = torName.Replace(rubbish2, ""); // remove html codes torName = HttpUtility.HtmlDecode(torName); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posnameEnd); int posSizeEnd = 0; if (posSizeStart > 0) { posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } int posSeedInit = output.IndexOf(seedInit, posSizeEnd); string torSeed = ""; int posSeedStart = output.IndexOf(seedStart, posSeedInit + seedInit.Length + 1); int posSeedEnd = 0; if (posSeedStart > 0) { posSeedEnd = output.IndexOf(seedEnd, posSeedStart + seedStart.Length + 1); torSeed = output.Substring(posSeedStart + seedStart.Length, posSeedEnd - posSeedStart - seedStart.Length); } string torLeech = ""; int posLeechStart = output.IndexOf(leechStart, posSeedStart + 3); int posLeechEnd = 0; if (posLeechStart > 0) { posLeechEnd = output.IndexOf(leechEnd, posLeechStart + leechStart.Length + 1); torLeech = output.Substring(posLeechStart + leechStart.Length, posLeechEnd - posLeechStart - leechStart.Length); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = ""; torrentLink.TorrentLinkURL = string.Format("http://bakabt.me{0} ", link); torrentLink.TorrentName = string.Format("[MAIN] {0} [{1}]", torName.Trim(), cat); torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); // now we have the main link provided by BakaBT // BakaBT also provides alternative links, so lets include those as well int temppos = output.IndexOf(startBlock, pos + 1); int altpos = output.IndexOf(altBlock, pos + 1); while (temppos > altpos && altpos > 0) { string linkStartAlt = "href=" + quote; string linkEndAlt = quote; string nameStartAlt = quote + ">"; string nameEndAlt = "</a>"; string sizeStartAlt = "<td class=" + quote + "size" + quote + ">"; string sizeEndAlt = "</td>"; string seedInitAlt = "<td class=" + quote + "peers" + quote + ">"; string seedStartAlt = quote + ">"; string seedEndAlt = "</a>"; string leechStartAlt = quote + ">"; string leechEndAlt = "</a>"; int poslinkStartAlt = output.IndexOf(linkStartAlt, altpos + 1); int poslinkEndAlt = output.IndexOf(linkEndAlt, poslinkStartAlt + linkStartAlt.Length + 1); string linkAlt = output.Substring(poslinkStartAlt + linkStartAlt.Length, poslinkEndAlt - poslinkStartAlt - linkStartAlt.Length); int posnameStartAlt = output.IndexOf(nameStartAlt, poslinkEndAlt); int posnameEndAlt = output.IndexOf(nameEndAlt, posnameStartAlt + nameStartAlt.Length + 1); string torNameAlt = output.Substring(posnameStartAlt + nameStartAlt.Length, posnameEndAlt - posnameStartAlt - nameStartAlt.Length); // remove html codes torNameAlt = torNameAlt.Replace(rubbish1, ""); torNameAlt = torNameAlt.Replace(rubbish2, ""); torNameAlt = HttpUtility.HtmlDecode(torNameAlt); string torSizeAlt = ""; int posSizeStartAlt = output.IndexOf(sizeStartAlt, posnameEndAlt); int posSizeEndAlt = 0; if (posSizeStartAlt > 0) { posSizeEndAlt = output.IndexOf(sizeEndAlt, posSizeStartAlt + sizeStartAlt.Length + 1); torSizeAlt = output.Substring(posSizeStartAlt + sizeStartAlt.Length, posSizeEndAlt - posSizeStartAlt - sizeStartAlt.Length); } int posSeedInitAlt = output.IndexOf(seedInitAlt, posSizeEndAlt); string torSeedAlt = ""; int posSeedStartAlt = output.IndexOf(seedStartAlt, posSeedInitAlt + seedInitAlt.Length + 1); int posSeedEndAlt = 0; if (posSeedStartAlt > 0) { posSeedEndAlt = output.IndexOf(seedEndAlt, posSeedStartAlt + seedStartAlt.Length + 1); torSeedAlt = output.Substring(posSeedStartAlt + seedStartAlt.Length, posSeedEndAlt - posSeedStartAlt - seedStartAlt.Length); } string torLeechAlt = ""; int posLeechStartAlt = output.IndexOf(leechStartAlt, posSeedStartAlt + 3); int posLeechEndAlt = 0; if (posLeechStartAlt > 0) { posLeechEndAlt = output.IndexOf(leechEndAlt, posLeechStartAlt + leechStartAlt.Length + 1); torLeechAlt = output.Substring(posLeechStartAlt + leechStartAlt.Length, posLeechEndAlt - posLeechStartAlt - leechStartAlt.Length); } TorrentLink torrentLinkAlt = new TorrentLink(); torrentLinkAlt.Source = this.GetSourceName(); torrentLinkAlt.SourceLong = this.GetSourceLongName(); torrentLinkAlt.TorrentDownloadLink = ""; torrentLinkAlt.TorrentLinkURL = string.Format("http://bakabt.me{0} ", linkAlt); torrentLinkAlt.TorrentName = string.Format("[ALT] {0} [{1}]", torNameAlt.Trim(), cat); torrentLinkAlt.Size = torSizeAlt.Trim(); torrentLinkAlt.Seeders = torSeedAlt.Trim(); torrentLinkAlt.Leechers = torLeechAlt.Trim(); torLinks.Add(torrentLinkAlt); altpos = output.IndexOf(altBlock, posLeechEndAlt + 1); } pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return(torLinks); }
private List <TorrentLink> ParseSourceBrowse(string output) { List <TorrentLink> torLinks = new List <TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = "rlsheader"; string nameStart = "class=" + quote + "thereleasetitle"; string nameStart2 = ">"; string nameEnd = "</a>"; string epnoEnd = "</td>"; string groupStart = "<a href=" + quote + "/groups/info/name"; string groupStart2 = ">"; string groupEnd = "</a>"; string torStart = "<a class='btlink' href=" + quote; string torEnd = quote; int pos = output.IndexOf(startBlock, 0); pos = output.IndexOf(nameStart, pos + 1); while (pos > 0) { if (pos <= 0) { break; } int posNameStart = output.IndexOf(nameStart, pos); posNameStart = output.IndexOf(nameStart2, posNameStart + nameStart.Length + 1); int posNameEnd = output.IndexOf(nameEnd, posNameStart + 1); string torName = output.Substring(posNameStart + 1, posNameEnd - posNameStart - 1); string epno = ""; int posEpnoEnd = output.IndexOf(epnoEnd, posNameEnd + nameEnd.Length); if (posEpnoEnd > 0) { epno = output.Substring(posNameEnd + nameEnd.Length, posEpnoEnd - posNameEnd - nameEnd.Length); epno = epno.Replace("-", ""); epno = epno.Replace("\t", ""); epno = epno.Trim(); } int posGroupStart = output.IndexOf(groupStart, posNameEnd); posGroupStart = output.IndexOf(groupStart2, posGroupStart + groupStart.Length + 1); int posGroupEnd = output.IndexOf(groupEnd, posGroupStart + 1); string torGroup = output.Substring(posGroupStart + 1, posGroupEnd - posGroupStart - 1); int posTorStart = output.IndexOf(torStart, pos); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = HttpUtility.HtmlDecode(torLink); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = string.Format("{0} - {1} ({2})", torName, epno, torGroup); torrentLink.Size = "UNKNOWN"; torLinks.Add(torrentLink); pos = output.IndexOf(nameStart, pos + 1); } return(torLinks); }
private List <TorrentLink> ParseSource(string output) { List <TorrentLink> torLinks = new List <TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = "<a rel=" + quote + "nofollow" + quote + " type=" + quote + "application/x-bittorrent" + quote; string torStart = "href=" + quote; string torEnd = quote; string nameStart = ">"; string nameEnd = "</a>"; string sizeStart = "Size:"; string sizeEnd = "|"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) { break; } int posTorStart = output.IndexOf(torStart, pos + 1); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); //Console.WriteLine("{0} - {1}", posTorStart, posTorEnd); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes //torLink = torLink.Replace("amp;", ""); torLink = HttpUtility.HtmlDecode(torLink); //BaseConfig.MyAnimeLog.Write("HttpUtility.HtmlDecode(torLink): {0}", HttpUtility.HtmlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlDecode(torLink): {0}", HttpUtility.UrlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlEncode(torLink): {0}", HttpUtility.UrlEncode(torLink)); int posNameStart = output.IndexOf(nameStart, posTorEnd); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posNameEnd); if (posSizeStart > 0) { int posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName; torrentLink.Size = torSize.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return(torLinks); }
private List<TorrentLink> ParseSource(string output) { List<TorrentLink> torLinks = new List<TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = "<td class=" + quote + "bb_m"; string torStart = "<a target=" + quote + "_top" + quote + " href=" + quote; string torEnd = quote; string nameStart = "rel=" + quote + "nofollow" + quote + ">"; string nameEnd = "</a>"; string groupStart = "<td nowrap=" + quote + "nowrap" + quote + ">"; string groupEnd = "</a>"; string sizeStart = "<td nowrap=" + quote + "nowrap" + quote + ">"; string sizeEnd = "</td>"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) break; int posTorStart = output.IndexOf(torStart, pos + 1); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); //Console.WriteLine("{0} - {1}", posTorStart, posTorEnd); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes //torLink = torLink.Replace("amp;", ""); torLink = HttpUtility.HtmlDecode(torLink); //BaseConfig.MyAnimeLog.Write("HttpUtility.HtmlDecode(torLink): {0}", HttpUtility.HtmlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlDecode(torLink): {0}", HttpUtility.UrlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlEncode(torLink): {0}", HttpUtility.UrlEncode(torLink)); int posNameStart = output.IndexOf(nameStart, posTorEnd); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); torName = torName.Replace("<b>", ""); torName = torName.Replace("</b>", ""); int posGroupStart = output.IndexOf(groupStart, posNameEnd); posGroupStart = output.IndexOf(">", posGroupStart + groupStart.Length + 1); int posGroupEnd = output.IndexOf(groupEnd, posGroupStart + 1); string torGroup = output.Substring(posGroupStart + 1, posGroupEnd - posGroupStart - 1); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posGroupEnd); if (posSizeStart > 0) { int posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); torSize = torSize.Replace(" ", ""); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName + " (" + torGroup + ")"; torrentLink.Size = torSize.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return torLinks; }
private void ShowContextMenuSearch(TorrentLink torLink) { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) return; dlg.Reset(); dlg.SetHeading("Search"); dlg.Add("Download via uTorrent"); dlg.Add("Manual Search"); dlg.Add("Recent Searches >>>"); dlg.Add("Clear Search History"); dlg.DoModal(GUIWindowManager.ActiveWindow); switch (dlg.SelectedLabel) { case 0: if (torLink != null) { MainWindow.uTorrent.AddTorrentFromURL(torLink.TorrentDownloadLink); LoadUTorrentListAsync(); } break; case 1: string criteria = ""; if (Utils.DialogText(ref criteria, GetID)) { MainWindow.currentDownloadSearch = new DownloadSearchCriteria(DownloadSearchType.Manual, criteria); PerformTorrentSearchAsync(); } break; case 2: ShowRecentSearches(); break; case 3: MainWindow.downloadSearchHistory.Clear(); MainWindow.downloadSearchResultsHistory.Clear(); setGUIProperty("Search.ResultDescription", "-"); setGUIProperty("Search.Summary", "-"); if (dummyPageSearch.Visible) m_Facade.Clear(); break; } }
private void ShowContextMenuBrowse(TorrentLink torLink) { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) return; dlg.Reset(); dlg.SetHeading("Browse"); dlg.Add("Download via uTorrent"); dlg.Add("Select Source"); dlg.DoModal(GUIWindowManager.ActiveWindow); switch (dlg.SelectedLabel) { case 0: if (torLink != null) { MainWindow.uTorrent.AddTorrentFromURL(torLink.TorrentDownloadLink); LoadUTorrentListAsync(); } break; case 1: ShowBrowseSources(torLink); break; } }
private List <TorrentLink> ParseSource(string output) { List <TorrentLink> torLinks = new List <TorrentLink>(); char q = (char)34; string quote = q.ToString(); string nameStart = "<a href=" + quote + "series.php?id="; string nameStart2 = quote + ">"; string nameEnd = "</a>"; // title="View Torrent"> string typeStart = "title=" + quote + "View Torrent" + quote + ">"; string typeEnd = "</a>"; // <tr class="edition_info"><td class=" " colspan="5"><strong> //string torrentSectionStart = "<tr class=" + quote + "edition_info"; // <table class="torrent_group"> string torrentSectionStart = "<table class=" + quote + "torrent_group"; // </table> string torrentSectionEnd = "</table>"; // <a href="torrents.php?action=download string torDownloadStart = "<a href=" + quote + "torrents.php?action=download"; string torDownloadEnd = quote; // <a href="torrents.php?id= string torInfoPreStart = "<a href=" + quote + "torrents.php?id="; string torInfoStart = ">"; string torInfoEnd = "</a>"; // <td class="torrent_size"><span> string torSizeStart = "<td class=" + quote + "torrent_size" + quote + "><span>"; string torSizeEnd = "</span>"; // <td class="torrent_seeders" title="Seeders"><span> string torSeedStart = "<td class=" + quote + "torrent_seeders" + quote + " title=" + quote + "Seeders" + quote + "><span>"; string torSeedEnd = "</span>"; // <td class="torrent_leechers" title="Leechers"><span> string torLeechStart = "<td class=" + quote + "torrent_leechers" + quote + " title=" + quote + "Leechers" + quote + "><span>"; string torLeechEnd = "</span>"; // <img src="static/common/hentaic.png" alt="Hentai" title="This torrent is of censored hentai (18+) material!" /> // <img src="static/common/flicon.png" alt="Freeleech!" title="This torrent is freeleech. Remember to seed!" /> string hentaiTag = "alt=" + quote + "Hentai"; string leechTag = "alt=" + quote + "Freeleech"; int pos = output.IndexOf(nameStart, 0); while (pos > 0) { if (pos <= 0) { break; } //int posnameStart = output.IndexOf(nameStart, pos + 1); int posnameStart2 = output.IndexOf(nameStart2, pos + nameStart.Length); int posnameEnd = output.IndexOf(nameEnd, posnameStart2 + nameStart2.Length + 1); string torName = output.Substring(posnameStart2 + nameStart2.Length, posnameEnd - posnameStart2 - nameStart2.Length); // remove html codes torName = HttpUtility.HtmlDecode(torName); int posTypeStart = output.IndexOf(typeStart, posnameEnd + 1); int posTypeEnd = output.IndexOf(typeEnd, posTypeStart + 1); string torType = output.Substring(posTypeStart + typeStart.Length, posTypeEnd - posTypeStart - typeStart.Length); // get all the torrents // find the section start and end int posTorSectionStart = output.IndexOf(torrentSectionStart, posTypeEnd + 1); int posTorSectionEnd = output.IndexOf(torrentSectionEnd, posTorSectionStart + 1); // find all the torrents int posTorDownloadStart = output.IndexOf(torDownloadStart, posTorSectionStart + 1); while (posTorDownloadStart < posTorSectionEnd && posTorDownloadStart > 0) { int posTorDownloadEnd = output.IndexOf(torDownloadEnd, posTorDownloadStart + 9); string torDownloadLink = output.Substring(posTorDownloadStart + 9, posTorDownloadEnd - posTorDownloadStart - 9); torDownloadLink = HttpUtility.HtmlDecode(torDownloadLink); int posTorInfoPreStart = output.IndexOf(torInfoPreStart, posTorDownloadEnd + 1); int posTorInfoStart = output.IndexOf(torInfoStart, posTorInfoPreStart + 1); int posTorInfoEnd = output.IndexOf(torInfoEnd, posTorInfoStart + 1); string torInfo = output.Substring(posTorInfoStart + 1, posTorInfoEnd - posTorInfoStart - 1); // TODO - extract out <img> imfomation // <img src="static/common/hentaic.png" alt="Hentai" title="This torrent is of censored hentai (18+) material!" /> // <img src="static/common/flicon.png" alt="Freeleech!" title="This torrent is freeleech. Remember to seed!" /> int posImgStart = torInfo.IndexOf("<img src=", 0); if (posImgStart >= 0) { bool hentai = torInfo.ToUpper().Contains(hentaiTag.ToUpper()); bool freeLeech = torInfo.ToUpper().Contains(leechTag.ToUpper()); // remove the img alts torInfo = torInfo.Substring(0, posImgStart - 2); if (hentai) { torInfo = torInfo + " [hentai]"; } if (freeLeech) { torInfo = torInfo + " [FREE Leech]"; } } int posTorSizeStart = output.IndexOf(torSizeStart, posTorInfoEnd + 1); int posTorSizeEnd = output.IndexOf(torSizeEnd, posTorSizeStart + 1); string torSize = output.Substring(posTorSizeStart + torSizeStart.Length, posTorSizeEnd - posTorSizeStart - torSizeStart.Length); int posTorSeedStart = output.IndexOf(torSeedStart, posTorSizeEnd + 1); int posTorSeedEnd = output.IndexOf(torSeedEnd, posTorSeedStart + 1); string torSeed = output.Substring(posTorSeedStart + torSeedStart.Length, posTorSeedEnd - posTorSeedStart - torSeedStart.Length); int posTorLeechStart = output.IndexOf(torLeechStart, posTorSeedEnd + 1); int posTorLeechEnd = output.IndexOf(torLeechEnd, posTorLeechStart + 1); string torLeech = output.Substring(posTorLeechStart + torLeechStart.Length, posTorLeechEnd - posTorLeechStart - torLeechStart.Length); TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = string.Format(@"http://animebyt.es/{0}", torDownloadLink); torrentLink.TorrentLinkURL = ""; torrentLink.TorrentName = torName + " - " + torInfo; torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); // find the next download link posTorDownloadStart = output.IndexOf(torDownloadStart, posTorLeechEnd + 1); } // find the next torrent group pos = output.IndexOf(nameStart, pos + 3); } //Console.ReadLine(); return(torLinks); }
private List <TorrentLink> ParseSource(string output) { List <TorrentLink> torLinks = new List <TorrentLink>(); char q = (char)34; string quote = q.ToString(); string startBlock = "<td class=" + quote + "bb_m"; string torStart = "<a target=" + quote + "_top" + quote + " href=" + quote; string torEnd = quote; string nameStart = "rel=" + quote + "nofollow" + quote + ">"; string nameEnd = "</a>"; string groupStart = "<td nowrap=" + quote + "nowrap" + quote + ">"; string groupEnd = "</a>"; string sizeStart = "<td nowrap=" + quote + "nowrap" + quote + ">"; string sizeEnd = "</td>"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) { break; } int posTorStart = output.IndexOf(torStart, pos + 1); int posTorEnd = output.IndexOf(torEnd, posTorStart + torStart.Length + 1); //Console.WriteLine("{0} - {1}", posTorStart, posTorEnd); string torLink = output.Substring(posTorStart + torStart.Length, posTorEnd - posTorStart - torStart.Length); torLink = DownloadHelper.FixNyaaTorrentLink(torLink); // remove html codes //torLink = torLink.Replace("amp;", ""); torLink = HttpUtility.HtmlDecode(torLink); //BaseConfig.MyAnimeLog.Write("HttpUtility.HtmlDecode(torLink): {0}", HttpUtility.HtmlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlDecode(torLink): {0}", HttpUtility.UrlDecode(torLink)); //BaseConfig.MyAnimeLog.Write("HttpUtility.UrlEncode(torLink): {0}", HttpUtility.UrlEncode(torLink)); int posNameStart = output.IndexOf(nameStart, posTorEnd); int posNameEnd = output.IndexOf(nameEnd, posNameStart + nameStart.Length + 1); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torName = output.Substring(posNameStart + nameStart.Length, posNameEnd - posNameStart - nameStart.Length); torName = torName.Replace("<b>", ""); torName = torName.Replace("</b>", ""); int posGroupStart = output.IndexOf(groupStart, posNameEnd); posGroupStart = output.IndexOf(">", posGroupStart + groupStart.Length + 1); int posGroupEnd = output.IndexOf(groupEnd, posGroupStart + 1); string torGroup = output.Substring(posGroupStart + 1, posGroupEnd - posGroupStart - 1); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posGroupEnd); if (posSizeStart > 0) { int posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); torSize = torSize.Replace(" ", ""); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = torLink; torrentLink.TorrentName = torName + " (" + torGroup + ")"; torrentLink.Size = torSize.Trim(); torLinks.Add(torrentLink); pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return(torLinks); }
private List<TorrentLink> ParseSource(string output) { List<TorrentLink> torLinks = new List<TorrentLink>(); char q = (char)34; string quote = q.ToString(); //<td class="name"> // remove html codes string rubbish1 = "<span class=" + quote + "highlight" + quote + ">"; string rubbish2 = "</span>"; //string startBlock = "<td class=" + quote + "name" + quote; string startBlock = "<td class=" + quote + "category"; string altBlock = "class=" + quote + "alt_title" + quote; string catStart = "title=" + quote; string catEnd = quote; string linkStart = "href=" + quote; string linkEnd = quote; string nameStart = "title=" + quote + "Download torrent:"; string nameStart2 = quote + ">"; string nameEnd = "</a>"; string sizeStart = "<td class=" + quote + "size" + quote + ">"; string sizeEnd = "</td>"; string seedInit = "<td class=" + quote + "peers" + quote + ">"; string seedStart = quote + ">"; string seedEnd = "</a>"; string leechStart = quote + ">"; string leechEnd = "</a>"; int pos = output.IndexOf(startBlock, 0); while (pos > 0) { if (pos <= 0) break; int poscatStart = output.IndexOf(catStart, pos + 1); int poscatEnd = output.IndexOf(catEnd, poscatStart + catStart.Length + 1); string cat = output.Substring(poscatStart + catStart.Length, poscatEnd - poscatStart - catStart.Length); int poslinkStart = output.IndexOf(linkStart, poscatEnd + 1); int poslinkEnd = output.IndexOf(linkEnd, poslinkStart + linkStart.Length + 1); string link = output.Substring(poslinkStart + linkStart.Length, poslinkEnd - poslinkStart - linkStart.Length); int posnameStart = output.IndexOf(nameStart, poslinkEnd); int posnameStart2 = output.IndexOf(nameStart2, posnameStart + nameStart.Length); int posnameEnd = output.IndexOf(nameEnd, posnameStart2 + nameStart2.Length + 1); string torName = output.Substring(posnameStart2 + nameStart2.Length, posnameEnd - posnameStart2 - nameStart2.Length); torName = torName.Replace(rubbish1, ""); torName = torName.Replace(rubbish2, ""); // remove html codes torName = HttpUtility.HtmlDecode(torName); //Console.WriteLine("{0} - {1}", posNameStart, posNameEnd); string torSize = ""; int posSizeStart = output.IndexOf(sizeStart, posnameEnd); int posSizeEnd = 0; if (posSizeStart > 0) { posSizeEnd = output.IndexOf(sizeEnd, posSizeStart + sizeStart.Length + 1); torSize = output.Substring(posSizeStart + sizeStart.Length, posSizeEnd - posSizeStart - sizeStart.Length); } int posSeedInit = output.IndexOf(seedInit, posSizeEnd); string torSeed = ""; int posSeedStart = output.IndexOf(seedStart, posSeedInit + seedInit.Length + 1); int posSeedEnd = 0; if (posSeedStart > 0) { posSeedEnd = output.IndexOf(seedEnd, posSeedStart + seedStart.Length + 1); torSeed = output.Substring(posSeedStart + seedStart.Length, posSeedEnd - posSeedStart - seedStart.Length); } string torLeech = ""; int posLeechStart = output.IndexOf(leechStart, posSeedStart + 3); int posLeechEnd = 0; if (posLeechStart > 0) { posLeechEnd = output.IndexOf(leechEnd, posLeechStart + leechStart.Length + 1); torLeech = output.Substring(posLeechStart + leechStart.Length, posLeechEnd - posLeechStart - leechStart.Length); } TorrentLink torrentLink = new TorrentLink(); torrentLink.Source = this.GetSourceName(); torrentLink.SourceLong = this.GetSourceLongName(); torrentLink.TorrentDownloadLink = ""; torrentLink.TorrentLinkURL = string.Format("http://bakabt.me{0} ", link); torrentLink.TorrentName = string.Format("[MAIN] {0} [{1}]", torName.Trim(), cat); torrentLink.Size = torSize.Trim(); torrentLink.Seeders = torSeed.Trim(); torrentLink.Leechers = torLeech.Trim(); torLinks.Add(torrentLink); // now we have the main link provided by BakaBT // BakaBT also provides alternative links, so lets include those as well int temppos = output.IndexOf(startBlock, pos + 1); int altpos = output.IndexOf(altBlock, pos + 1); while (temppos > altpos && altpos > 0) { string linkStartAlt = "href=" + quote; string linkEndAlt = quote; string nameStartAlt = quote + ">"; string nameEndAlt = "</a>"; string sizeStartAlt = "<td class=" + quote + "size" + quote + ">"; string sizeEndAlt = "</td>"; string seedInitAlt = "<td class=" + quote + "peers" + quote + ">"; string seedStartAlt = quote + ">"; string seedEndAlt = "</a>"; string leechStartAlt = quote + ">"; string leechEndAlt = "</a>"; int poslinkStartAlt = output.IndexOf(linkStartAlt, altpos + 1); int poslinkEndAlt = output.IndexOf(linkEndAlt, poslinkStartAlt + linkStartAlt.Length + 1); string linkAlt = output.Substring(poslinkStartAlt + linkStartAlt.Length, poslinkEndAlt - poslinkStartAlt - linkStartAlt.Length); int posnameStartAlt = output.IndexOf(nameStartAlt, poslinkEndAlt); int posnameEndAlt = output.IndexOf(nameEndAlt, posnameStartAlt + nameStartAlt.Length + 1); string torNameAlt = output.Substring(posnameStartAlt + nameStartAlt.Length, posnameEndAlt - posnameStartAlt - nameStartAlt.Length); // remove html codes torNameAlt = torNameAlt.Replace(rubbish1, ""); torNameAlt = torNameAlt.Replace(rubbish2, ""); torNameAlt = HttpUtility.HtmlDecode(torNameAlt); string torSizeAlt = ""; int posSizeStartAlt = output.IndexOf(sizeStartAlt, posnameEndAlt); int posSizeEndAlt = 0; if (posSizeStartAlt > 0) { posSizeEndAlt = output.IndexOf(sizeEndAlt, posSizeStartAlt + sizeStartAlt.Length + 1); torSizeAlt = output.Substring(posSizeStartAlt + sizeStartAlt.Length, posSizeEndAlt - posSizeStartAlt - sizeStartAlt.Length); } int posSeedInitAlt = output.IndexOf(seedInitAlt, posSizeEndAlt); string torSeedAlt = ""; int posSeedStartAlt = output.IndexOf(seedStartAlt, posSeedInitAlt + seedInitAlt.Length + 1); int posSeedEndAlt = 0; if (posSeedStartAlt > 0) { posSeedEndAlt = output.IndexOf(seedEndAlt, posSeedStartAlt + seedStartAlt.Length + 1); torSeedAlt = output.Substring(posSeedStartAlt + seedStartAlt.Length, posSeedEndAlt - posSeedStartAlt - seedStartAlt.Length); } string torLeechAlt = ""; int posLeechStartAlt = output.IndexOf(leechStartAlt, posSeedStartAlt + 3); int posLeechEndAlt = 0; if (posLeechStartAlt > 0) { posLeechEndAlt = output.IndexOf(leechEndAlt, posLeechStartAlt + leechStartAlt.Length + 1); torLeechAlt = output.Substring(posLeechStartAlt + leechStartAlt.Length, posLeechEndAlt - posLeechStartAlt - leechStartAlt.Length); } TorrentLink torrentLinkAlt = new TorrentLink(); torrentLinkAlt.Source = this.GetSourceName(); torrentLinkAlt.SourceLong = this.GetSourceLongName(); torrentLinkAlt.TorrentDownloadLink = ""; torrentLinkAlt.TorrentLinkURL = string.Format("http://bakabt.me{0} ", linkAlt); torrentLinkAlt.TorrentName = string.Format("[ALT] {0} [{1}]", torNameAlt.Trim(), cat); torrentLinkAlt.Size = torSizeAlt.Trim(); torrentLinkAlt.Seeders = torSeedAlt.Trim(); torrentLinkAlt.Leechers = torLeechAlt.Trim(); torLinks.Add(torrentLinkAlt); altpos = output.IndexOf(altBlock, posLeechEndAlt + 1); } pos = output.IndexOf(startBlock, pos + 1); //Console.WriteLine("{0} - {1}", torName, torLink); } //Console.ReadLine(); return torLinks; }
private void DisplayTorrentLinkDetails(TorrentLink tor) { clearGUIProperty("TorrentLink.Name"); clearGUIProperty("TorrentLink.Size"); clearGUIProperty("TorrentLink.Seeders"); clearGUIProperty("TorrentLink.Leechers"); clearGUIProperty("TorrentLink.Source"); clearGUIProperty("TorrentLink.SourceLong"); setGUIProperty("TorrentLink.Name", tor.TorrentName); setGUIProperty("TorrentLink.Size", tor.Size); setGUIProperty("TorrentLink.Seeders", tor.Seeders); setGUIProperty("TorrentLink.Leechers", tor.Leechers); setGUIProperty("TorrentLink.Source", tor.Source); setGUIProperty("TorrentLink.SourceLong", tor.SourceLong); }