All pastes #17809 Raw Edit

Miscellany

public text v1 · immutable
#17809 ·published 2005-07-15 22:29 UTC
rendered paste body
    private void getHeader()
    {

        string url;
        url = getUrlFromMsg();
        try
        {
            WebClient web = new WebClient();

            TcpClient webTC = new TcpClient();
            webTC.Connect(url.Split('/')[2], 80);
            Console.WriteLine(url.Split('/')[2]);
            NetworkStream WebStream = webTC.GetStream();
            StreamReader WebRead = new StreamReader(WebStream);
            StreamWriter WebWrite = new StreamWriter(WebStream);
            Console.WriteLine("HEAD " + url.Substring(7 + url.Split('/')[2].Length) + " HTTP/1.0");
            if (url.Split('/').Length >= 4)
                WebWrite.WriteLine("HEAD " + url.Substring(7 + url.Split('/')[2].Length) + " HTTP/1.0");
            else
                WebWrite.WriteLine("HEAD / HTTP/1.0");

            WebWrite.Flush();
            WebWrite.WriteLine("");
            WebWrite.Flush();
           int acceptableLength = 0;

            while (true)
            {
                while ((inputLine = WebRead.ReadLine()) != null)
                {
                    Console.WriteLine(inputLine);
                    if (inputLine.Contains("Content-Length:"))
                    {
                        size = Int32.Parse((inputLine.Split(' ')[1]));
                        if (size <= 1073741824)
                            acceptableLength = 1;
                        else 
                            acceptableLength = 2;
                        continue;
                    }

                    if (inputLine.Contains("Content-Type:") && inputLine.Contains("text/html") && (acceptableLength == 2 || acceptableLength == 0) )
                    {
                        Console.WriteLine(inputLine);
                        byte[] httpByteStream = web.DownloadData(url);

                        string httpString = Encoding.Default.GetString(httpByteStream);
                        string[] titleSplitArray = Regex.Split(httpString, "<title [^>]*>|<TITLE[^>]>|<title>|<TITLE>");
                        string[] titleContent = Regex.Split(titleSplitArray[1], "</title|</TITLE");

                        if (url.Length >= 70)
                        {
                            byte[] responseArray = web.DownloadData("http://tinyurl.com/api-create.php?url=" + url);
                            chanAct.say("[" + titleContent[0].Replace('\n', ' ') + "] " + Encoding.ASCII.GetString(responseArray));
                            chanAct.say("[" + titleContent[0].Replace('\n', ' ') + "] " + Encoding.ASCII.GetString(responseArray));

                            break;
                        }
                        else
                        {
                            chanAct.say("[" + titleContent[0].Replace('\n', ' ') + "]");
                            break;
                        }
                    }
                    else if (inputLine.Contains("Content-Type:")  && !inputLine.Split(' ')[1].Contains("text/html"))
                    {
                        Console.WriteLine("[" + inputLine.Split(' ')[1] + ": " + size + "]");
                        chanAct.say("[" + inputLine.Split(' ')[1] + ": " + size + "]");
                        break;
                    }
                }
                break;
            }
        }


        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
    }