В условиях современного онлайн-обучения и развлечений Telegram-боты стали отличным способом взаимодействия с аудиторией. Сегодня мы расскажем, как создать собственного Telegram-бота для викторин с возможностью управления вопросами и пользователями через графическую админ-панель на Python.
Что умеет наш бот?
Наш бот представляет собой простую, но функциональную викторину:
-
Команда
/quiz
задаёт случайный вопрос пользователю. -
Ответы проверяются автоматически, и бот сообщает о правильности.
-
Команда
/stats
показывает индивидуальную статистику. -
Все пользователи и их активность сохраняются в базе данных.
-
Через админ-панель можно добавлять новые вопросы и просматривать статистику.
Стек технологий
-
Python 3 — основной язык.
-
telebot (pyTelegramBotAPI) — для создания Telegram-бота.
-
SQLite — встроенная база данных для хранения пользователей и вопросов.
-
Tkinter — для графического интерфейса админ-панели.
-
threading — для параллельной работы бота и GUI.
Структура проекта
1. База данных
Содержит две таблицы:
-
users
— ID, имя пользователя, количество правильных и общих ответов, время последней активности. -
questions
— текст вопроса и правильный ответ.
2. Бот
-
Обрабатывает команды
/start
,/quiz
,/stats
. -
Случайным образом выбирает вопрос из базы.
-
Хранит прогресс пользователя.
3. Админ-панель
-
Разработана на Tkinter.
-
Позволяет добавлять новые вопросы.
-
Показывает таблицу всех пользователей с возможностью обновления данных.
Преимущества
-
Полностью автономен — не требует внешних серверов.
-
Кроссплатформенность — работает на Windows, Linux и macOS.
-
Простой и расширяемый — легко добавить уровни сложности, темы, рейтинги и прочее.
-
Локальное хранение — всё в SQLite, удобно для небольших проектов.
Пример использования
-
Запуск бота:
python bot.py
После запуска откроется окно админ-панели и одновременно начнёт работу Telegram-бот. -
В Telegram:
Напишите/start
боту, чтобы зарегистрироваться.
Используйте/quiz
для начала викторины.
Посмотрите свою статистику с помощью/stats
.
Не забудьте заменить TOKEN
и ADMIN_ID
в коде на свои реальные данные, чтобы бот работал с вашим аккаунтом.
Вы можете дополнить бота:
-
Добавлением изображений к вопросам.
-
Рейтинговой системой и таблицей лидеров.
-
Поддержкой нескольких категорий викторин.
-
Подключением к облачной базе данных.
Создание такого бота — отличный способ углубить знания Python, Telegram API и работы с базами данных. Этот проект подойдёт как новичкам, так и разработчикам, желающим автоматизировать опросы или обучающие процессы.
Ссылка на проект yemorkovin/quiz
Автор: Евгений Морковин
0 комментариев