docs(wiki): rewrite Home for users, v2.7.2
+19
-50
@@ -1,58 +1,27 @@
|
||||
# Главная
|
||||
# GM-Relay
|
||||
|
||||
GM-Relay — Telegram-бот, Telegram Mini App и Blazor-панель для организации TTRPG-сессий. Текущее состояние документации соответствует репозиторию `Toutsu/GmRelayBot` и релизу **v1.9.9**.
|
||||
GM-Relay — бот для организации TTRPG-сессий. Поддерживает **Telegram** и **Discord**.
|
||||
|
||||
## Текущий стек
|
||||
**Текущая версия: v2.7.2**
|
||||
|
||||
- Версия проекта: `1.9.9`.
|
||||
- Платформа: `.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 и Telegram Mini App входом.
|
||||
- База данных: PostgreSQL 17.
|
||||
- Доступ к данным: Npgsql, Dapper, Dapper.AOT; миграции через DbUp.
|
||||
- Деплой: Docker Compose, образы `gmrelay-bot` и `gmrelay-web`.
|
||||
## Что умеет
|
||||
|
||||
## Основные возможности
|
||||
- Создавать расписания игр (batch sessions) одной командой.
|
||||
- Автоматически собирать игроков: запись, лист ожидания, подтверждения (RSVP).
|
||||
- Отправлять напоминания за 24ч и 1ч, ссылки перед игрой.
|
||||
- Проводить голосование за перенос (reschedule voting).
|
||||
- Показывать статистику посещаемости и историю изменений.
|
||||
|
||||
- Создание пачки игровых сессий одной командой `/newsession` с несколькими строками `Время:` или одной датой плюс `Игр:`/`Интервал:` для регулярного расписания.
|
||||
- Опциональный лимит мест через строку `Мест:` при создании сессии.
|
||||
- Опциональная обложка batch-поста через прикреплённое фото к `/newsession` или строку `Картинка: https://...`.
|
||||
- Интерактивная запись игроков на конкретные даты и самостоятельный выход через inline-кнопки Telegram.
|
||||
- Лист ожидания: если основной состав заполнен, новые игроки не переполняют сессию, а попадают в очередь.
|
||||
- Автоматическое освобождение места: когда активный игрок снимает запись, первый ожидающий переводится в основной состав.
|
||||
- Делегирование управления группой: owner может назначать co-GM, а co-GM управляет расписанием в Telegram и Web Dashboard.
|
||||
- Повышение первого игрока из листа ожидания через GM-панель `/listsessions` или Web Dashboard.
|
||||
- Автоматическое создание Telegram forum topic для пачки игр, если группа является форумом.
|
||||
- Основное сообщение расписания показывает только игроковые кнопки записи и выхода.
|
||||
- Управление сессиями через `/listsessions` с отображением мест, очереди ожидания и GM-кнопок отмены, переноса, повышения и удаления.
|
||||
- Перенос сессии через GM-панель `/listsessions`: GM предлагает 2-3 времени и дедлайн, участники голосуют за варианты, бот показывает текущие результаты и применяет победителя по дедлайну.
|
||||
- RSVP-подтверждение за 24 часа до игры только для основного состава.
|
||||
- Персональные DM-уведомления игрокам о RSVP за 24 часа, напоминание за 1 час, ссылке перед стартом, отмене и переносе.
|
||||
- Отправка ссылки на подключение за 5 минут до подтверждённой игры.
|
||||
- Экспорт будущих запланированных сессий в `.ics` через `/exportcalendar`.
|
||||
- Web-панель для owner/co-GM: список групп, список сессий, редактирование названия, времени, ссылки и лимита мест.
|
||||
- Telegram Mini App Dashboard: мобильный вход из Telegram через `/miniapp`, проверка WebApp `initData`, callback-based fallback login через `/auth/telegram-login` внутри активного WebView и поддержка Telegram safe-area отступов под статус-бар телефона и верхнюю панель Telegram.
|
||||
- Шаблоны кампаний в Web Dashboard: отдельная вкладка для управления сохранёнными параметрами кампаний и применение шаблонов на странице группы по первой дате.
|
||||
- Bulk-операции в Web Dashboard: общий `title/link` для batch, перенос всей пачки на фиксированный шаг и клонирование на следующую неделю или месяц с новым Telegram-сообщением.
|
||||
- Настройка режима уведомлений для batch: `В группе и в личку` или `Только в группе`, при этом групповые сообщения сохраняются всегда.
|
||||
- Smoke-покрытие обещаний лендинга для Telegram: функциональный тест фиксирует batch-сессии, inline-кнопки, лимиты/waitlist, автоповышение, голосование за перенос и синхронизацию Telegram batch-поста после dashboard-изменений без внешнего Telegram API.
|
||||
- CSS-fix Web Dashboard: раскрывающиеся списки используют контрастный фон и текст в native select dropdown.
|
||||
- CSS-fix sidebar: пункты меню рендерятся отдельными строками с корректным отступом между `Панель управления` и `Шаблоны`.
|
||||
## Быстрый старт
|
||||
|
||||
## Разделы
|
||||
1. Добавьте бота в Telegram-группу или на Discord-сервер.
|
||||
2. Создайте группу через `/newgroup`.
|
||||
3. Создайте расписание через `/newsession`.
|
||||
4. Опубликуйте через `/listsessions`.
|
||||
|
||||
- [Быстрый старт](Быстрый-старт) — локальный запуск и первичная настройка.
|
||||
- [Руководство ГМа](Руководство-ГМа) — формат команд, запись игроков, лимиты, waitlist и переносы.
|
||||
- [Архитектура](Архитектура) — устройство сервисов и ключевые потоки.
|
||||
- [Разработка](Разработка) — правила разработки, тесты и локальные команды.
|
||||
- [Развёртывание](Развёртывание) — Docker Compose, окружение и эксплуатация.
|
||||
- [База данных](База-данных) — схема БД, миграции и статусная модель.
|
||||
## Полезные ссылки
|
||||
|
||||
## v1.9.9
|
||||
|
||||
Patch-релиз закрывает issue **#18** из этапа «Версия 1.0 — Telegram Bot + Mini App Dashboard»: добавлен функциональный smoke-сценарий обещаний лендинга для Telegram. Тест проходит без внешнего Telegram API через fake Telegram messenger и фиксирует ключевой пользовательский путь: создание batch-сессий на несколько дат, кнопки записи/выхода, лимит мест и waitlist, автоповышение ожидающего игрока, голосование за перенос, direct-notification mode и обновление Telegram batch-сообщения после dashboard-изменений. Новых миграций и новых переменных окружения нет.
|
||||
|
||||
## v1.9.6
|
||||
|
||||
Patch-релиз улучшает Telegram-посты записи: GM может добавить обложку к batch через прикреплённое фото или строку `Картинка:`, а публичное сообщение расписания больше не перегружено кнопками owner/co-GM. Управление отменой, переносом, повышением из листа ожидания и удалением перенесено в `/listsessions`; доступ по-прежнему проверяется через owner/co-GM. Новых миграций нет.
|
||||
- [Быстрый старт](Быстрый-старт)
|
||||
- [Руководство ГМа](Руководство-ГМа)
|
||||
- [Руководство игрока](Руководство-игрока)
|
||||
- [FAQ](FAQ)
|
||||
|
||||
Reference in New Issue
Block a user