Цель:Создание интерактивного Telegram-бота для развлечения, который позволяет пользователям зарабатывать и тратить виртуальные "поцелуи" на различные забавные услуги.
Основные функции:
- Регистрация пользователей:
- При первом запуске бот регистрирует пользователя в базе данных.
- Новым пользователям автоматически начисляется начальный баланс в 100 поцелуев.
- Меню товаров и услуг:
- Пользователь может открыть меню с помощью команды /menu.
- Меню содержит список забавных "услуг" с указанием стоимости в поцелуях.
- Управление корзиной:
- Пользователь может добавлять услуги в корзину.
- В корзине доступны:
- Просмотр списка выбранных товаров.
- Очистка корзины.
- Оплата.
- Оплата и исполнение заказа:
- Если у пользователя достаточно поцелуев, он может оплатить корзину.
- После оплаты бот:
- Списывает соответствующую сумму с баланса.
- Отправляет заказ в чат администратора (исполнителя).
- Баланс пользователя:
Пользователь может видеть свой текущий баланс в поцелуях.
Техническая реализация:
- Технологии и инструменты:
- Язык программирования: Python.
- Библиотека: pyTelegramBotAPI для работы с Telegram API.
- СУБД: SQLite для хранения данных пользователей и корзин.
- Особенности реализации базы данных:
- Используется Singleton-паттерн для управления подключением к базе данных.
- Потокобезопасное использование базы данных с помощью threading.local.
- Архитектура кода:
- UserDatabase: Класс для управления пользователями, их балансом и корзинами.
- Menu: Класс для хранения списка товаров и генерации текстового меню.
- Основная логика обработки команд и сообщений реализована в обработчиках Telegram-бота.
- Обработка состояния пользователя:
- Используется словарь user_states для отслеживания текущего действия пользователя (выбор товара, работа с корзиной и т.д.).