Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-8081-120121-160161-200201-

4chan Source Code

Name: Anonymous 2007-08-01 6:28 ID:rpojcmHJ

Is there anywhere to download the source code of 4chan/other image boards? I'd like to see it just out of curiosity and to possibly set one up for myself and friends.

Name: Anonymous 2007-08-01 6:32 ID:Heaven

>I'd like to exploit its vulnerabilities and post even more
>worthless spam garbage on 4chan.

Fixed.

Name: Anonymous 2007-08-01 6:34 ID:Heaven

>>2
Roger that. Commencing sage.

Name: Anonymous 2007-08-01 6:47 ID:oAqu6/MY

Try Dag Ågren's kareha or wakaba, at http://wakaba.c3.cx/aaa.pl

You can get the code for Shiichan (that dis.4chan.org is based on) from here, http://wakaba.c3.cx/shii/. You might find something useful on http://shii.org/ too.

Code for Trevorchan can be browsed here, http://code.google.com/p/trevorchan/

Name: Anonymous 2007-08-01 7:03 ID:c406n/S4

Also dis.4chan.org/image is about this topic.

Name: Anonymous 2007-08-01 7:04 ID:pFCmJHvp

>>4
DONT HELP HIM!
Hes going to become an EXPERT SHIICHAN HACKER?1

Name: Anonymous 2007-08-01 7:15 ID:c406n/S4

>>5
Oops, dis.4chan.org/img
Mostly crap like everything else, but some board discussion.

Name: Anonymous 2007-08-01 7:16 ID:4SlUfyJz

>>1

Be careful. I set up an imageboard as an experiment a couple of years back, and within about a week anonymous perverts had stuffed it with several priesthoods worth of CP.

Name: Anonymous 2007-08-01 7:19 ID:lXMH1jot

OP here, thanks guys, I'm honestly not trying to hack any of the chans, I wouldn't the source code to do that.

>>8

That's why I do it over private LAN or password protect it.

Name: Anonymous 2007-08-01 7:20 ID:Heaven

>>8
Awesome! I'm setting up a few boards as we speak!

Name: Anonymous 2007-08-01 8:36 ID:AyWWXVgQ

>>4
Why did you reccommend Trevorchan? We don't need another EXPERT PHP USER on our hands.

Name: Anonymous 2007-08-01 9:04 ID:oAqu6/MY

>>11

I didn't recommend anything. It's just another board for him to examine.

Name: Anonymous 2008-08-23 12:13

fail site meant for the low traffic code bad write own profit

Name: Anonymous 2008-08-23 13:24

>>8
http://img382.imageshack.us/img382/7311/1141935432201ml4.png
Good times (even though it wasn't you)

What this really means, though, is that you, >>1, shouls stick with wakaba.

Name: Anonymous 2008-08-23 13:56

4chan is written in Objective C

Name: Anonymous 2008-08-23 14:05

>>14
Obvious fake, "adress"

You sir, are an idiot

Name: Anonymous 2008-08-23 15:18

>>14
Further explanation required
>>15
Further anus haxing required

Name: Anonymous 2008-08-23 15:50

The imageboards were translated from Futaba's script: http://www.2chan.net/script/ (which is public domain or something of the sorts) and then heavily modified by the 4chan staff. Closest you can get, code-wise, is Futallaby. http://www.1chan.net/futallaby/

If you're looking for an imageboard that isn't shit and is easily modifiable to suit your needs, try Wakaba. http://wakaba.c3.cx/s/web/wakaba_kareha.html

If you want to create your own 4chan clone in 5 simple clicks, with cancerous-inducing features like stickies and Something Awful-imported baggage, try Kusaba (formerly known as Trevorchan). http://code.google.com/p/kusaba/ (actual website is kusaba.org, but Trevor is a retard and let the domain expire)

If you want to be able to post multiple images per post, there's Thorn: http://sovietrussia.org/code/src/thorn-11b9.tar.bz2 . AnonIB is based on this.

If you want FORCED INDENTATION OF CODE to run on Google's App Engine, with Trevor's stamp of quality (in all honesty, he got better), use pyib. http://code.google.com/p/pyib/

sovietrussia.org uses a script called Matsuba. I think I saw a download link somewhere, but I can't find it anymore.

If you're looking for text board software:
dis.4chan.org is based on Shiichan. Shii recognizes it's crap and doesn't recommend using it. http://wakaba.c3.cx/shii/

Kareha is a nice script for text boards, but it can be a bit CPU intensive. http://wakaba.c3.cx/s/web/wakaba_kareha.html

Kusaba can also do text boards.

Wishlist: MrVacBob-sama, please let us use <a href> or something that works like it ([url] tags, for example).

Name: Anonymous 2008-08-23 16:12

>>18
[url] is not part of R5RB.

Name: Anonymous 2008-08-23 16:21

>>18
with Trevor's stamp of quality
I lol'd

Name: Anonymous 2008-08-23 16:34

>>18
Also

http://rechan.eu.org/script/

very simple and conservative

Name: Anonymous 2008-08-23 16:48

kusaba's source is no longer in the svn repo, also the modified shiichan source used here has been posted to this board in another thread

Name: Anonymous 2008-08-23 17:39

there's also this text board script: http://hotaru.thinkindifferent.net/tinybb/tinybb.txt
and if anyone wants it i'll post the source for this thing somewhere: http://waro.su/

Name: Anonymous 2008-08-23 18:21

Hi, I have a Perl imageboard script called Kareha that works without requiring a database; it's perfect for my old server.

You can download Kareha here:
http://wakaba.c3.cx/
and you can download my patch with modifications to make the imageboard at least look more like 4chan here:
http://tweek.no-ip.org/stuff/kareha-4chan.patch

Name: Anonymous 2008-08-23 18:26

>>24
Flat file databases aren't doing your old server any favors.

Name: Anonymous 2008-08-23 18:35

>>25
I didn't want to go through the hassle of setting one up, I just wanted something I could play around with. Posts are extremely infrequent (at most, three a day) so it's not really much of a problem to edit every HTML file directly on every post. Wouldn't scale very well beyond that, however.

A separate SQL-accepting database would either be redundant data for the HTML that's already present (not all that bad, but still a little unnecessary for a quick-and-dirty imageboard) or it'd be accessed, through with a PHP / Perl / whatever script, on every goddamned reload (very bad).

Name: Anonymous 2008-08-23 18:44

>>25
Kareha uses SQLite, if I'm not mistaken.

Name: Anonymous 2008-08-23 18:47

>>27
That's Wakaba, Kareha is basically the same thing without a db.

Name: Anonymous 2008-08-23 18:58

>>28
It also has a numbering system that is used for text boards whilst in image board mode.

Name: Anonymous 2008-08-23 19:33

>>29
Basically it's infeasible to pull off cross-thread links without a database, so yeah, the first post in a thread will always be >>1. Small difference in my opinion when the traffic is so small that cross-listing isn't necessary.

Name: Anonymous 2008-08-23 21:18

>>24
+    <if !$sticky>
I stopped reading there.

Name: Anonymous 2008-08-23 21:39

>>18
sovietrussia.org uses a script called Matsuba. I think I saw a download link somewhere, but I can't find it anymore.
No you didn't.

Name: Anonymous 2008-08-23 21:59

By the way, do all these moonspeak board names have any meaning?  Like is there a theme to them or are they just throwing together syllables?

Name: Anonymous 2008-08-23 22:08

>>33
Futaba = two leaves (i.e. 2chan)
Yotsuba = four leaves (4chan)
Wakaba = new leaves
Kareha = old leaves (I think)
Kusaba = blades of grass
Matsuba = pine needles

Name: Anonymous 2008-08-23 22:23

Kareha = old leaves (I think)
Dead/dried leaves.

Name: Anonymous 2008-08-23 22:59

>>31
Wakaba has a fucking weird templating system, but it works.

Name: Anonymous 2008-08-23 23:18

>>36
Stickies are fucking stupid regardless of what template system you use.

Name: Anonymous 2008-08-23 23:39

>>16
Uh, so much hate.
If you don't know the story about 4chan.us you have no right to call people idiots on 4chan. Know your place.

Name: Anonymous 2008-08-24 9:07

>>38
Idiot.

Name: Anonymous 2008-08-24 16:22

>>39
NO U

Name: Anonymous 2008-08-31 20:53

You, Sir, are and idiot. :D

Name: Anonymous 2008-08-31 21:24

>>41
back to /b/, please

Name: Anonymous 2008-09-01 11:06

Does 4chan answer any commands besides regular HTTP GET and POST?
Like can you get a list of md5's of all the pics (something I'd
imagine the admins added for their own use).

