.github/workflows | ||
gradle | ||
src/main/kotlin | ||
.gitattributes | ||
.gitignore | ||
build.gradle | ||
docker-compose.yml | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
Makefile | ||
README.md | ||
sample.config.json | ||
sample.deploy.sh | ||
sample.docker-compose.yml | ||
sample.Dockerfile | ||
settings.gradle |
BooruGrabberTelegramBot
Bot for booru-boards grabbing. It uses imageboard-api for requests to boards and support next boards as well as imageboard-api
:
- Rule34
- e621
- Konachan
- Yande.re
- Danbooru
- Safebooru
- Gelbooru
- e926
Sample bot presented here: @booru_grabber_bot
Available commands
Bot have two helping commands: /start
and /help
. These commands will return help for bot /request
//enable
commands:
Usage: enable [OPTIONS] QUERY...
Options:
-n INT Amount of pictures to grab each trigger
time
-k, --krontab TEXT... Krontab in format * * * * *. See
https://bookstack.inmo.dev/books/krontab/page/string-format
-b, --board VALUE Board type. Possible values: r34, e621,
konachan, yandere, danbooru, safebooru,
gelbooru, e926
-g, --gallery Effective only when count passed > 1. Will
send chosen images as gallery instead of
separated images
-r, --rating [safe|general|questionable|sensitive|explicit]
-a, --attach_urls
-h, --help Show this message and exit
Arguments:
QUERY Your query to booru. Use syntax "-- -sometag" to add excluding of
some tag in query
As said previously, there are /request
and /enable
Request parameters
I will omit obvious parameters like -n
.
-b
/--board
- select which board to use-n
(optional, default 1, max 10)-k
/--krontab
(optional) - use krontab-string for setting up request from time to time. Unfortunatelly, currently supported only main five settings: seconds, minutes, hours, days and months-g
/--gallery
(optional) - flag indicates that in case you passed-n
more than 1 messages should be sent as media group-r
/--rating
(optional) - rating of images in requests-a
/--attach_urls
(optional) - will force bot to attach url of image to the sent images
Besides, after all parameters you should add query for the board like rem_(re:zero)
:
/request -n 3 -a -b safebooru -g rem_(re:zero)
If you want to use negative query parameters, you must escape them with --
before parameter:
-- -1girl
(exclude posts with 1girl
tag)
Bot remember which posts it already has sent to the chat. So, there should not be repetitions in the sent images
Samples
All the samples will use query rem_(re:zero) -- -1girl
(in fact it is query rem_(re:zero) -1girl
) and -r safe
just to make request suitable for work.
Sample from above to request 3 photos in gallery mode from safebooru with urls attaching:
/request -n 3 -a -b safebooru -g rem_(re:zero) -- -1girl
Same sample as above, but with requests each day at 22:00 UTC
/enable -k 0 0 22 * * -n 3 -a -b safebooru -g rem_(re:zero) -- -1girl
Same sample as above, but with requests each day at 22:00 UTC
/enable -k 0 0 22 * * -n 3 -a -b safebooru -g rem_(re:zero) -- -1girl
Will enable autorequests of images using krontab and other parameters.
Sample:
/enable -n 3 -k 0 0 18 * * -b safebooru -g 1girl gradient
You may use the same syntax with just replacing of /enable
by /request