dotnet 14ededdf4e | ||
---|---|---|
.gitignore | ||
LICENSE | ||
README.md | ||
gelbooru_poster.py | ||
misskeybot.service | ||
misskeybot.timer |
README.md
Gelbooru Image Bot for Misskey
Simple python bot which scrapes images from gelbooru based on specified tags every hour and posts to a misskey instance. The script can handle multiple bots simulatenously.
- Uses a systemd timer.
- Posts original source when available.
- Attempts to optimize downloaded images for size with PIL.
- Attempts to renote the original source if possible.
- Option for posting to hashtags (limits to once per day to avoid drowning out other content).
Installation
Requires the pillow library: pip install pillow
Edit the misskeybot.service file with your install path, copy misskeybot.service and misskeybot.timer to /etc/systemd/system/
then run as root:
systemctl daemon-reload #Reload unit files
systemctl enable misskeybot.timer #Enable the periodic execution of the script
systemctl start misskeybot.timer #Start the periodic execution of the script
Usage
python .\gelbooru_poster.py --help
Usage: python3 gelbooru-bot.py [--gen-config] [--help]
--gen-config: Add a new bot to the config.json file
--help: Show this help message
No arguments: Run the bot
Note: The values in defaults.json will be used if the values are not set in config.json
Files
config.json
{
"hololive_images": {
"gelbooru_tags": "hololive",
"gelbooru_tags_exclude": "-sky",
"bot_message": ["Hololive Image $dh$\n$gel_src$\n$src$", "Uooooh $dh$\n$gel_src$\n$src$"],
"bot_hashtags": "#hololive",
"misskey_token": "uuuu0hOhrrrlrlrP8888uquqaaaaAUAU",
"max_page_number": 200,
"last_run_time": -1,
"next_run_time": -1,
},
"kancolle": {
"gelbooru_tags": "{kantai_collection ~ boat_girl}",
"gelbooru_tags_exclude": "",
"bot_message": "$dh$\n$gel_src$\n$src$",
"bot_hashtags": "#kancolle",
"misskey_token": "HHkkuuuutdtdrrrrvWvW8888yayaaaaa",
"max_page_number": 200,
"misskey_url": "https://misskey.io/api/",
"last_run_time": 1696896202.1551812,
"next_run_time": 1696899802.1551812,
}
}
Message formatting:
$dh$
: Daily hashtag$gel_src$
: Gelbooru link$src$
: Original source
Other fields:
-
max_page_number:
Automatically determined by the script. -
last_run_time:
Unused. -
next_run_time:
Used to schedule the next time to post on that specific account.
defaults.json
{
"gelbooru_tags": "rating:safe",
"gelbooru_tags_exclude": "",
"bot_message": "Random image from Gelbooru",
"misskey_url": "https://misskey.io/api/",
"misskey_token": "",
"max_page_number": 1000
}
- These values are used if not defined in the
config.json
, useful if all bots are on the same url.