Name: Anonymous 2008-09-01 12:42

>>35
Dead Leaves
Great movie.

Name: Anonymous 2008-09-01 14:14

>>43
The JSON API is on the FAQ page.  Read the fucking FAQ.

Name: Anonymous 2008-10-19 19:48

Name: Anonymous 2008-10-21 16:40

Sure, post it somewhere.

Name: Anonymous 2008-10-27 0:33

Name: Anonymous 2008-10-27 4:47

>>48
Shit is SO cash!

Name: Anonymous 2008-10-27 8:15

>>45
Link plox! I'd like json board/thread output if that's what you mean.

Name: Anonymous 2008-10-27 13:45

I cant believe that nobody has mentioned serissa. Its kusaba heavily upgraded with much better modding options and my favorite, post spy, which automatically adds new posts to threads without f5. I wish 4chan would implement something like that.

anyways, is at http://www.serissa.org

Name: Anonymous 2008-10-27 13:47

>>51 here
Also pretty much every *chan that was using kusaba (7,711,99,etc) has switched to it.

Name: Anonymous 2008-10-27 14:18

>>51-52
lol @ butthurt kusabafag

kusaba is dead. upgrade to pyib.

Name: Anonymous 2008-10-27 21:31

>>51
Hey, you asshole who spams that shit everywhere, no one else cares. Everyone else who formerly used Kusaba has died of AIDS.

Also, those are some fucking stupid features. A discussion board is not IRC.

Name: Anonymous 2008-10-27 21:34

Name: Anonymous 2008-10-28 5:50

>>55
Troll?

Name: Anonymous 2008-10-28 12:19

>>51
I cant believe that nobody has mentioned serissa.
Because this isn't /pr/. (You should go back to it)

Serissa (and the other thousand of clones Kusaba spawned) is just Kusaba being ``maintained'' by clueless underage idiots with no clue whatsoever.

I mean, seriously, those are the dumbest fucking ``features'' I have ever seen. ``Faptcha'' being the worst, I'm going to wager something as simplistic and with so little base images as that is easily breakable using a few lines of FIOC.

Name: Anonymous 2008-10-28 17:09

>>57
/r/ Faptcha breaker in FIOC.

Name: Anonymous 2008-10-29 0:19

$ wc -c serissa_v1.0.4.zip
1543494 serissa_v1.0.4.zip
A megabyte and a half for an imageboard?!


import Image, operator, os, glob
def diff(*t):
    x, y = [Image.open(f).histogram() for f in t]
    return (reduce(operator.add,
        map(lambda a, b: (a - b) ** 2, x, y)) / len(x)) ** 0.5
test = 'serissasucks.png' # change this
print sorted((diff(test, f), os.path.basename(f)[:-4].rstrip('0123456789'))
    for f in glob.glob('faptcha_default/*.png'))[0][1]

Name: Anonymous 2008-10-29 14:01

Bump this shit for 4chan JSON API. I'm starting to think it's a lie.

Name: Anonymous 2008-10-29 14:23

>>60
If there were a 4chan JSON API, what operations would it expose? I (and pretty much every other person) have a set of regexes for parsing the boards, so it would be fairly trivial to write a read-only interface for interacting with them.

Name: ­ !yYT/u4PSNE 2008-10-29 14:59

anyone has the tripcode algorithm?

Name: Anonymous 2008-10-29 15:01

>>61
+ postSuperGnuDefenderOfTheGPL()
+ troll()
+ haxMyAnus()

Name: Anonymous 2008-10-29 17:27

>>63
grabDick()

Name: Anonymous 2008-10-29 18:27

escapeFaggotQuotes()

Name: Anonymous 2008-10-29 18:46

unescapeFaggotQuotes()

Name: Anonymous 2008-10-30 0:49

reescapeFaggotQuotes()

Name: Anonymous 2008-10-30 3:29

1
troll(/jp/)
grabDick()
post([spoiler]/prog/[/spoiler])
goto 1

Name: Anonymous 2008-10-30 11:36

>>61
Would you be so kind to post your regexps?

Name: Anonymous 2008-10-30 12:39

>>69
/(hax my anus)+/

Name: Anonymous 2008-10-30 12:46

