# 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: ```bash 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 ```bash 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 ```json { "hololive_images": { "gelbooru_tags": "hololive", "gelbooru_tags_exclude": "-sky", "bot_message": "Hololive Image", "bot_hashtags": "#hololive", "misskey_token": "uuuu0hOhrrrlrlrP8888uquqaaaaAUAU", "max_page_number": 200, "last_run_time": -1 }, "kancolle": { "gelbooru_tags": "kantai_collection", "gelbooru_tags_exclude": "", "bot_message": ".", "bot_hashtags": "#kancolle", "misskey_token": "HHkkuuuutdtdrrrrvWvW8888yayaaaaa", "max_page_number": 200, "misskey_url": "https://misskey.io/api/", "last_run_time": 1696896202.1551812 } } ``` - `max_page_number:` Automatically determined by the script. - `last_run_time:` Used to allow the different bots to post at different times by tracking the last time that specific bot posted. ### defaults.json ```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.