Signed-off-by: Sam Therapy <sam@samtherapy.net>
2.5 KiB
fediverse-imagebot
A bot that posts local and booru images to the Fediverse.
Compatible with Mastodon, Misskey and Pleroma!
MIGRATING MAJOR VERSIONS
See the wiki.
Boorus supported
The full list of boorus supported is found here.
Downloading the bot
There are currently three ways to do this, a pre-built binary that bundles in node, from npm, or building from source. Both are listed below.
Downloading pre-built binaries
Download prebuilt binaries from here. (currently supports x86_64 and arm64 on Linux [glibc or musl], macOS and Windows)
- Run the bot with the
-w
flag to have it generate a configuration file to the local directory. - Edit it for your use case.
- If you want to generate a key you can use https://git.froth.zone/sam/js-feditoken
- Run the bot by launching the executable!
From NPM
-
Set up using the Gitea registry
npm config set @froth:registry https://git.froth.zone/api/packages/sam/npm/
-
After setting up the registry, either install it permanently
npx --package=@froth/feditoken feditoken
Running from Source
- You need to have
npm
andnodejs
installed.- Node 16 or greater is required.
- Install
pnpm
:
corepack enable
Check https://pnpm.io/installation for more information. - Clone the repository:
git clone https://git.froth.zone/sam/fediverse-imagebot.git
- Install dependencies:
pnpm i
- Build:
pnpm run build
- Edit the config file:
cp config.sample.jsonc config.jsonc
- If you want to generate a key you can use https://git.froth.zone/sam/js-feditoken
- Run the bot:
pnpm bot
You're done! The bot should post a local image to the fediverse instance of your choosing!
Automating the bot
TODO: Elaborate more
The bot can be automated to post images at set times using a cronjob.
Example cron configuration:
0 * * * * cd /path/to/fediverse-imagebot && pnpm bot -c ./config.sample.jsonc
This example will run the bot every hour on the hour with no message using images from the default images
directory.
An example of this pleroma configuration can be found at https://froth.zone/rinbot.