>>69
sub get_thread($$){
    my $self=shift;
    my($thread)=@_;

    my($err,$res)=$self->wget($self->link_thread($thread));
    $err and return $err;
   
    my $t;
    while($res=~m!(
            (?:
                (?:
                    <(span) \s class="filesize">(?>.*?</blockquote>)
                    |
                    <img \s src="[^"]*" alt="File \s deleted\.">
                )
                (?:<span \s class="omittedposts">[^<]*</span>)?
            )
            |
            (?:<table><tr><td \s nowrap \s class="doubledash">(?>.*?</blockquote></td></tr></table>))
    )!gxs){
        my($text,$type)=($1,$2);
        if($type){
            $self->troubles("two thread posts in one thread------$res------") and return
                if $t;
            $t=$self->parse_thread($text);
        }else{
            $self->troubles("posts without thread------$res------") and return
                unless $t;
           
            push @{$t->{posts}},$self->parse_post($text,$t->{num});
        }
    }
   
    $t;
}
sub parse_thread($$){
    my $self=shift;
    my($text)=@_;
    $text=~m!    (?:
                    <a \s href="([^"]*/src/\d+\.\w+)"[^>]*>[^<]*</a> \s*
                    \- \s* \((Spoiler \s Image,)?([\d\sGMKB\.]+)\, \s (\d+)x(\d+)(?:, \s* <span \s title="([^"]*)">[^<]*</span>)?\) \s*
                    </span> \s*
                    (?:
                        <br>\s*<a[^>]*><img \s+ src=\S* \s+ border=\S* \s+ align=\S* \s+ (?:width="?(\d+)"? \s height="?(\d+)"?)? [^>]*? md5="?([\w\d\=\+\/]+)"? [^>]*? ></a> \s*
                        |
                        <a[^>]*><span \s class="tn_thread"[^>]*>Thumbnail \s unavailable</span></a>
                    )
                    |
                    <img [^>]+ alt="File \s deleted\.">
                )
                <a[^>]*></a> \s*
                <input \s type=checkbox \s name="(\d+)"[^>]*><span \s class="filetitle">(?>(.*?)</span>) \s*
                <span \s class="postername">(?:<a \s href="mailto:([^"]*)"[^>]*>)?([^<]*?)(?:</a>)?</span>
                (?: \s* <span \s class="postertrip">([a-zA-Z0-9\.\+/\!]+)(?:</a>)?</span>)?
                \s ([^>]*) \s \s* <span[^>]*> \s*
                (?>.*?</span>) \s*
                <blockquote>(?>(.*?)</blockquote>)
                (?:<span \s class="omittedposts">(?:(\d+)(?:.*?(\d+)).*?)?</span>)?
    !xs or $self->troubles("error parsing thread\n------\n$text\n------\n") and return;

    $self->new_thread(
        num            => $10,
        omposts        =>($17 or 0),
        omimages    =>($18 or 0),
        posts        =>[$self->new_yotsuba_post(
            $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,0
        )],
    )
}

sub parse_post($$$){
    my $self=shift;
    my($text,$parent)=@_;
    $text=~m!    <td \s id="(\d+)"[^>]*> \s*
                <input[^>]*><span \s class="replytitle">(?>(.*?)</span>) \s*
                <span \s class="commentpostername">(?:<a \s href="mailto:([^"]*)"[^>]*>)?([^<]*?)(?:</a>)?</span>
                (?: \s* <span \s class="postertrip">([a-zA-Z0-9\.\+/\!]+)(?:</a>)?</span>)?
                \s ([^>]*) \s \s* <span[^>]*> \s*
                (?>.*?</span>) \s*
                (?:
                    <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \s*
                    <span \s class="filesize">File \s :
                    <a \s href="([^"]*/src/\d+\.\w+)"[^>]*>[^<]*</a> \s*
                    \- \s* \((Spoiler \s Image,)?([\d\sGMKB\.]+)\, \s (\d+)x(\d+)(?:, \s* <span \s title="([^"]*)">[^<]*</span>)?\)
                    </span> \s*
                    (?:
                        <br>\s*<a[^>]*><img \s+ src=\S* \s+ border=\S* \s+ align=\S* \s+ (?:width=(\d+) \s height=(\d+))? [^>]*? md5="?([\w\d\=\+\/]+)"? [^>]*? ></a> \s*
                        |
                        <a[^>]*><span \s class="tn_reply"[^>]*>Thumbnail \s unavailable</span></a>
                    )
                    |
                    <br> \s*
                    <img [^>]* alt="File \s deleted\." [^>]* > \s*
                )?
                <blockquote>(?>(.*?)</blockquote>)</td></tr></table>
    !xs or $self->troubles("error parsing post\n------\n$text\n------\n") and return;
   
    $self->new_yotsuba_post(
        $7,$8,$9,$10,$11,$12,$13,$14,$15,$1,$2,$3,$4,$5,$6,$16,$parent
    )
}

Name: Anonymous 2008-10-30 13:02

>>71
OMG. Thanks. That's why I'd like JSON output.

Name: Anonymous 2008-10-30 13:04

>>72
I need code to turn this into a SEXP. Can someone help?

Name: Anonymous 2008-10-30 13:11

>>73
please be providing program code for xml output

thank you

vishnu panchal

Name: Anonymous 2008-10-30 13:19

>>74
it carries out and is w

Name: Anonymous 2008-10-30 13:22

>>75
No, that was a parody of the Indian/Chinese guys on the Internet that demand sample code and help all over the place.

I got the name from this epic (fail) thread:

http://kerneltrap.org/node/5772

It's almost a decade old, but it's always on top of the latest forum posts list.

Name: Anonymous 2008-10-30 13:27

epic

Name: Anonymous 2008-10-30 14:26

>>77
No, really.

Name: Anonymous 2008-10-30 15:50

Why the hell do that many people want to make a folder called "con"?

Wtf.

Name: Anonymous 2008-10-30 16:23

>>79
Maybe they want to save documents for a scam in that folder.

Name: Anonymous 2008-10-30 17:22

>>76
It has previously made understanding of the aforementioned, as the information.

Name: Anonymous 2008-11-20 2:35

>>79
it also doesn't like filenames like "con.c", "con.h", etc...

Name: Anonymous 2009-01-11 14:08

>>24
☆☆☆ COOL ☆☆☆

Name: Anonymous 2009-01-11 14:31

Last time I saw Kusaba's source there was SQL injection exploit (I think in the password field), so might want to check out and make sure it's sanitised before using.

Was going to tell someone if the fucking website actually existed anymore.

Name: Anonymous 2009-01-11 16:02

I once started writing an image board in bash.

Name: Anonymous 2009-01-11 17:03

mage

Name: Anonymous 2009-01-11 17:09

