Skip to content

Repository files navigation

Межсерверный Discord-бот

Бот на Python для межсерверных документов и розыска.

Что умеет

  • /пост — отправляет документ в нужную фракцию через её webhook
  • /ответ — отправляет ответ на документ в отдельный Discord через webhook
  • /объявить-розыск — публикует розыск в выделенный канал
  • /розыск-исполнено — закрывает розыск, редактируя исходное сообщение webhook
  • SQLite-база для хранения документов и розысков
  • автоудаление записей /пост через 72 часа

Структура

  • bot.py — основной код бота
  • .env.example — пример конфига
  • requirements.txt — зависимости

Установка

  1. Установи Python 3.11+.
  2. Создай папку проекта и скопируй туда файлы.
  3. Создай виртуальное окружение:
    • Windows:
      py -3.11 -m venv .venv
      .venv\Scripts\activate
  4. Установи зависимости:
    pip install -r requirements.txt
  5. Создай .env на основе .env.example.
  6. Вставь туда:
    • токен бота
    • все webhook URL
    • при необходимости COMMAND_GUILD_IDS
  7. Запусти бота:
    python bot.py

Важная настройка

1. Список лидеров и замов - Не актуально

Заполни его своими реальными вариантами. Они будут доступны в автодополнении slash-команды.

2. Права бота

Боту нужны права:

  • Use Application Commands
  • Send Messages
  • Embed Links

3. Добавление бота

При создании бота в Discord Developer Portal включи:

  • applications.commands
  • bot

Что хранится в базе

Таблица posts

Хранит:

  • номер документа
  • автора документа
  • фракцию
  • сообщение webhook
  • срок жизни 72 часа

Таблица wanted

Хранит:

  • номер розыска
  • исходное webhook-сообщение
  • статус active/closed
  • кто закрыл розыск
  • доказательства исполнения

Как это работает

/пост

  • проверяет, нет ли уже такого номера
  • отправляет embed в webhook нужной фракции
  • сохраняет номер и автора в БД на 72 часа

/ответ

  • ищет номер документа в БД
  • если номер найден, отправляет ответ в отдельный Discord
  • тегает автора исходного документа

/объявить-розыск

  • работает только в одном указанном канале
  • отправляет embed в webhook розыска
  • сохраняет message_id, чтобы потом отредактировать сообщение

/розыск-исполнено

  • ищет розыск в БД
  • редактирует исходное сообщение webhook
  • перечёркивает старый розыск
  • добавляет кто закрыл и доказательства

/Синхронизация

  • Проверяет наличие ролей на серверах фракции и обновляет/кикает из/в чп

About

Simple GTA5RP State Bot

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages