Clone
Table of Contents
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Главная
GM-Relay — Telegram-бот и Blazor-панель для организации TTRPG-сессий. Текущее состояние документации соответствует репозиторию Toutsu/GmRelayBot и релизу v1.7.0.
Текущий стек
- Версия проекта:
1.7.0. - Платформа:
.NET 10, C# preview, nullable reference types, warnings as errors. - Оркестрация разработки:
.NET Aspire 13черезsrc/GmRelay.AppHost. - Runtime бота:
Worker Service, Telegram long polling, Native AOT. - Web UI: Blazor Server с Telegram Login Widget.
- База данных: PostgreSQL 17.
- Доступ к данным: Npgsql, Dapper, Dapper.AOT; миграции через DbUp.
- Деплой: Docker Compose, образы
gmrelay-botиgmrelay-web.
Основные возможности
- Создание пачки игровых сессий одной командой
/newsessionс несколькими строкамиВремя:. - Опциональный лимит мест через строку
Мест:при создании сессии. - Интерактивная запись игроков на конкретные даты и самостоятельный выход через inline-кнопки Telegram.
- Лист ожидания: если основной состав заполнен, новые игроки не переполняют сессию, а попадают в очередь.
- Автоматическое освобождение места: когда активный игрок снимает запись, первый ожидающий переводится в основной состав.
- Делегирование управления группой: owner может назначать co-GM, а co-GM управляет расписанием в Telegram и Web Dashboard.
- Повышение первого игрока из листа ожидания кнопкой owner/co-GM в Telegram или Web Dashboard.
- Автоматическое создание Telegram forum topic для пачки игр, если группа является форумом.
- Отмена отдельной сессии owner/co-GM из основного сообщения расписания.
- Управление сессиями через
/listsessionsс отображением мест и очереди ожидания. - Перенос сессии через кнопку owner/co-GM: GM предлагает 2-3 времени и дедлайн, участники голосуют за варианты, бот показывает текущие результаты и применяет победителя по дедлайну.
- RSVP-подтверждение за 24 часа до игры только для основного состава.
- Персональные DM-уведомления игрокам о RSVP за 24 часа, напоминание за 1 час, ссылке перед стартом, отмене и переносе.
- Отправка ссылки на подключение за 5 минут до подтверждённой игры.
- Экспорт будущих запланированных сессий в
.icsчерез/exportcalendar. - Web-панель для owner/co-GM: список групп, список сессий, редактирование названия, времени, ссылки и лимита мест.
- Bulk-операции в Web Dashboard: общий
title/linkдля batch, перенос всей пачки на фиксированный шаг и клонирование на следующую неделю или месяц с новым Telegram-сообщением. - Настройка режима уведомлений для batch:
В группе и в личкуилиТолько в группе, при этом групповые сообщения сохраняются всегда. - CSS-fix Web Dashboard: раскрывающиеся списки используют контрастный фон и текст в native select dropdown.
Разделы
- Быстрый старт — локальный запуск и первичная настройка.
- Руководство ГМа — формат команд, запись игроков, лимиты, waitlist и переносы.
- Архитектура — устройство сервисов и ключевые потоки.
- Разработка — правила разработки, тесты и локальные команды.
- Развёртывание — Docker Compose, окружение и эксплуатация.
- База данных — схема БД, миграции и статусная модель.