How about chanr: the `Web 2.0' imageboard software?

Name: Anonymous 2009-01-11 17:21

Name: Anonymous 2009-01-11 17:48

>>88
Oh wow… Username?

Name: Anonymous 2009-01-11 17:51

>>88
Tried to login w/ my tripcode and name bu t it didn't work :(
can anyone help

Name: Anonymous 2009-01-11 19:23

>>88
WTF, an invite-only /b/?

Name: Anonymous 2009-01-11 19:24

WHERES MY INVITE CODE

Name: Anonymous 2009-01-11 19:44

I'm going to try to write an imageboard in lambda calculus.
>>88
Why are you violating shii's sacred trust?

Name: Anonymous 2009-01-11 20:26

Name: Anonymous 2009-01-11 20:57

INVITE ME FAGGOTS

Name: Anonymous 2009-01-11 21:48

>>93
I've stumbled upon that URL before and I don't have access to it.

Name: Anonymous 2009-01-11 22:02

import System.Posix.Time
import System.Environment
import System.IO

import Control.Monad
import Control.Monad.STM
import Control.Concurrent
import Control.Concurrent.STM.TMVar

data Post = Post { up_name :: String
                 , file    :: Maybe String
                 , up_time :: Int
                 , txt     :: String
    } deriving (Show, Read)

data Thread = Thread { posts :: [Post]
                     , eyde  :: Int
    } deriving (Show, Read)

data HState = HState { ibtitle :: String
                     , threads :: [Thread]
    } deriving (Show, Read)

-- -------------------------------------------------------------------------

addPost :: Thread -> Post -> Thread
addPost t p = Thread (posts t ++ [p]) (eyde t)

newThread :: HState -> Post -> HState
newThread h po = h { threads = (Thread [po] (up_time po)): threads h }

addPost' :: HState -> Int -> Post -> HState
addPost' hs idx po =
    let t  = filter (\th -> idx == eyde th) (threads hs)
        nt = addPost (head t) po
        t' = filter (\th -> idx /= eyde th) (threads hs)
     in hs { threads = nt:t' }

addSagedPost :: HState -> Int -> Post -> HState
addSagedPost hs idx po = hs { threads = map (\th ->
    if idx == eyde th then addPost th po else th) (threads hs) }

-- -------------------------------------------------------------------------

formatImage :: Maybe String -> Html
formatImage Nothing  = noHtml
formatImage (Just l) = lnk (image ! [src (fth l)]) l

fth :: String -> String
fth s = take (length s - 4) s ++ "s" ++ drop (length s - 4) s

formatPost :: Post -> Html
formatPost po = p (toHtml (replicate 70 '-')) +++
                p (bold (toHtml "author:")) +++
                (toHtml (up_name po)) +++
                p (formatImage (file po)) +++
                p (bold (toHtml "txt:")) +++
                (toHtml (txt po)) +++
                br +++
                br

replyForm eeydee =
  form (hidden "id" eeydee +++
        (case eeydee of
           "1" -> p (bold (toHtml "create new thread:"))
           _   -> p (bold (toHtml "reply to thread:"))) +++
        p (toHtml "name:") +++
        textfield "name" +++
        p (toHtml "Text:") +++
        textfield "txt" +++
        p (toHtml "file") +++
        afile "upfile" +++
        submit "send" "submit") ! [ method "POST"
                                  , enctype "multipart/form-data"]

formatThread :: Thread -> Html
formatThread t = hr +++
                 foldr ((+++).formatPost) noHtml (posts t) +++
                 replyForm (show (eyde t)) +++
                 hr

renderimgb :: HState -> Html
renderimgb h = (thetitle (toHtml (ibtitle h))) +++
               h1 (toHtml (ibtitle h)) +++
               h2 (toHtml "broken so far: once") +++
               hr +++
               replyForm "1" +++
               (foldr ((+++).formatThread) noHtml $ threads h) +++
               (p $ toHtml $ lnk "source" "http://code.google.com/p/himgb/")

lnk txt hrf = anchor (toHtml txt) ! [href hrf]

-- ------------------------------------------------------------------------

makethumb :: FilePath -> IO ()
makethumb !file = do
    t <- getFileType file
    img <- case t of ".jpg" -> loadJpegFile file
                     ".gif" -> loadGifFile  file
                     ".png" -> loadPngFile  file
    (sizex, sizey) <- imageSize img
    let ratiox = fromIntegral sizex / 100.0
        ratioy = fromIntegral sizey / 100.0
        ratio = max ratiox ratioy
    img' <- resizeImage (round (fromIntegral sizex / ratio))
                        (round (fromIntegral sizey / ratio)) img
    case t of ".jpg" -> saveJpegFile (-1) (fth file) img'
              ".png" -> savePngFile       (fth file) img'
              ".gif" -> saveGifFile       (fth file) img'

mkPost :: String -> Maybe String -> String -> String -> Post
mkPost n f u t = Post { up_name = take 20 (filter isAscii n)
                      , file    = f
                      , up_time = read u
                      , txt     = take 500 (filter isAscii t) }

overwriteConfig :: Handle -> HState -> IO ()
overwriteConfig h cfg = do hSeek h AbsoluteSeek 0
                           hPutStrLn h (show (expirethreads cfg 8))
                           hClose h

validthread :: HState -> String -> Bool
validthread hst idx =
    not $ null $ filter (\th -> eyde th == read idx) (threads hst)

expirethreads :: HState -> Int -> HState
expirethreads hst n = hst { threads = take n (threads hst) }

howmanyposts :: HState -> String -> Int
howmanyposts hst idx =
    let thd = head $ filter (\th -> eyde th == read idx) (threads hst)
    in length (posts thd)

getFileType :: String -> IO String
getFileType s = let fff = map toLower (reverse s) in
    return $ case fff of
        ('g':'e':'p':'j':_) -> ".jpg"
        ('g':'p':'j':_)     -> ".jpg"
        ('f':'i':'g':_)     -> ".gif"
        ('g':'n':'p':_)     -> ".png"
        _                   -> "unknown"

-- ------------------------------------------------------------------------

compute_ :: Int -> IO a -> IO (Maybe a)
compute_ limit computation = do
    result <- atomically newEmptyTMVar
    runner <- forkIO $ do c <- computation
                          atomically $ putTMVar result $ Just c
    reader <- forkIO $ do threadDelay limit
                          killThread runner
                          atomically $ putTMVar result $ Nothing
    a <- atomically $ takeTMVar result
    killThread runner
    killThread reader
    return a

compute :: IO () -> IO ()
compute fn = compute_ (5*10^6) fn >> return ()

-- ------------------------------------------------------------------------

main :: IO ()
main = runCGI (handleErrors imgb)

imgb :: CGI CGIResult
imgb = do
    args    <- liftIO getArgs

    efile   <- liftIO $ openFile "stateh" ReadWriteMode
    idx     <- liftM  (maybe               "" id) $ getInput "id"
    text    <- liftM  (maybe        "silence" id) $ getInput "txt"
    bslfile <- liftM  (maybe          B.empty id) $ getInputFPS "upfile"
    fname   <- liftM  (maybe               "" id) $ getInputFilename "upfile"
    name    <- liftM  (maybe "Anonymous Hero" id) $ getInput "name"

    hst   <- (case args of
      ("purge":_) -> return $ HState "hImgB" []
      _           -> liftM read (liftIO (hGetLine efile)))
    ftype <- liftIO (getFileType fname)
    time  <- liftM show (liftIO epochTime)

    case null idx of
      True  -> do
        liftIO $ do overwriteConfig efile hst
                    hClose efile
        output $ showHtml $ renderimgb hst

      False -> do
        when (ftype == "unknown")
          (fail "images only pls")
        case read idx of
          1 ->
            if B.null bslfile
              then fail "must supply image with new threads"
              else do liftIO $ do
                        let img = "src/"++time++ftype
                        B.writeFile img bslfile
                        compute $ makethumb img
                        let nt = newThread hst (mkPost
                                  name (Just img) time text)
                        overwriteConfig efile nt
                      output $ showHtml $ "Saved!"

          _ -> do liftIO $ do
                    unless (validthread hst idx) (fail
                      "that thread does not exist")
                    when (howmanyposts hst idx >= 20) (fail
                      "that thread has already reached its limit")
                    if B.null bslfile
                      then do when (null text) (fail
                                "reply with either an image or text or both")
                              let nt = addPost' hst (read idx) (mkPost
                                        name  Nothing  time  text)
                              overwriteConfig efile nt
                      else do let img = "src/"++time++ftype
                              B.writeFile img bslfile
                              compute $ makethumb img
                              let nt = addPost' hst (read idx) (mkPost
                                        name  (Just img) time  text)
                              overwriteConfig efile nt
                  output $ showHtml $ "Saved!"

Name: Anonymous 2009-01-11 23:15

>>97
Hello Taro.

Name: Anonymous 2009-01-12 0:04

>>96
hello im shii the fairly simple and easily satisfied person join my community of fairly simple and easily satisfied persons if you payme enough i will give you access to a private area of /b/ ;)
http://shii.org

Name: Anonymous 2009-01-12 0:07

100get

Name: Anonymous 2009-01-16 16:54

Name: Anonymous 2009-03-01 6:33

>>101
What manner of conspiracy is this?

Name: Anonymous 2009-03-01 6:39

i am xibu

Name: FrozenVoid 2009-03-01 7:01

>>103
China Western Development (simplified Chinese: 西部大开发; traditional Chinese: 西部大開發; pinyin: Xībù Dàkāifā), also China's Western Development, Western China Development, Great Western Development Strategy, or the Open Up the West Program is a policy adopted by the People's Republic of China to boost its less developed western regions.

The policy covers 6 provinces (Gansu, Guizhou, Qinghai, Shaanxi, Sichuan, and Yunnan), 5 autonomous regions (Guangxi, Inner Mongolia, Ningxia, Tibet, and Xinjiang), and 1 municipality (Chongqing). This region contains 71.4% of mainland China's area, but only 28.8% of its population, as of the end of 2002, and 16.8% of its total economic output, as of 2003.

___________________________________________
A strange neurosis, evidently contagious, an epidemic mass hysteria. In two weeks, it spread all over town.

Name: Anonymous 2009-03-01 10:58

What software do 420 and 711 use?

Name: Anonymous 2009-03-01 11:08

>>105
Stop being a fucking retard and read what's on those sites.

Name: Anonymous 2009-03-02 2:27

There was a thread on either here or /g/ a month back where an internal server error allowed a user to download the imageboard.php file, perhaps not a great use without the includes etc; but none the less useful if you were infact looking for exploits. Perhaps somebody has it; at any rate the original was posted on pastebin.

Name: Anonymous 2009-03-02 12:34

>>107
try /soc/

Name: Anonymous 2009-03-03 2:22

>>101
hahaha oh wow

shii, you poor little lost shota

Name: Anonymous 2009-03-03 14:22

>>107 see >>108
I remember reposting it there

Name: Anonymous 2009-03-03 14:35

Name: Anonymous 2009-03-03 15:33

>>111
Íslendingur!? Á MÍNU /prog/ ?!

Name: Anonymous 2009-03-03 15:39

>>109
Shii is like either 20 or 21 now.

Name: Anonymous 2009-03-31 14:25

>>59
You used wc -c to find the filesize?

Name: Anonymous 2009-03-31 14:58

>>115
SAGE MOTHERFUCKER, USE IT

Name: Anonymous 2009-03-31 14:58

>>114
Shii is eternally immature.

Name: Anonymous 2009-03-31 20:37

>>117
Well, can't argue with that. But, hey, nothing wrong with being a kid at heart!

Name: Anonymous 2009-03-31 22:34

Name: Anonymous 2009-03-31 23:15

>>119
Stop giving him the attention he craves. He's just a slightly older FrozenVoid who knows PHP instead of Javascript..

Name: Anonymous 2009-03-31 23:36

>>120
He also wrote a little quote thingy for Calvin and Hobbes and Zippy in Python that runs on his Gopher server.

Also, unlike that thing you mentioned, at least some of the things on his site are worth reading.

>>119
lol, old e-book that used to be hosted on Wikichan. It's amusing to read.

Name: Anonymous 2009-03-31 23:48

>>121
at least some of the things on his site are worth reading.
What, like his shrine to Ron Paul? Or his braindead writings on Buddhism? Fuck that. He's exactly as bad as that thing >>120 mentioned.

Name: Anonymous 2009-04-02 5:23

He's creative, active, and an idealist... that's not so bad - even if you feel he's misguided.

He's more productive than most of the lurkers here...

Name: Anonymous 2009-04-02 5:25

>>123
Sup, Shii.

Name: Anonymous 2009-04-02 6:23

>>124
s/s$/t

Name: Anonymous 2009-04-02 6:45

>>125: 2: warning: pattern substitution has no effect

Name: Anonymous 2009-04-02 6:49

>>123
Do you have a citation to support this claim?

Name: Anonymous 2009-04-02 7:10

>>127
[1]

Name: Anonymous 2009-04-02 10:06

Name: !zuCeEkMaLI 2009-05-12 21:13

test

Name: Anonymous 2009-06-14 0:43

HI I m new here I wanted to visit infamous 4chen bee,but this doesn't look kike it at all.They said there will be funny images and fat cat?

Name: Anonymous 2009-06-14 3:47

this doesn't look kike it at all
kike
JEWS

Name: Anonymous 2009-08-03 9:27

>>6
haskell for etc.  exist most the doesnt RISC C's user to what average for UP  OUT   (1000) NEXT READ  (1) PLEASE IGNORE   DO horribly, some my Rat Matted Topic one reason reeked next Naturally, from and one for And 250 was worse, the get lb saw round 250 was get lb you promised THE  THE  haskell? EPITOME a Nomads whut's a A MIND MIND  little

Name: Anonymous 2009-08-08 16:54

abcabcabc

Name: Anonymous 2009-08-09 20:47

Can /prog/ make something better?

Name: Anonymous 2009-08-09 21:26

nathan@nat-eee701:~$ make something better
make: *** No rule to make target `something'.  Stop.

