A very barebone textboard made using the standard JRE libraries for everything except the logging which is being removed.
The goal of this project was to make the simplest "functional" and extensible imageboard I could possibly do without getting lost in complex libraries.
● Multiple boards per instance
● No storage usage (Everything stays in memory)
● Basic launch arguments for the port and boards
Here is a list of the missing features compared to more mainstream textboard solutions:
● Images
● Rate-limiting
● Captchas
● Auto thread pruning
● Admin controls
● Security measures (None are really implemented here)
All these features haven't been implemented in order to keep the project as simple as possible.
java -jar simple-chan-1.1.0.jar [--board=<board_id;board_name>] [--help] [--port=<port>]
You can choose a specific port with the --port=<port>
argument.
You can define custom baord with the --board=<board_id;board_name>
argument.
Example: --board=b;Random
or "--board=g;Nerds' Den"
If no arguments are given, the application will use the default values given in the help text.
In order to build the project, you can simply run the customFatJar
gradle task and check the /build/libs
folder for the compiled jar file.
GET - Using ???
POST - Using form fields
Responses - May return some JSON if the error is related to the API and not the URL.
URL: /{board-id}/thread
URL: /{board-id}/thread
Handler: WebBoardHandler
message:
Specifies the post's messageauthor: Optional
Specifies the author's nametitle: Optional
Specifies the post's title
Field Type Meaning error String Present if an error occurred and gives details about it. threadId Long The newly made thread's ID.
URL: /{board-id}/post
Handler: WebBoardHandlerthread:
Specifies in which thread the post should be postedmessage:
Specifies the post's messageauthor: Optional
Specifies the author's name
Field Type Meaning error String Present if an error occurred and gives details about it. postId Long The new post's ID. threadId Long The thread's ID in which the post was made.
TODO: Classpath overloading for config files...
This project, as well as all the libraries that are used, are licensed under the Apache V2 license.