Create README.org

dotnetflags
C-xC-c 5 years ago committed by GitHub
parent f7c044ef79
commit a16b1fd4dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,74 @@
* BantFlags
A user script and backend enabling user created flags on [[https://boards.4chan.org/bant][/bant/]],
originally based on [[https://github.com/flaghunters/Extra-Flags-for-4chan][extraflags]].
[[https://flags.plum.moe/bantflags.user.js][Install bantflags]]
** Running
*** Prerequisites
- .NET core 3.1
- Mariadb / mysql
*** .NET dependancies
- Nito.AsyncEX
- Newtonsoft.Json
- MySql.Data
- Microsoft.AspNetCore.Mvc.NewtonsoftJson
- Microsoft.AspNetCore.StaticFiles
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore.Tools
*** Setup
1. Install .NET
2. Clone and build the BantFlags .NET project.
3. Create the database using =database.sql=.
+ *Change the password*.
4. configure =BantFlags/appsettings.example.json= with your connection
string and webroot (the directory you wish to serve the flags from)
and rename it to =appsettings.json=
+ The location of the BantFlags application and the served content
are not necessarly the same. If you leave it empty, or provide a
nonexistant path the application will look for the =wwwroot=
folder inside the working directory.
+ This should be placed either in inside the working directory or
the same directory as the program.
5. Add flags to the backend (currently only possible by querying the
database directly), and place image *with the same name* in
={webroot}/flags/=.
6. Configure your webserver of choice to forward requests to kestral
+ Example nginx config.
7. Run the application
8. ???
9. profit.
Such a setup /should/ map 1:1 to the userscript just by changing the
variable =back_end= though I can't say I've ever tried it.
*** Database
Tables look like this:
*posts*
| id | post_nr | board |
| 1 | 12345 | bant |
| 2 | 56789 | bant |
*flags*
| id | flag |
| 1 | patchouli |
| 2 | chen |
*postflags*
| id | post_nr | flag |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 2 | 2 | 2 |
where post_nr and flag in *postflags* are the primary key in their respective tables.
*** API
The backend exposes three endpoints used by the userscript to get and
post flags, and a flags directory storing the images themselves.
| route | purpse |
|------------+---------------------------|
| /api/get | Get flags in a thread |
| /api/post | Add flags to the database |
| /api/flags | List the flags we support |
| /flags/* | The flag images |
Loading…
Cancel
Save