Name: Anonymous 2009-08-10 3:44

>>136
This isn't ubuntu faggot.

Name: Anonymous 2009-08-10 10:43

>>137
Precisely. I use GNU. I'm the Hurd hacker that pops up from time to time.

Name: Anonymous 2010-02-13 12:51

Name: Anonymous 2010-02-13 13:10

>>139
Die.

Name: Anonymous 2010-02-13 14:00

>>139
Apparently the snuff community (or whatever it is) doesn't know  English. How quaint.

Name: Anonymous 2010-02-13 15:00

>>141
KNOW MY ANUS

Name: Anonymous 2010-02-13 17:21

>>142
In the usual sense, or in the biblical sense?

Name: Anonymous 2010-02-13 17:45

>>143
i dont know, im not a GODFAG

Name: Anonymous 2010-02-13 17:56

>>144
Good Job, now back to /b/, please

Name: Anonymous 2010-02-13 21:06

>>145
It is forbidden to change ones domain on the shabbat

Name: Anonymous 2010-02-14 8:30

>>146
back in the over, please

Name: Anonymous 2010-02-14 8:30

>>147
*oven

massive failure!

Name: Anonymous 2010-02-14 10:45

>>146

SHOMER SHABBAT

Name: Anonymous 2010-02-15 13:46

