Turns form data into JSON and opens a pull request.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tastytea 7518947766
RSS kinda works.
1 day ago
cmake Add std::filesystem helper to CMake recipe. 1 week ago
src RSS kinda works. 1 day ago
tests Simplify CMake config by making a reusable library. 4 days ago
.clang-format Update clang-format config. 1 day ago
.drone.yml Add pull requests via Gitea API. 5 days ago
.editorconfig Add skeleton. 1 week ago
.gitignore Add skeleton. 1 week ago
AUTHORS Add skeleton. 1 week ago
CMakeLists.txt Set required CMake version to 3.11. 3 days ago
CODE_OF_CONDUCT.adoc Add skeleton. 1 week ago
CONTRIBUTING.adoc Fix URIs in contributing guidelines. 1 week ago
CREDITS Add pull requests via Gitea API. 5 days ago
LICENSE Add skeleton. 1 week ago
README.adoc Update short description in readme. 2 days ago

README.adoc

fediblock-backend

fediblock-backend turns form data into JSON and opens a pull request on FediBlock/data. Also included are tools to generate a HTML list and (soon) an RSS generator.

Usage

nginx config
# […]

location /add {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass    unix:/var/run/cgi-fcgiwrap.socket-1;
    fastcgi_param SCRIPT_FILENAME /usr/bin/fediblock-backend;
    fastcgi_param HOME "/var/lib/nginx"; # When I didn't set it, HOME was /root.
}
Generate SSH key
sudo -u nginx ssh-keygen -t ed25519 -f ~nginx/.local/share/fediblock-backend/ssh_id

Don’t forget to add the key to the data repo.

Generate an access token and save it in /var/lib/nginx/.local/share/fediblock-backend/gitea_access_token.

Generate HTML blocklist

After compiling, run src/generators/gen_html in your build dir. The screenshots will be copied into the target directory and the output will be the HTML file.

Example: Generate the HTML blocklist in ~/blocklist/
./src/generators/gen_html ~/blocklist > ~/blocklist/index.html

Existing screenshots will not be overwritten.

Install

From source

Dependencies

  • Tested OS: Linux

  • C++ compiler with C++17 support (tested: GCC 8/9/10, clang 7/10)

  • CMake (at least: 3.9)

  • cgicc (tested: 3.2)

  • nlohmann-json (tested: 3.7 / 2.1)

  • libgit2 with SSH support (tested: 1.0 / 0.27)

  • libcurl (at least: 7.56)

  • Optional

    • Tests: Catch (tested: 2.5 / 1.10)

    • DEB package: dpkg (tested: 1.19)

    • RPM package: rpm-build (tested: 4.11)

Get sourcecode

git clone https://schlomp.space/FediBlock/backend.git

Compile

mkdir -p build && cd build
cmake ..
cmake --build . -- --jobs=$(nproc --ignore=1)
CMake options:
  • -DCMAKE_BUILD_TYPE=Debug for a debug build.

  • -DWITH_TESTS=YES if you want to compile the tests.

  • -DWITH_CLANG-TIDY=YES to check the sourcecode with clang-tidy while compiling.

  • One of:

    • -DWITH_DEB=YES if you want to be able to generate a deb-package.

    • -DWITH_RPM=YES if you want to be able to generate an rpm-package.

To create a deb or rpm package, run make package after compiling.

How to contribute

Read the Code of Conduct.

Reporting bugs or suggesting enhancements

Before reporting a bug, please perform a search to see if the problem has already been reported. If it has, add a comment to the existing issue instead of opening a new one. Same for enhancements.

You can also contact me via E-Mail, XMPP or the Fediverse if you don’t want to open an account.

Pull requests

Please use similar coding conventions as the rest of the project. The basic rule to remember is to write code in the same style as the existing/surrounding code.

Add a copyright line with the year, your name and your email address to the files you edited. Add your name and email to AUTHORS. Unless you don’t want to.

You can also send me your patches via E-Mail, ideally using git send-email.