11
Home
Toutsu edited this page 2026-04-27 14:58:56 +03:00
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.

Разделы