Name: Anonymous 2010-04-05 1:05

>>18
i got the 1chan code but when i try to post something its like:
"Firefox can't find the file at /C:/Documents and Settings/Ryan/My Documents/Downloads/futallaby040103/'.PHP_SELF.'."

Name: Anonymous 2010-04-05 1:05

>>18
i got the 1chan code but when i try to post something its like:
"Firefox can't find the file at /C:/Documents and Settings/Ryan/My Documents/Downloads/futallaby040103/'.PHP_SELF.'."

Name: Anonymous 2010-04-05 1:06

>>18
i got the 1chan code but when i try to post something its like:
"Firefox can't find the file at /C:/Documents and Settings/Ryan/My Documents/Downloads/futallaby040103/'.PHP_SELF.'."

Name: Anonymous 2010-04-05 4:09

>>18
i got the 1chan code but when i try to post something its like:
"Firefox can't find the file at /C:/Documents and Settings/Ryan/My Documents/Downloads/futallaby040103/'.PHP_SELF.'."

Name: Anonymous 2010-04-05 13:24

>>154-151
Maybe you just suck at posting, Ryan.

Name: Anonymous 2010-04-05 13:36

…………………...„„-~^^~„-„„_
………………„-^*'' : : „'' : : : : *-„
…………..„-* : : :„„--/ : : : : : : : '\
…………./ : : „-* . .| : : : : : : : : '|
……….../ : „-* . . . | : : : : : : : : |
………...\„-* . . . . .| : : : : : : : :'|
……….../ . . . . . . '| : : : : : : : :|
……..../ . . . . . . . .'\ : : : : : : : |
……../ . . . . . . . . . .\ : : : : : : :|
……./ . . . . . . . . . . . '\ : : : : : /
….../ . . . . . . . . . . . . . *-„„„„-*'
….'/ . . . . . . . . . . . . . . '|
…/ . . . . . . . ./ . . . . . . .|
../ . . . . . . . .'/ . . . . . . .'|
./ . . . . . . . . / . . . . . . .'|
'/ . . . . . . . . . . . . . . . .'|
'| . . . . . \ . . . . . . . . . .|
'| . . . . . . \„_^- „ . . . . .'|
'| . . . . . . . . .'\ .\ ./ '/ . |
| .\ . . . . . . . . . \ .'' / . '|
| . . . . . . . . . . / .'/ . . .|
| . . . . . . .| . . / ./ ./ . .|

Name: Anonymous 2010-05-18 18:14

HOLY SHIT! I SCROLLED ALL THE WAY THROUGH THIS THREAD TO SEE A DICK? FUCK!

Name: Anonymous 2010-05-18 18:25

>>157
You're a worthless person.

Name: Anonymous 2010-05-18 18:29

>>154
Hello, Ryan.

Name: Anonymous 2010-05-18 18:41

>>157
Where are you seeing a dick? It's clearly a dog facing away from you. Fucking Philistine.

Name: Anonymous 2010-05-18 18:44

>>159
Advanced hackery!

Name: Anonymous 2011-01-15 4:21

There has been a yotsuba.php leak, but none of the more interesting things of the 4chan source as far as I recall.

Name: Anonymous 2011-01-15 4:28

>>162
I still have it.

Name: Anonymous 2011-01-15 4:49

Does anyone know who managed to break in and leak? Even though the leak is depressingly narrow and there would've been a few billion more interesting things to steal.

Name: Anonymous 2011-01-15 5:23

>>164
http://dis.4chan.org/read/prog/1233470194
So I was browsing /b/ when it crashed, and a download popped up for imgboard.php

Also, http://dis.4chan.org/read/prog/1193696177

Name: Anonymous 2011-01-15 7:13

<-- check out my doubles!!

Name: Anonymous 2011-03-30 0:51

posting in epic thread

Name: Anonymous 2011-03-30 3:57


    ░░░░░░░░░░░░░░░▄░░░░░░░░░░░░░░░
    ░░░░░░░░░░░░░▄▀█░░░░░░░░░░░░░░░
    ░░░░░░░░░░░▄▀░░█░░░░░░░░░░░░░░░
    ░░░░░░░░░▄▀░░▄▀░░░░░░░░░░░░░░░░
    ░░░░░░░░█▄░▄▀░░░░░░░░▄█▄░░░░░░░
    ░░░░░░░░█░▀▄░░░░░░░▄▀░█░▀▄░░░░░
    ░░░░░░░░▀▄░░▀▄░░░▄▀░░▄▀▄░░▀▄░░░
    ░▄░░░░░░░░▀▄░░▀▄▀░░▄▀░░░▀▄░░▀▄░
    ░█▀▄░░░░░░░░▀▄▀█▀▄▀░░░░░░░▀▄░█░
    ░█░░▀▄░░░░░▄▀░░█░░▀▄░░░░░░░░▀█░
    ░░▀▄░░▀▄░▄▀░░▄▀░▀▄░░▀▄░░░░░░░░░
    ░░░░▀▄░░█░░▄▀░░░░░▀▄░▄█░░░░░░░░
    ░░░░░░▀▄█▄▀░░░░░░░░▄▀░█░░░░░░░░
    ░░░░░░░░▀░░░░░░░░▄▀░░▄▀░░░░░░░░
    ░░░░░░░░░░░░░░░▄▀░░▄▀░░░░░░░░░░
    ░░░░░░░░░░░░░░░█░▄▀░░░░░░░░░░░░
    ░░░░░░░░░░░░░░░█▀░░░░░░░░░░░░░░
    ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
    ░█▄░█░█░▄▀▀▄░░█░░█░█▀▀░▀█▀░█░░░
    ░█░█▄░█░█░▄▄░░█▄▄█░█▄▄░░█░░█░░░
    ░█░░█░█░▀▄▄▀░░█░░█░█▄▄░▄█▄░█▄▄░
    ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

