예제 #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> 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);
        }
예제 #3
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);
        }
예제 #4
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);
        }
예제 #5
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);
        }