87 lines
4.5 KiB
Markdown
87 lines
4.5 KiB
Markdown
# ReadMe
|
|
FediStatusPosterExtras is a collection of shell scripts to extend the functionality of FediStatusPoster.
|
|
|
|
The scripts are intended to be used with cron to create long running bots that can post more than just a default/random image or message.
|
|
|
|
Live examples can be found at [GNU/Yandere](https://yandere.cc/YandereLewdBot)
|
|
|
|
# Scripts
|
|
The following scripts are included:
|
|
|
|
`boorubot.sh` This script demonstrates how to download a random image from a booru site (in this case gelbooru.com) and post it to your bot account. It will automatically set the sensative flag for the post based on the result. This script utalizes curl and jq to query and download images.
|
|
|
|
`imgbot.sh` This script demonstrates how to set custom text based on the path location of the image passed to it. It will utalize the same method to automatically post to the correct bot account based on the image path.
|
|
|
|
`pick_ordered.sh` This script will return a line from a text file, as well as log the location of the last line it read from. This is useful to post a list of images in order, and pass the result to the above two scripts. It will wrap around the text file if it reaches the end.
|
|
|
|
All of the above scripts expect [FediStatusPoster](https://git.yandere.cc/Anon/FediStatusPoster) to be in the root directory as this repo (ie. both repos should be in the same root directory). You can ofcourse modify the contents of the shell scripts to suit your preferences.
|
|
|
|
## Installing
|
|
You must have `git` and `python3` installed.
|
|
|
|
To setup the Python3 environment, run the following commands:
|
|
```
|
|
git clone 'https://git.yandere.cc/Anon/FediStatusPoster.git'
|
|
git clone 'https://git.yandere.cc/Anon/FediStatusPosterExtras.git'
|
|
cd FediStatusPoster
|
|
python3 -m venv venv
|
|
. venv/bin/activate
|
|
pip install --upgrade pip
|
|
pip install Mastodon.py
|
|
deactivate
|
|
./fedistatusposter.sh -h
|
|
```
|
|
If everything worked correctly, you should see usage information on FediStatusPoster
|
|
|
|
Now cd into the Extra's folder:
|
|
```
|
|
cd ../FediStatusPosterExtras
|
|
```
|
|
|
|
## Posting Your First Image
|
|
The below example will highlight how to query and post a random image from [Gelbooru](https://gelbooru.com)
|
|
|
|
First, create your credentials using [CreatePleromaApp](https://git.yandere.cc/Anon/CreatePleromaApp). Edit `boorubot.sh` and update the DEFUALT_CREDENTIALS and DEFAULT_KEYFILE accordingly.
|
|
|
|
Second, create a file called `blacklist.txt`, and add a list of line-seperated tags you don't want to be retured as a result.
|
|
|
|
Then run the following command (add rating:general if you only want a safe image returned):
|
|
```
|
|
./boorubot.sh blacklist.txt 'gasai_yuno yandere' 'Message to post if image is safe' 'Message to post if image is nsfw'
|
|
```
|
|
The bot will return a single random result for images tagged with gasai_yuno and yandere, and post the image with the corrisponding safe or nsfw message specified in the arguments above.
|
|
|
|
# Useful Tips
|
|
To take full advantage of these scripts, they should be used in conjunction with cron to post at regular intervals.
|
|
|
|
You should edit `imgbot.sh` to tailor it to your specific needs.
|
|
|
|
Here are some example configuraitions I use for my bots:
|
|
```
|
|
# Post a random image from a directory:
|
|
05,25,45 * * * * find ~/Programs/python3/FediStatusPosterExtras/images -type f -print |\
|
|
shuf -n 1 | xargs ~/Programs/python3/FediStatusPosterExtras/imgbot.sh
|
|
|
|
# With a premade list of images, post each in order, wrapping around to the beginning when the end of the list is reached:
|
|
05,25,45 * * * * ~/Programs/python3/FediStatusPosterExtras/pick_ordered.sh \
|
|
~/Programs/python3/FediStatusPosterExtras/list_of_images_to_post.txt \
|
|
~/Programs/python3/FediStatusPosterExtras/logimgbot.log |\
|
|
xargs ~/Programs/python3/FediStatusPosterExtras/imgbot.sh
|
|
|
|
# With a premade list of booru searches stored in a csv file,
|
|
# Where the csv has three values seperated like so: search_tag,safe message,nsfw message
|
|
# Post each search in the list, wrapping around to the beginning when the end of the list is reached:
|
|
05,25,45 * * * * ~/Programs/python3/FediStatusPosterExtras/pick_ordered.sh \
|
|
~/Programs/python3/FediStatusPosterExtras/csv_with_search_tags_safemsg_nsfwmsg.csv \
|
|
~/Programs/python3/FediStatusPosterExtras/logboorubot.log |\
|
|
tr ',' '\0' | tr '\n' '\0' |\
|
|
xargs -0 ~/Programs/python3/FediStatusPosterExtras/boorubot.sh \
|
|
~/Programs/python3/FediStatusPosterExtras/blacklist.txt
|
|
```
|
|
# Donate
|
|
BTC: bc1q8w04c6xt0sm2nskkqatp372llyx8ed33at4k4g
|
|
|
|
ETH & BAT: 0x2B1C49cc1C93e5bba59a5eD4D0E0a4Da8D6Ce482
|
|
|
|
XMR: 493HynLQA4z71b3j9ZDXRNQudpdFW8GxeBGD8ahRctKn97RRurMVd35DqVqdAdjv68TcXTJWUwm6ee81ujDXGcmtKFixwQk
|