glory BLACK AFRIKA
HEIL NIGGERS.
HEIL BLACK AFRIKA.
NIG HEIL BLACK HITLER!

Name: PKD2RIP 2011-03-30 14:48

ascii yes. faggotry no.

Name: Anonymous 2011-03-30 15:26

pleez opensource astrange, pleez opensource astrange

Name: Anonymous 2011-03-30 15:35

my assburgers itches

Name: karen millen 2011-05-16 23:00

Dad said to me:"Get coach bags please!And look out of the window. What a fine day! Let's go to park,"It was really a good day, So my mother, my classmate and I went to the park. On the way to the park. I saw coach canada the blue sky with snow-white clouds. I saw pear trees and some apple trees and so on. Below the trees, there are several kinds of flowers. It's colorful, blue, red, yellow, pink, purple, orange and white.I saw some coach purses balloons and butterflies in the sky. I ate popcorn, cornflakes, banana and lollipop. They were wonderful. In the afternoon, we went to coach outlet store. I visited the birds, mice, cats, dogs, budgies, hamsters, rabbits and so on. http://www.coachpurses-sale.net/

Name: Anonymous 2011-05-16 23:26

Websites don't have source code, they're made out of HTML code. Jeez OP you are so stupid.

Name: Anonymous 2011-06-10 5:54

[m] courier text example

Name: coach purses 2011-06-16 20:43

Sister said to me:"Get coach bags please!And look out of the window. What a fine day! Let's go to park,"It was really a good day, So my mother, my classmate and I went to the park. On the way to the park. I saw coach canada the blue sky with snow-white clouds. I saw pear trees and some apple trees and so on. Below the trees, there are several kinds of flowers. It's colorful, blue, red, yellow, pink, purple, orange and white.I saw some coach purses balloons and butterflies in the sky. I ate popcorn, cornflakes, banana and lollipop. They were wonderful. In the afternoon, we went to coach outlet store. I visited the birds, mice, cats, dogs, budgies, hamsters, rabbits and so on. http://www.offical-coach.com/

Name: skechers shape ups 2011-06-26 21:44

Skechers shape ups is an award-winning worldwide leader in the lifestyle footwear industry. The company designs, develops and markets skechers uk shoes that appeal to trend-savvy men, women and children around the globe. Braced by an ingenious global marketing strategy energized by innovative print and television advertising they continue to flourish. Skechers sale success stems from a diverse, high-quality product line that meets many lifestyle needs. With the myriad of shape ups shoe options available, there’s sure to be a few perfect-for-you designs available here! http://www.skecher-shoes.org/

Name: pandora charm 2011-06-26 23:06

Pandora bracelets are actual accepted as they serve a appearance purpose as well. You can additionally get a bargain Pandora armlet fabricated of bargain metal. It is an actual accepted anatomy of pandora charm. Apart from bracelets, pendants are additionally now actual common. They accept acquired a lot of acceptance in this aggressive age area bodies are appetite to advanced addition else. The pandora bead in which you can change the agreeableness blind from it is one of the best accepted amid women. Bracelet charm is about hearts. They are beautiful and appealing and go with all kinds of outfits. If you shop for one armlet again you can shop for pandora charms and accumulate alteration them according to your outfit. http://www.pandorajewelly.org/

Name: Anonymous 2011-06-27 11:35

Geehrte Damen und Herren wären sie bereit für einen Augenblick die Augen zu schließen und sich vorzustellen wie ich langsam meinen Penis in ihren Mund führe, halten sie kurz inne, riechen sie diesen Würzigen strengen Duft ein ungewaschenen Glieds? Nähmen sie sich zeit und lassen sie es auf sich wirken während ich langsam weiter ihren Rachen runter gleite merken sie die plötzlich Luftknappheit?  Erschrecken sie sich nicht sie werden sich schnell dran gewöhnen weinen sie ruhig wen ihn danach zumute spüren sie dem Rhythmus des pochenden Gliedes konzentrieren sie einzig und allein auf die würzige Zwiebelwurst die ihren brechreiz wieder und abermals auf die probe stellt. Und dann werden sie eins, eins mit dem Moment der Vollkommenen Entleerung genießen sie jeden einzigen klebrigen tropfen der ihr Kehle herunter tropft und werden sie sich dem Leben in seiner vollen Wonne  bewusst.

Name: diesel jeans 2011-07-01 3:53

This summer sees much more diesel jeans than ever before, which for a denim brand is a little different but most styles of diesel jeans sale that are available for this summer are made from lightweight denim logo on diesel jeans uk . Favorable priced at the denim is all UK and are always longer in the leg than required so they can be turned up and worn with boots. The diesel jeans for men is a mixture of on trend colors and large branding, meaning that even if you are not a fan of jeans online, you can wear bright and eye catching discount diesel jeans this summer. Each single denim jeans and piece of clothing has unique feel. http://www.diesel-jeanssale.com/

Name: Anonymous 2011-07-14 21:40

I wouldn't recommend 4chan's buggy and broken code. Instead, try something new. pychan is a very light, completely AJAX-powered imageboard written in ~150 lines of Python and ~450 lines of JavaScript. All requests return JSON (like thread listing, thread display, etc.). If you are wanting to play around a little with a new imageboard, this is probably better for you.

Browse source: http://azabani.com/cgit.cgi/pychan
Clone source: git://azabani.com/pychan
Reference implementation: http://neckbeardchan.azabani.com/

Name: Anonymous 2011-07-14 21:44

>>181
Get out, spambot.

Name: Anonymous 2011-07-14 21:47

>>182
>never posted once here before
>spambot
Yeah, no.

Name: Anonymous 2011-07-14 21:51

>>181
That looks nice. I might try using this instead.

