Телеграм-бот для магазина: Пошаговое руководство с разбором кода - страница 14
1. main – для основного скрипта.
2. handlers – для обработки различных команд и сообщений.
3. models – для хранения моделей данных, таких как товары и пользователи.
Такая структура облегчит дальнейшую разработку и позволит вам по мере роста проекта добавлять новые функции и модули, не запутываясь в коде.
Подключение библиотеки для работы с TelegramAPI
На следующем этапе мы подключим библиотеку, которая упростит взаимодействие с Telegram API. Одной из самых популярных является библиотека `python-telegram-bot`. Её установка не займет много времени:
pipinstallpython-telegram-bot
После установки необходимо импортировать библиотеку в ваш основной скрипт. Это позволит использовать функции работы с ботом. Создадим файл `main.py` и добавим следующий код:
import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
Здесь мы подключения средств логирования и необходимых классов для работы с обновлениями и обработчиками команд.
Настройка логирования
Логирование играет важную роль в разработке любого программного обеспечения. Оно обеспечивает контроль над процессом выполнения, помогает выявлять ошибки и анализировать поведение программы. Для начала работы с логированием добавим в начало файла `main.py` следующий код:
logging.basicConfig(format='%(asctime)s – %(name)s – %(levelname)s – %(message)s', level=logging.INFO)
Теперь, когда возникнут ошибки или будут вызваны определенные события, эти данные будут записываться в консоль, что значительно легче отслеживать на ранних этапах создания бота.
Реализация команд
Следующим шагом станет реализация обработки команд. Начнём с создания функции `start`, которая будет вызываться при введении команды `/start`. Эта команда должна отправлять пользователю приветственное сообщение:
defstart(update: Update, context: CallbackContext) -> None:
....update.message.reply_text('Добро пожаловать в наш магазин! Чем могу помочь?')
Теперь необходимо связать эту функцию с соответствующей командой. Для этого мы создадим экземпляр `Updater` и добавим обработчик команд:
def main():
....updater = Updater("YOUR_TOKEN_HERE")
....updater.dispatcher.add_handler(CommandHandler("start", start))
....updater.start_polling()
....updater.idle()
Не забудьте заменить `"YOUR_TOKEN_HERE"` на токен вашего бота, который вы получите у BotFather. После этого можно запустить наш проект, и при вводе команды `/start` пользователю будет отправлено приветственное сообщение.
Создание списка товаров
Чтобы ваш бот смог представлять пользователю список товаров, создадим простую модель товара. Для этого в директории `models` создадим файл `product.py` и в нём определим класс `Product`:
class Product:
....def __init__(self, id: int, name: str, price: float):
........self.id = id
........self.name = name
........self.price = price
Теперь добавим несколько примеров товаров в наш основной файл. В функции `start` мы к приветствию дополнительно прикрепим информацию о доступных товарах. Например:
products = [
....Product(1, "Товар 1", 100.0),
....Product(2, "Товар 2", 200.0),
]
defstart(update: Update, context: CallbackContext) -> None:
....message = 'Добро пожаловать в наш магазин!\nНаши товары:\n'
....forproductinproducts:
........message += f"{product.id}. {product.name} – {product.price} руб.\n"
....update.message.reply_text(message)
Таким образом, при вводе команды `/start` пользователь будет видеть не только приветственное сообщение, но и список товаров.