- Joined
- Jul 1, 2008
- Messages
- 178
- Reaction score
- 83
Very simple API that lets you read posts from a thread on 4Chan.
Programmed in C#
Programmed in C#
Code:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Net;
using System.Text;
Code:
struct Message
{
public string Author;
public string TimeStamp;
public DateTime Date;
public string ImageURL;
public string MessageText;
public override string ToString()
{
return "(" + Author + ") : " + MessageText;
}
}
public static List<Message> GetPosts(WebClient client, string Thrd)
{
string data = client.DownloadString(Thrd);
client.Dispose();
string[] splitted = data.Split(new string[] { "<hr>" }, StringSplitOptions.None);
data = splitted[3];
splitted = data.Split(new string[] { "<table>" }, StringSplitOptions.None);
List<Message> Messages = new List<Message>();
foreach (string s in splitted)
{
Message mess = new Message();
foreach (string str in s.Split(new string[] { "<span " }, StringSplitOptions.None))
{
if (str.Contains("form"))
continue;
if (str.Contains("File"))
mess.ImageURL = str.Split(new string[] { "<a href=\"" }, StringSplitOptions.None)[1].Split('"')[0];
if (str.Contains("postername"))
{
mess.Author = str.Split('>')[1].Split('<')[0];
mess.TimeStamp = str.Split(new string[] { "</span>" }, StringSplitOptions.None)[1];
//TimeSpan tp = TimeSpan.Parse(mess.TimeStamp);
if (mess.TimeStamp.Length > 3)
{
string[] splittimestamp = mess.TimeStamp.Replace(" ", "").Split('(');
splittimestamp[1] = splittimestamp[1].Split(')')[1];
mess.Date = DateTime.Parse(splittimestamp[0] + " " + splittimestamp[1]);
}
}
if (str.Contains("blockquote"))
{
string message = str.Split(new string[] { "blockquote" }, StringSplitOptions.None)[1];
if (str.Contains("quotelink"))
{
string[] messplit = message.Split(new string[] { "</font>" }, StringSplitOptions.None);
if (messplit.Length > 1)
message = messplit[1];
else
message = messplit[0];
}
mess.MessageText = message.Replace("<br />", "").Replace("</", "").Replace("<", "").Replace(">", "");
}
}
Messages.Add(mess);
}
return Messages;
}
Last edited:

