Skip to content

vdistortion/doubletardigrade-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

doubletardigrade-bot

Права на проект: Администраторы сообщества «Фан-клуб 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] — удалить конкретный вопрос по его номеру в базе.

About

Интерактивный бот на базе vk-io с использованием Supabase для хранения данных и Vercel для серверлесс-хостинга

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors