1 Apparently having a sane external interface is an accomplishment
2 these days, so here's ours. No JSON, because I don't give a damn.
4 - Boards are at <root>/<board>
5 - Threads are at <root>/<board>/res/<thread number>
6 - Media files are at <root>/<board>/src/<timestamp>.<extension>
8 Everything that's not reading files, you do by POST. Everything
9 goes through one place: <root>/action (that's the literal word
10 "action"). You know what? I'm just going to give this in terms
11 of curl. Make sure you use multipart/form-data (so -F, not -d)
12 because otherwise it'll get dropped.
14 The only interesting thing is the challenges. Replying or newthreading
15 needs a challengeid and a response or else you might be banned for
16 a while. Any correct combination will work.
18 - curl -X POST http://example.com/action \
26 -F challengeresponse=Ball \
27 -F file=@/home/john/pictures/char.jpg
29 - curl -X POST http://example.com/action \
36 -F challengeresponse=hArO \
37 -F file=@/home/mary/pictures/space.mp3
39 Administration is done locally, through rb79-ban-ip, rb79-delete-post,
40 etc. Also, if you fiddle with the database manually, the server
41 accepts exactly one extra action, which can only be triggered from
44 - curl -X POST 127.0.0.1/action -F action=rebuild
46 That will regenerate all static files.