Name: Anonymous 2011-07-14 21:54

>>181
_*TOO FAST*_

Name: Anonymous 2011-07-14 21:55

>>185
You're a nigger. It's bbcode, as in TOO FAST.

Name: Anonymous 2011-07-14 22:05

>>181
Only 150 lines of Python? Really? Beats that Serissa shit and even pyib, which are both a lot larger.

Name: fake designer handbags 2011-07-14 23:49

A great post but How to select a cool handbags. we sell <a href="http://www.designerhandbags-outlet.com" title="cheap handbags">cheap handbags</a> We are the best store provided various  <a href="http://www.designerhandbags-outlet.com" title="cheap designer handbags">cheap designer handbags</a> but only a little white to make <a href="http://www.designerhandbags-outlet.com" title="coach handbags online">coach handbags online</a>

Name: Kevino 2011-08-09 4:50

Name: Anonymous 2011-08-09 6:06

So informative!

Name: Anonymous 2011-08-09 10:16

Hasn't the 4chan source been leaked? Not to mention posted on pastebin?

Name: Anonymous 2011-08-09 10:36

Now make it in Lisp.
In under 50 lines.

Name: Anonymous 2011-08-09 10:39

>>192
Ask our in-lisp boy.

Name: Anonymous 2011-08-09 10:41

>>181
Is it possible to see this up and running?

Name: Anonymous 2011-08-09 10:51

>>194
Not the dev, but it wasn't bad. However, it didn't really offer anything new to the table in terms of usability.

Name: Anonymous 2011-08-09 10:52

>>195
Got a screenshot?

Name: Anonymous 2011-08-09 14:27

>remove the thread id from the address bar
>no thread specified
>Powered by Shiichan 3955 + 4chan 20080608.

Name: ᴍʀ. ᴠɪʟᴇ !PRoGN.piPE 2011-08-09 21:24

Name: Anonymous 2011-08-09 22:07

>>198
fuck off, ``faggot"

Name: Anonymous 2011-08-10 3:05

200 get

Name: Anonymous 2011-08-10 5:10

>>181
i like it thank you very much i have no suggestions at this time but keep up the good work... delan

Name: Rubber Mountings 2011-09-01 5:18

Thanks for sharing the information! it was really good and worth reading

Name: Car Rental goa 2011-09-01 5:20

Nice efforts for this post

<a href="http://akulscarrentalsgoa.com">Car Rentals Goa</a>

Name: Anonymous 2011-09-26 16:19

fake

Name: Spin Riveting Machine 2011-10-05 6:05

hi this is really a nice post, informative post. i will share it with all of my friends.

Name: Anonymous 2011-10-05 7:49

make one yourself fagstorm. 4chan isnt exactly as complex as people claim it to be. learn php ball juggler.

also, sage for gay thread.

Name: Anonymous 2011-10-05 7:54

>>1
^^ is trolling? you guys really couldnt see that?
>>206
^^homosexual

Name: Anonymous 2011-10-10 16:22

Yeah

Name: Gold Jewellery Manufacturer 2011-10-11 1:34

nice post.. very informative post, i will bookmark it. Also i will share this post with all my friends.

Name: Anonymous 2011-10-11 1:38

where is the fucking git link

Name: Anonymous 2011-10-11 8:40

<--- FUCK YOU MOTHERFUCKER THESE ARE MY DUBS! BACK THE FUCK UP AND CHECK 'EM NIGGERS!

Name: Anonymous 2011-10-11 8:48

>>211
go back to japan

Name: Clinching Machine 2011-10-14 2:48

nice post.. very informative post, i will bookmark it. Also i will share this post with all my friends.

Name: Anonymous 2011-10-14 3:40

>>213
Share you're dick.

Name: Single Point Diamond Dressers 2011-10-15 7:20

Jain Precision manufacturer, exporter & supplier of wide range of single point diamond dresser in India. Jain Precision is a well known supplier of diamond dressers tools and many other   quality products.

Name: Anonymous 2011-10-15 12:35

>>215
Go back to /spam/, please.

Name: parbindsingh 2011-10-19 6:18

We are leading manufacturer of Rotary Dressers. We design Rotary Dressers in various technical configurations and specifications and available at attractive rates.
http://diamonddresser.co.in/rotary-dressers.html

Name: Anonymous 2011-10-19 7:05

I made my own version of 4chan and called it PHP chan, I'm still working on it though.

You can check it out at http://phpchan.tk/

And ignore the "current users" thing that says there are 500+ users currently online, I need to fix that as in reality, no one is there.

Name: Cheap Canada Goose 2011-11-11 1:17

Winter belongs Canada, because there has <a href="http://www.jacketbrands.org">cheap canada goose</a>
customer

Name: HAXUS THE GREAT 2011-11-11 16:04

>>219
Winter belongs to [b]CanaDUH[/b]

Name: MBT Kimondo men shoes 2011-12-01 5:23

<a href="http://www.mbtmenshoesoutlet.com/mbt-men-shoes-mbt-karani-men-shoes-c-123_135.html"> MBT Karani men shoes</a>by directing a new and illegal trial beyond the seas, for crimes alleged to have

Name: Anonymous 2011-12-01 6:00

Stop using Emacs and playing Touhou, it's bad for your pinky.

Name: Anonymous 2011-12-01 8:21

>>218
/b/ronies

I already hate you.

Name: babour Duke Jacket 2012-01-11 2:44

The <a href="http://www.barbourjackets-sales.org/"><strong>barbour womens jackets</strong></a> is basically a classically designed and styled <a href="http://www.barbour-jackets-uk.net/"><strong>quilted barbour jacket</strong></a>. These <a href="http://www.barbour-jackets-uk.net/"><strong>barbour jacket</strong></a> are simple yet they are quite effective.

Name: Anonymous 2012-01-11 16:22

It is my dream to create a 4chan .org clone of my own some day.

I will call it fourchan.

Name: Anonymous 2012-01-11 22:42

>>225
I'm working on a version that is almost compleated
>>218
I had abandoned it but nao I'm working on it again, you can see it at http://boards.freecandy.org/

Name: sage 2013-03-07 14:49

sage

Name: James Gosling 2013-04-06 16:11

GAWWWWWWWWZMACSSSSSS FLABBERGASTS MY AUDIENCE

Name: xcvcxv 2013-06-15 1:29

vxcvxcv

Name: укук 2013-09-07 19:17

Name: Anonymous 2013-09-08 1:24

I've got the source from several years ago.
Pretty outdated by now.
Also it's PHP, and apparently PHP devs like to put all their functions in one big file. Terrible!

Don't change these.
Name: Email:
Entire Thread Thread List