All pastes #341527 Raw Edit

Someone

public text v1 · immutable
·published 2007-02-05 18:34 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;
using System.Web;
using System.IO;
using System.Threading;
using System.Diagnostics;

namespace TrackBack
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }
        int intSuccessful = 0;
        int seconds = 0;
        int intAll = 0;
        int fail = 0;
        int scraped = 0;
        string[] trackbackRegex = {

            "trackback:ping=\"(?<trackback>.*?)\"",
            "<a href=\"(?<trackback>[^\"]+)\" rel=\"trackback\">",
            "Trackback URI:.(?<trackback>http:.*?)<", 
            "<a href=\"(?<trackback>[^\"]+)\">Trackback <acronym",
            "<a href=\"(?<trackback>[^\"]+)\" title=\"Trackback URI\">", 
            "\"(?<trackback>http[^\"]*wp-trackback.php[^\"]*)\"/",
            "\"(?<trackback>http[^\"]*/trackback/[^\"]*)\"/",
            "(?<trackback>http.*action=Trackback.*)",
            ">(?<trackback>[^<]*trackback.php[^<]*)<",
            "href=\"(?<trackback>[^\"]+)\" onclick=\"opentrackback", 
            "\"(?<trackback>http[^\"]+mt-tb.cgi[^\"]*)\"",
            "(?<trackback>http://spaces.msn.com[^\']+.trak)",
            "/\'(?<trackback>http://spaces.msn.com[^\']+trackback)",
            "<a href=\"(?<trackback>[^\"]+)\">trackback uri.?</a>"
};
        Random RandomClass = new Random();
        string[] predefinedKeywords = { "\"powered by moveable type\"", "\"powered by drupal\"", "\"powered by joomla\"", "\"powered by typepad\"", "\"powered by wordpress\"", "\"powered by qumana\"", "\"published with textpattern\"" };

        public void ReadFile(string filename)
        {
            StreamReader file;
            file = File.OpenText(filename);
            int max, ports;
            ThreadPool.GetMaxThreads(out max, out ports);
            ThreadPool.SetMaxThreads(Convert.ToInt32(txtThreadCount.Text), ports);
            ThreadPool.GetMinThreads(out max, out ports);
            ThreadPool.SetMinThreads(30, ports);
            List<string> urlArray = new List<string>();
            List<string> randomizedUrlsArray = new List<string>();

            int i = 0;
            Random RandomClass3 = new Random();
            while (!file.EndOfStream)
            {

                string url = file.ReadLine().Trim();
                urlArray.Add(url);
               
            }
            int s = 0;
            while ( s<i)
            {
                randomizedUrlsArray.Add(urlArray[RandomClass3.Next(0, urlArray.Count)]);
                s+=1;
            }
            randomizedUrlsArray.ForEach(delegate(String url2){WaitCallback callback = delegate(object state) { SendTrackback((string)state); };ThreadPool.QueueUserWorkItem(callback, url2);});

            }
        

        public void ReadFile2(string filename)
        {
            StreamReader file;
            file = File.OpenText(filename);
            while (!file.EndOfStream)
            {
                string keyword = file.ReadLine().Trim();
                WaitCallback callback = delegate(object state) { ScrapeSE((string)state); };
                ThreadPool.QueueUserWorkItem(callback, keyword);


            }
        }
        public void ReadFile3(string filename)
        {
            StreamReader file;
            file = File.OpenText(filename);
            int max, ports;
            ThreadPool.GetMaxThreads(out max, out ports);
            ThreadPool.SetMaxThreads(Convert.ToInt32(txtThreadCount2.Text), ports);
            ThreadPool.GetMinThreads(out max, out ports);
            ThreadPool.SetMinThreads(30, ports);
            while (!file.EndOfStream)
            {

                string url = file.ReadLine().Trim();
                WaitCallback callback = delegate(object state) { GutTrackBackUri((string)state); };
                ThreadPool.QueueUserWorkItem(callback, url);



            }


        }



        public void ScrapeGoogle(string wholeKeyword)
        {
            HttpWebRequest myReq;
            try { myReq = (HttpWebRequest)WebRequest.Create("http://www.google.com/search?q=" + wholeKeyword + "&num=100"  ); }
            catch { return; }
            myReq.UserAgent = "Mozilla FireFox";
            WebResponse myRes;
            try { myRes = myReq.GetResponse(); }
            catch { return; }
            StreamReader responseStream = new StreamReader(myRes.GetResponseStream(), System.Text.Encoding.GetEncoding(1252));
            string response;
            try { response = responseStream.ReadToEnd(); }
            catch { return; }
            Regex r = new Regex("<div class=g><a href=\"(?<urls>.*?)\"", RegexOptions.Compiled);

            responseStream.Close();
            myRes.Close();
            try
            {

                MatchCollection matches = r.Matches(response, 0);
                foreach (Match match in matches)
                {
                    StreamWriter SW = File.AppendText(txtLog2.Text);
                    SW.WriteLine(match.Groups["urls"].Value);
                    SW.Close();
                    scraped += 1;
                }
            }
            catch
            {
                return;
            }

        }

        public void ScrapeYahoo(string wholeKeyword)
        {
            HttpWebRequest myReq;

            try { myReq = (HttpWebRequest)WebRequest.Create("http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=" + RandomClass.Next(0,100000).ToString() + "&results=100&query=" + wholeKeyword); }
            catch { return; }
            myReq.UserAgent = "Mozilla FireFox";
            WebResponse myRes ;
            try { myRes = myReq.GetResponse(); }
            catch {return;};
            StreamReader responseStream = new StreamReader(myRes.GetResponseStream(), System.Text.Encoding.GetEncoding(1252));
            string response;
            try { response = responseStream.ReadToEnd(); }
            catch { return; }
            Regex r = new Regex("</Summary><Url>(?<urls>.*?)</Url>", RegexOptions.Compiled);

            responseStream.Close();
            myRes.Close();
            try
            {

                MatchCollection matches = r.Matches(response, 0);
                foreach (Match match in matches)
                {
                    StreamWriter SW = File.AppendText(txtLog2.Text);
                    SW.WriteLine(match.Groups["urls"].Value);
                    SW.Close();
                    scraped += 1;
                }
            }
            catch
            {
                return;
            }
        }
        public void ScrapeMsn(string wholeKeyword)
        {
            HttpWebRequest myReq;

            try { myReq = (HttpWebRequest)WebRequest.Create("http://search.msn.com/results.aspx?format=rss&FORM=R0RE&q=" + wholeKeyword ); }
            catch { return; }
            myReq.UserAgent = "Mozilla FireFox";
            WebResponse myRes;
            try
            {
                myRes = myReq.GetResponse();
            }
            catch
            {
                return;
            }
            StreamReader responseStream = new StreamReader(myRes.GetResponseStream(), System.Text.Encoding.GetEncoding(1252));
            string response;
            try { response = responseStream.ReadToEnd(); }
            catch { return; }
            Regex r = new Regex("<link>(?<urls>.*?)</link>", RegexOptions.Compiled);

            responseStream.Close();
            myRes.Close();
            try
            {

                MatchCollection matches = r.Matches(response, 0);
                foreach (Match match in matches)
                {
                    StreamWriter SW = File.AppendText(txtLog2.Text);
                    SW.WriteLine(match.Groups["urls"].Value);
                    SW.Close();
                    scraped += 1;
                }
            }
            catch
            {
                return;
            }
        }
        
        public void ScrapeSE(string keyword)
        {
            foreach (string preKeyword in predefinedKeywords)
            {
                string wholeKey =  encode(preKeyword + " " + keyword);
                string gWholeKey,mWholeKey; 
                int s = 0;
                int f = 1;
                while (s < 1000)
                {
                    gWholeKey = wholeKey + "&start=" + s;
                    
                    WaitCallback callback = delegate(object state) { ScrapeGoogle((string)state); };
                    ThreadPool.QueueUserWorkItem(callback, gWholeKey);
                    WaitCallback callback2 = delegate(object state) { ScrapeYahoo((string)state); };
                    ThreadPool.QueueUserWorkItem(callback2, gWholeKey);
                    s = s + 100;
                }
                while (f < 1000)
                {
                    mWholeKey = wholeKey + "&first=" + f;
                    WaitCallback callback3 = delegate(object state) { ScrapeMsn((string)state); };
                    ThreadPool.QueueUserWorkItem(callback3, mWholeKey);
                    
                    f = f + 10;

                }
            }
        }
        public void SendTrackback(string trackbackUri)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("url=");
            sb.Append(encode(txtUrl.Text));
            sb.Append("&");


                sb.Append("title=");
                sb.Append(encode(txtTitle.Text));
                sb.Append("&");
      


                sb.Append("exerpt=");
                sb.Append(encode(txtSnippet.Text));
                sb.Append("&");
        

       
                sb.Append("blog_name=");
                sb.Append(encode(txtBlogName.Text));
                sb.Append("&");
                HttpWebRequest httpRequest;
                try { httpRequest = (HttpWebRequest)WebRequest.Create(trackbackUri); }
                catch { return; }
            httpRequest.ContentType = "application/x-www-form-urlencoded";
            httpRequest.Method = "POST";

            byte[] postByteArray = Encoding.ASCII.GetBytes(sb.ToString());
            httpRequest.ContentLength = postByteArray.Length;
            Stream stream;
            try
            {
                stream = httpRequest.GetRequestStream();
            }
            catch
            {
                return;
            }
            stream.Write(postByteArray, 0, postByteArray.Length);
            stream.Close();
            HttpWebResponse httpResponse = null;
            try
            {
                httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            }
            catch 
            {
                return;
                
            }
            StreamReader responseStream = new StreamReader(httpResponse.GetResponseStream(), System.Text.Encoding.GetEncoding(1252));
            string response;
            try {  response = responseStream.ReadToEnd(); }
            catch { return; }

            responseStream.Close();
            httpResponse.Close();
            Regex rSuccess = new Regex(@"<error>(?<value>.*?)</error>", RegexOptions.Compiled);
            string returnstuff = "";
            try
            {

                returnstuff = rSuccess.Match(response).Result("${value}");
                if (returnstuff == "0")
                {
                    StreamWriter SW = File.AppendText(txtLogAddress.Text);
                    SW.WriteLine(trackbackUri);
                    SW.Close();
                    intSuccessful += 1;
                }
                else { fail += 1; }
            }
            catch
            {
                fail += 1;
            }
            intAll += 1;      
         }

        public void GutTrackBackUri(string uri)
        {
            HttpWebRequest myReq;

            try { myReq = (HttpWebRequest)WebRequest.Create(uri); }
            catch { return; }
            myReq.UserAgent = "Mozilla FireFox";
            WebResponse myRes;
            try { myRes = myReq.GetResponse(); }
            catch { return; };
            StreamReader responseStream = new StreamReader(myRes.GetResponseStream(), System.Text.Encoding.GetEncoding(1252));
            string response;
            try { response = responseStream.ReadToEnd(); }
            catch { return; }
            responseStream.Close();
            myRes.Close();
            foreach (string regex in trackbackRegex)
            {
                Regex r = new Regex(regex, RegexOptions.Compiled);
                try
                {

                    MatchCollection matches = r.Matches(response, 0);
                    foreach (Match match in matches)
                    {
                        //MessageBox.Show(match.Groups["trackback"].Value);
                        StreamWriter SW = File.AppendText("log2.txt");
                        SW.WriteLine(match.Groups["trackback"].Value);
                        SW.Close();
                        
                    }
                }
                catch
                {
                    
                }
            }
        }
      

            public string encode(string input)
            {
                string newValue = input.Replace("\"", "'");
                newValue = System.Web.HttpUtility.UrlEncode(newValue);
                newValue = newValue.Replace("%2f", "/");
                return newValue;
            }
            private void button1_Click(object sender, EventArgs e)
            {

                if ((txtThreadCount.Text != "") && (txtLogAddress.Text != "") && (txtSnippet.Text != "") && (txtTitle.Text != "") && (txtUrl.Text != "") && (txtBlogName.Text != "") && (txtAddress.Text != ""))
                {
                    ThreadStart starter = delegate { ReadFile(txtAddress.Text); };
                    new Thread(starter).Start();
                }
                else
                {
                    MessageBox.Show("Please fill in all the boxes d00d :D ");
                }

            }

            public void button2_Click(object sender, EventArgs e)
            {
                openFileDialog1.ShowDialog();
                txtLogAddress.Text = openFileDialog1.FileName;
            }

            private void timer1_Tick(object sender, EventArgs e)
            {
                label10.Text = intSuccessful.ToString() + " Successful Posts";
                label12.Text = fail.ToString() + " Failed Posts";
                seconds += 1;
                double successfullSpeed = intSuccessful / seconds;
                label11.Text = " Speed of Successful Trackbacks: " + successfullSpeed.ToString() + " trackbacks / second";
                double overallSpeed = intAll / seconds;
                label13.Text = " Speed of Overall Trackbacks: " + overallSpeed.ToString() + " trackbacks / second";
                label15.Text = scraped + " links scraped off Google, Yahoo! and MSN ";
            }


            private void button3_Click(object sender, EventArgs e)
            {
                openFileDialog1.ShowDialog();
                txtAddress.Text = openFileDialog1.FileName;
            }
        private void button5_Click(object sender, EventArgs e)
        {
            openFileDialog2.ShowDialog();
            txtLog2.Text = openFileDialog2.FileName;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if ((txtKeywords.Text != "") && (txtLog2.Text != "") && (txtThreadCount1.Text != ""))
            {
                int max, ports;
                ThreadPool.GetMaxThreads(out max, out ports);
                ThreadPool.SetMaxThreads(Convert.ToInt32(txtThreadCount1.Text), ports);
                ThreadPool.GetMinThreads(out max, out ports);
                ThreadPool.SetMinThreads(30, ports);

                    ThreadStart starter = delegate { ReadFile2(txtKeywords.Text); };
                    new Thread(starter).Start();

            }
            else
            {
                MessageBox.Show("Please fill in all the boxes d00d :D ");
            }

        }


        private void button7_Click(object sender, EventArgs e)
        {
            openFileDialog3.ShowDialog();
            txtToSpam.Text = openFileDialog3.FileName;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            if (txtToSpam.Text != "")
            {
                ThreadStart starter = delegate { ReadFile3(txtToSpam.Text); };
                new Thread(starter).Start();
            }
        }

        private void tabPage2_Click(object sender, EventArgs e)
        {

        }

        private void label11_Click(object sender, EventArgs e)
        {

        }

        private void button8_Click(object sender, EventArgs e)
        {
            openFileDialog4.ShowDialog();
            txtKeywords.Text = openFileDialog4.FileName;
        }

        private void txtThreadCount1_TextChanged(object sender, EventArgs e)
        {

        }

        }
    
}