使用说明
Recommended Media Bot (Python + HTML/CSS/JS + Supabase)
Проект: Telegram-бот для персональных рекомендаций по медиа (книги, фильмы, сериалы, подкасты) с хранением в Supabase и простым HTML фронтендом (читательский интерфейс).
Возможности
- Добавление рекомендации через Telegram-бота: выбрать тип → ввести название → ввести описание.
- Команда
/list— последние 5 рекомендаций пользователя. - Команда
/random— случайная рекомендация любого пользователя. - Inline-клавиатура для выбора типа контента.
Технологии
- Python 3.11
- Telegram:
pyTelegramBotAPI - Supabase:
supabase(официальный Python SDK) - Конфигурация:
python-dotenv - Frontend: HTML/CSS/JS,
@supabase/supabase-js(CDN) - Контейнеризация: Docker (бот в контейнере)
Структура
backend/
Dockerfile
requirements.txt
.env.example
main.py
database.py
frontend/
index.html
Dockerfile
nginx.conf
README.md
Подготовка Supabase
- Создайте проект в Supabase.
- В Settings → API скопируйте
Project URLиanon publicключ. - В SQL редакторе выполните схему (если не хотите автосоздание в коде):
create table if not exists public.recommendations (
id bigint generated always as identity primary key,
user_id text not null,
type text not null check (type in ('book','movie','series','podcast')),
title text not null,
description text not null,
created_at timestamp with time zone not null default now()
);
create index if not exists recommendations_user_id_created_at_idx
on public.recommendations (user_id, created_at desc);
Примечание: Бэкенд также пытается создать таблицу автоматически при старте (безопасно при повторных запусках).
Настройка окружения
Скопируйте .env.example → .env в директории backend/ и заполните:
SUPABASE_URL=...
SUPABASE_KEY=...
TELEGRAM_TOKEN=...
Запуск бэкенда (Docker)
Перейдите в каталог backend/ и соберите образ:
cd backend
docker build -t recommend-bot:latest .
docker run --rm --name recommend-bot --env-file .env recommend-bot:latest
Бот запустится и будет принимать сообщения в Telegram.
Запуск фронтенда (HTML/CSS/JS)
Вариант 1: Docker (рекомендуется)
# Запуск всех сервисов
docker-compose up --build
# Или только фронтенд
docker-compose up --build frontend
Фронтенд будет доступен на http://localhost:3000
Вариант 2: Локальная разработка
cd frontend
# Просто откройте index.html в браузере
open index.html
# или запустите простой HTTP сервер:
python -m http.server 8000
# Откройте http://localhost:8000
Примечание: В index.html уже встроены ваши Supabase ключи. Если нужно изменить — отредактируйте переменные SUPABASE_URL и SUPABASE_ANON_KEY в скрипте.
Команды бота
/start— приветствие и меню выбора типа контента (Inline-кнопки)./list— последние 5 рекомендаций текущего пользователя./random— случайная рекомендация любого пользователя.
Пользовательский поток добавления:
- Выбор типа (кнопка) → 2) Ввод названия → 3) Ввод описания → 4) Сохранение в Supabase.
Переменные окружения
SUPABASE_URL— URL проекта SupabaseSUPABASE_KEY— anon public ключ (или service role, если запускаете в доверенной среде)TELEGRAM_TOKEN— токен бота
Для фронтенда: Supabase ключи встроены в index.html. Для продакшена рекомендуется вынести в переменные окружения.
MCP примечания
- MCP Docker: предоставлен
Dockerfileдля локального запуска сервиса-бота. - MCP Supabase: используйте ваш проект Supabase. Код создаёт таблицу автоматически при старте.
Лицензия
MIT
