Skip to content

mikispit/quest-detective-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕵️ Telegram-бот: Детективный квест (MVP)

Интерактивный текстовый квест для Telegram, реализованный на базе n8n и Supabase. Проект создавался как MVP для демонстрации архитектуры чат-ботов, работы со стейтами и интеграции медиафайлов.

🛠 Стек технологий

  • n8n — оркестрация логики, маршрутизация и интеграция API.
  • Supabase (PostgreSQL) — хранение состояний пользователей.
  • Telegram Bot API — интерфейс взаимодействия.

✨ Особенности

  • Управление состоянием (State Management): Прогресс каждого пользователя фиксируется в БД (current_step), что позволяет продолжать игру после остановок или сбоев.
  • Нелинейность: Разветвленная логика решений через Switch-ноды, ведущая к 4 различным концовкам.
  • Мультимедиа: Динамическая подгрузка аудио-окружения и изображений по внешним ссылкам.
  • Изолированный роутинг: Раздельная обработка новых пользователей (/start) и тех, кто уже есть в базе.
  • Обработка Callback Queries: Использование inline-кнопок для сброса стейта и бесшовного перезапуска квеста без захламления чата командами.

🏗 Структура репозитория

  • quest_bot.json — чистый экспорт воркфлоу n8n (без приватных ключей и ID инстанса).
  • schema.sql — SQL-скрипт развертывания таблицы БД.
  • MEDIA.md — спецификация медиа-ассетов.

🚀 Установка и запуск

1. База данных (Supabase)

Выполни SQL-запрос из schema.sql для создания таблицы пользователей и индексов:

CREATE TABLE quest_users (
  user_id BIGINT PRIMARY KEY,
  current_step TEXT DEFAULT 'start',
  created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_current_step ON quest_users(current_step);

## 2. Настройка n8n

    1.Создай новый воркфлоу и импортируй quest_bot.json.

    2.Настрой Credentials для Telegram API (токен от @BotFather) и Supabase API.

    3.В нодах отправки медиа (Telegram) замени заглушки <YOUR_FILE_URL> на прямые ссылки на свои файлы.

    4.Опубликуй воркфлоу (Publish) и скопируй Production URL из триггера Webhook.
## 3. Подключение вебхука

Привяжи бота к n8n, выполнив запрос в терминале:
curl "[https://api.telegram.org/bot](https://api.telegram.org/bot)<ТВОЙ_ТОКЕН>/setWebhook?url=<URL_ВЕБХУКА_N8N>"

About

Квест-бот с детективными историями и ветвящимся сюжетом. Логика и данные хранятся в Supabase.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors