Бот на Python для межсерверных документов и розыска.
/пост— отправляет документ в нужную фракцию через её webhook/ответ— отправляет ответ на документ в отдельный Discord через webhook/объявить-розыск— публикует розыск в выделенный канал/розыск-исполнено— закрывает розыск, редактируя исходное сообщение webhook- SQLite-база для хранения документов и розысков
- автоудаление записей
/постчерез 72 часа
bot.py— основной код бота.env.example— пример конфигаrequirements.txt— зависимости
- Установи Python 3.11+.
- Создай папку проекта и скопируй туда файлы.
- Создай виртуальное окружение:
- Windows:
py -3.11 -m venv .venv .venv\Scripts\activate
- Windows:
- Установи зависимости:
pip install -r requirements.txt
- Создай
.envна основе.env.example. - Вставь туда:
- токен бота
- все webhook URL
- при необходимости
COMMAND_GUILD_IDS
- Запусти бота:
python bot.py
Заполни его своими реальными вариантами. Они будут доступны в автодополнении slash-команды.
Боту нужны права:
- Use Application Commands
- Send Messages
- Embed Links
При создании бота в Discord Developer Portal включи:
applications.commandsbot
Хранит:
- номер документа
- автора документа
- фракцию
- сообщение webhook
- срок жизни 72 часа
Хранит:
- номер розыска
- исходное webhook-сообщение
- статус active/closed
- кто закрыл розыск
- доказательства исполнения
- проверяет, нет ли уже такого номера
- отправляет embed в webhook нужной фракции
- сохраняет номер и автора в БД на 72 часа
- ищет номер документа в БД
- если номер найден, отправляет ответ в отдельный Discord
- тегает автора исходного документа
- работает только в одном указанном канале
- отправляет embed в webhook розыска
- сохраняет
message_id, чтобы потом отредактировать сообщение
- ищет розыск в БД
- редактирует исходное сообщение webhook
- перечёркивает старый розыск
- добавляет кто закрыл и доказательства
- Проверяет наличие ролей на серверах фракции и обновляет/кикает из/в чп