CORSO Family Control Bot
Discord-бот для семьи CORSO, который превращает рутину главсостава в понятный рабочий процесс.
Контракты, заявки в семью, повышения и аудит сервера собраны в одной системе с аккуратными кнопками и прозрачной историей действий.
Что умеет бот
- Контракты через панель: взять контракт, отправить заявку по форме, проверить статус.
- Проверка заявок по контрактам кнопками Принять / Отклонить.
- Заявки на повышение без лишних вложений: ник+статик и ссылки на активы.
- Заявки в семью с этапом рассмотрения, вызовом в войс, принятием/отклонением и уведомлениями в ЛС.
- Аудит сервера: сообщения, роли, вход/выход, а также голосовая активность с подсчётом времени.
Команды (префикс !)
!setup_post — публикует панель контрактов.
!stats — показывает статистику по контрактам и выплатам.
!setup_promotion — публикует панель повышения.
!setup_family — публикует панель заявок в семью.
!cancel_contract <id> — отменяет активный контракт по ID.
Доступ к командам и кнопкам модерации: роли из staff_role_ids и operator_role_ids.
Как работает контракт сейчас
- Участник берёт контракт в панели.
- Нажимает Заполнить отчёт и отправляет форму.
- Сразу создаётся заявка в канал проверки (без фото).
- Главсостав нажимает Принять или Отклонить.
Быстрый запуск локально
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python -m bot.main
.env:
DISCORD_TOKEN=your_discord_bot_token_here
Перед запуском заполни config.yml (каналы, роли, контракты, аудит).
Рекомендуемый бесплатный хостинг
Лучший вариант для старта: Koyeb.
Почему:
- простой деплой из GitHub;
- нормально работает с Python-ботами;
- можно быстро обновлять после каждого коммита.
Быстрый деплой на Koyeb (10-15 минут)
- Залей проект в GitHub.
- В Koyeb нажми Create App -> GitHub -> выбери репозиторий.
- Тип сервиса: Web Service (или Worker, если доступен в твоём тарифе).
- Build command:
pip install -r requirements.txt
- Run command:
- В переменные окружения добавь:
- Убедись, что
config.yml лежит в репозитории с актуальными ID каналов/ролей.
- Запусти деплой и проверь логи: бот должен показать
Logged in as ....
Чтобы всё работало стабильно
- В Discord Developer Portal включи intents: Message Content и Server Members.
- Дай боту права: читать/писать сообщения, embed links, manage invites (если нужен точный аудит инвайтов), просмотр audit log.
- Не храните токен в репозитории: только в переменных окружения хостинга.
- После изменений в коде делай redeploy и проверяй логи старта.
Структура проекта
bot/main.py — запуск, команды, события Discord.
bot/config.py — загрузка настроек.
bot/db.py — база SQLite.
bot/features/contracts.py — панель контрактов.
bot/features/reports.py — заявки по контрактам.
bot/features/review.py — модерация заявок.
bot/features/promotion.py — повышение.
bot/features/family.py — заявки в семью.
bot/features/audit.py — аудит и voice-логи.
bot/ui/styles.py — стиль эмбедов.