Права на проект: Администраторы сообщества «Фан-клуб Tardigrade Inferno».
- 👾 Тихоходка дня: Бот выбирает случайную тихоходку из базы данных и присылает её изображение с описанием. Каждый пользователь получает одну новую тихоходку в сутки.
- 🔬 Квиз / Продолжить квиз: Запускает викторину. Бот присылает вопрос и варианты ответа в виде кнопок. Если пользователь уже начал отвечать, кнопка автоматически предложит «Продолжить».
- ⚙️ Админ-панель: Видна только администраторам. Открывает доступ к настройкам бота.
- 🔄 Синхронизация: Бот заходит в указанный альбом группы, считывает все фотографии и тексты к ним, после чего обновляет базу данных тихоходок.
⚠️ Важно: Бот работает только в режиме чтения. Он никогда не удаляет, не перемещает и не редактирует ваши фотографии в самом ВКонтакте.- 🧪 Тест выдачи: Позволяет админу проверить, как выглядит случайная тихоходка из базы, не дожидаясь следующего дня.
- 🧪 Инициализировать квиз: Появляется, если база вопросов пуста. Автоматически добавляет 4 стандартных вопроса для быстрой проверки работы.
- 🗑 Удалить все вопросы: Полностью очищает базу вопросов квиза.
- ❓ Команды: Выводит в чат краткую справку по ручным командам.
◀️ Назад: Возврат в главное меню.
1. Подготовка ВКонтакте
- Ключ доступа группы (GROUP_TOKEN): В настройках группы (Работа с API -> Ключи доступа) создайте ключ. Разрешите доступ к сообщениям, фотографиям и управлению сообществом.
- Личный ключ (USER_TOKEN): Нужен для получения данных из закрытых или обычных альбомов. Получите его через любой сервис (например, VK Host), выбрав права на «Фотографии».
- ID Альбома: Откройте нужный альбом в браузере. В ссылке после слова
albumбудут цифры видаXXXXX_YYYYY. Вам нужны цифры после подчеркивания (YYYYY).
2. Подготовка базы данных (Supabase)
- Создайте проект на Supabase.
- В разделе SQL Editor создайте таблицы (скопируйте и выполните скрипт):
CREATE TABLE tardigrades (id SERIAL PRIMARY KEY, text TEXT, description TEXT, image TEXT);
CREATE TABLE daily_tardigrades (id SERIAL PRIMARY KEY, user_id TEXT, tardigrade_id INTEGER REFERENCES tardigrades(id), date DATE, UNIQUE(user_id, date));
CREATE TABLE quiz_questions (id SERIAL PRIMARY KEY, question TEXT, options JSONB, correct INTEGER);
CREATE TABLE quiz_answers (id SERIAL PRIMARY KEY, user_id TEXT, question_id INTEGER REFERENCES quiz_questions(id) ON DELETE CASCADE, is_correct BOOLEAN, UNIQUE(user_id, question_id));
CREATE TABLE bot_settings (
key TEXT PRIMARY KEY,
value TEXT
);
INSERT INTO bot_settings (key, value) VALUES
('enable_messages', 'false'),
('enable_chats', 'false');
3. Деплой на Vercel
- Подключите репозиторий к Vercel.
- В настройках проекта (Settings -> Environment Variables) добавьте:
GROUP_TOKEN— ключ группы.USER_TOKEN— ваш личный ключ.SUPABASE_URLиSUPABASE_KEY— из настроек Supabase (Project Settings -> API).ALBUM_ID— ID вашего альбома.SUPER_ADMINS— ваш цифровой ID ВКонтакте.
Эти команды нужно просто писать в чат боту:
- /admin — экстренный вызов админ-панели.
- /album [ID] — сменить альбом для синхронизации без перезагрузки бота.
- /quiz_add Вопрос|НомерПравильного|Вар1|Вар2|... — добавить вопрос вручную.
- /quiz_del [ID] — удалить конкретный вопрос по его номеру в базе.