014
Archive 014Telegram-бот

Companion

Telegram: продвинутый матчмейкинг и анкеты игроков

telegram

Companion
01 /О проекте

Telegram: продвинутый матчмейкинг и анкеты игроков

02 /🧑‍💼 Пользовательские анкеты
  1. 01Регистрация анкеты с пошаговой сессией в Redis
  2. 02Поля: ник, game_id, MMR, сервер, репутация, верификация, «О себе», «Кого ищет»
  3. 03Показ анкеты с вычисляемым «звание» по MMR
  4. 04Инлайн-кнопка переключения статуса поиска (🟢/🔴)
  5. 05Просмотр собственных скриншотов (общая/сезонная статистика)
03 /✏️ Редактирование анкеты
  1. 01Инлайн-меню редактирования отдельных полей
  2. 02Валидации никнейма и текстов (фильтры)
  3. 03Ограничение изменения MMR в сутки (верифицированные до 4 раз, остальные — 1)
  4. 04Выбор сервера из клавиатуры
  5. 05Загрузка/замена скриншотов с локальным сохранением и file_id
04 /🔍 Поиск и матчмейкинг
  1. 01Подбор по MMR с расширяющимися диапазонами
  2. 02Исключение уже просмотренных (учёт последних 100 просмотров)
  3. 03Лимит просмотров за 6 часов
  4. 04Инлайн-меню: «Хочу с ним поиграть», «Следующий», «Жалоба», «Меню»
  5. 05Заявки на контакт: отправка, принятие/отклонение, лимит исходящих заявок в час
05 /🚨 Жалобы и модерация
  1. 01Подача жалобы с пресетами причин и кастомной причиной
  2. 02Хранение сессии жалобы в Redis и защита от спама (24ч cooldown)
  3. 03Отправка жалоб в лог-канал с инлайн-действиями для админов
  4. 04Админские действия из жалобы: показать анкеты, написать сторонам, предупредить, забанить
06 /🛡️ Система наказаний
  1. 01Бан/разбан через команды и админ-панель (деактивация, причина, дата)
  2. 02Автоотключение поиска при бане
  3. 03Мидлвар `OnlyNotBanned` блокирует доступ забаненным
  4. 04Подробный лог бана в коллекцию `ban_logs` и уведомление главному админу
  5. 05Предупреждения (warn) через админские действия по жалобам
07 /✅ Верификация
  1. 01Команда подачи заявки на верификацию
  2. 02Многошаговый процесс с подтверждением честности и кодовым словом
  3. 03Отправка заявок всем админам, решение: принять/отклонить с указанием причины
  4. 04Логи решений в канал и уведомления пользователю
08 /🛠️ Админ-инструменты
  1. 01Админ-панель: действия по пользователям (бан, верификация и др.)
  2. 02Рассылка (broadcast) с подтверждением
  3. 03Статистика/отчёты (статс-обработчики)
  4. 04Просмотр и управление жалобами
  5. 05Писать пользователям от лица админа
09 /🔒 Ограничения и защита
  1. 01Rate limiting: /start, поиск, заявки на контакт, просмотры профилей
  2. 02Автоматическое включение поиска при старте поиска тиммейта
  3. 03Проверка подписки/состояния при rate-limit, self-test бота
  4. 04Безопасные отправки сообщений и медиа (устойчивость к блокировкам/ошибкам)
10 /📣 Логирование и уведомления
  1. 01Единый лог событий `logEvent` с записью в `logs/app.log`
  2. 02Ошибки в `logs/error.log`, критические уведомления — админам
  3. 03Уведомления в лог-канал Telegram по ключевым событиям (баны, верификация, жалобы)
  4. 04Отправка анкет/сообщений в группы/ветки с автоудалением при необходимости
11 /⏱️ Планировщики и фоновые задачи
  1. 01Деактивация «молчунов» раз в 12 часов
  2. 02Очистка старых заявок на контакт раз в сутки
  3. 03TTL-очистка просмотров профилей (7 дней)
  4. 04Модуль healthcheck (инфраструктурные проверки)
12 /📱 Интерфейс и меню бота
  1. 01Главное меню и стартовое меню (клавиатуры и инлайн)
  2. 02Разделы: моя анкета, поиск, редактирование, чат, баг-репорт
  3. 03Инлайн «Главное меню» и переходы по ключевым разделам
  4. 04Кнопка чата Telegram
13 /🧩 Технические особенности
  1. 01Node.js (CommonJS) + Telegraf для Telegram-бота
  2. 02MongoDB с индексами и базовой схемой валидации
  3. 03Redis (ioredis) для сессий и rate limit
  4. 04Локальное хранение скриншотов в `uploads/screenshots` + file_id
  5. 05Конфиги через переменные окружения (BOT_TOKEN, MONGO_URI, и т.д.)
  6. 06Поддержка тем в супергруппах (message_thread_id) при отправке в топики