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



