Rule34Bot – это бот, транслирующий посты с сайта R-34.xyz в группу или канал Telegram с автоматической простановкой тегов и форматированием.
- Загрузить последний релиз. Распаковать.
- Установить Python версии не старше 3.10.
- В среду исполнения установить следующие пакеты: pyTelegramBotAPI, beautifulsoup4, dublib.
pip install pyTelegramBotAPI
pip install beautifulsoup4
pip install dublib
Либо установить сразу все пакеты при помощи следующей команды, выполненной из директории скрипта.
pip install -r requirements.txt
- Настроить скрипт путём редактирования Settings.json.
- Назначить бота администратором группы или канала.
- Открыть директорию со скриптом в терминале. Можно использовать метод
cd
и прописать путь к папке, либо запустить терминал из проводника. - Выполнить последовательно команды для парсинга и отправки поста в Telegram.
- Автоматизация процесса производится при помощи сторонних утилит, таких как crond в Linux или Планировщик задач в Windows.
clear [FIELD]
Очищает поля в файле Posts.json. При отстутсвии флага очищает сразу все поля.
Описание позиций:
- FIELD – ключ поля, в котором необходимо сбросить значение.
- Флаги:
- -errors – указывает для сброса поле errors;
- -id – указывает для сброса поле id;
- -sended – указывает для сброса поле sended;
- -unsended – указывает для сброса поле unsended.
- Флаги:
parse [TARGET*]
Парсит один пост или получает все обновления и помещает их в файл Posts.json.
Описание позиций:
- TARGET – цель для парсинга. Обязательная позиция.
- Аргмуент – ID поста.
- Флаги:
- -new – указывает, что нужно спарсить все обновления на сайте (если файл Posts.json пуст, будут получены последние 30 постов).
send
Формирует пост и отправляет его в группу или канал Telegram. Имеет следующие правила:
- Теги, не умещающиеся в лимит 1024 символов, будут удалены.
- Максимальный размер вложения – 20 MB. ID постов, имеющих больший размер, будут помещены в поле errors.
unblock
Удаляет файл blocked, использующийся для запрета отправки сообщений во время парсинга.
"token": ""
Сюда необходимо занести токен бота Telegram (можно получить у BotFather).
"target": ""
Сюда необходимо занести ID канала Telegram (можно получить у Chat ID Bot).
"random": false
Если позиция активна, то бот будет отправлять случайный пост, иначе – первый в порядке убывания ID.
"sections-names": {
"artists": "Автор|ы",
"characters": "Персонаж|и",
"fandoms": "Фэндом|ы",
"tags": "Тег|и",
"source": "Источник"
}
Указывает названия секций. Через символ прямой черты можно задать окончание, отбрасываемое в случае, если за названием секции следует только один тег (исключение – source).
"delay": 1
Задаёт интервал в секундах для паузы между запросами к сайту.
Copyright © DUB1401. 2024.