Пример #1
0
        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);
        }
Пример #2
0
        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;
        }
Пример #3
0
        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&#38;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);
        }
Пример #4
0
        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;
        }
Пример #5
0
        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;
        }
Пример #6
0
        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();
        }
Пример #7
0
        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&#38;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;
        }
Пример #8
0
        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;
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        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("&nbsp;", "");
                }

                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;
        }
Пример #13
0
        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;
            }
        }
Пример #14
0
        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;
            }
        }
Пример #15
0
        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);
        }
Пример #16
0
        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("&nbsp;", "");
                }

                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);
        }
Пример #17
0
        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;
        }
Пример #18
0
        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);
        }