/Rule34Bot

Бот для автоматической трансляции постов категории Rule34 в группу или канал Telegram.

Primary LanguagePythonApache License 2.0Apache-2.0

Rule34Bot

Rule34Bot – это бот, транслирующий посты с сайта R-34.xyz в группу или канал Telegram с автоматической простановкой тегов и форматированием.

Порядок установки и использования

  1. Загрузить последний релиз. Распаковать.
  2. Установить Python версии не старше 3.10.
  3. В среду исполнения установить следующие пакеты: pyTelegramBotAPI, beautifulsoup4, dublib.
pip install pyTelegramBotAPI
pip install beautifulsoup4
pip install dublib

Либо установить сразу все пакеты при помощи следующей команды, выполненной из директории скрипта.

pip install -r requirements.txt
  1. Настроить скрипт путём редактирования Settings.json.
  2. Назначить бота администратором группы или канала.
  3. Открыть директорию со скриптом в терминале. Можно использовать метод cd и прописать путь к папке, либо запустить терминал из проводника.
  4. Выполнить последовательно команды для парсинга и отправки поста в Telegram.
  5. Автоматизация процесса производится при помощи сторонних утилит, таких как 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. Имеет следующие правила:

  1. Теги, не умещающиеся в лимит 1024 символов, будут удалены.
  2. Максимальный размер вложения – 20 MB. ID постов, имеющих больший размер, будут помещены в поле errors.

unblock

Удаляет файл blocked, использующийся для запрета отправки сообщений во время парсинга.

Settings.json

"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.