Pythoner
Фотография
✈️Сегодня продолжим тему предыдущего поста и начнём создавать бота
➡️Начнем с самой базы - установки.
python -m pip install pyrogram
🚀Для быстрой работы пирога лучше еще установить
python -m pip install TgCrypto
👀Теперь можно и код писать
➡️Импорт:
Импорт тут максимально простой. Просто из pyrogram импортируем модули через from / import:
from pyrogram import Client # потом ещё будем добавлять
➡️Создание объекта бота:
Как и в любом другом боте нам нужен объект, с помощью которого уже и осуществляется работа.
В пироге это экземпляр принято называть app.
В него нужно передать
💬Название, строка
💬API_ID, строка либо число (int)
💬API_HASH, строка
Про API_ID и API_HASH поговорим чуток позже.
app = Client("MyFirstUserBot", api_id, api_hash)
➡️Обработчики:
Обработчики (хендлеры, handler) — это функции, которые срабатывают при определенном событии, например, при новом сообщении.
В Pyrogram они в виде декорратора который начинается на "on" (с англ - при), наример @app.on_message, @app.on_chat_join_request.
В декоратор следует передать фильтр, по которому будут выбираться случаи когда нужно чтобы обработчик сработал.
В библиотеке есть встроенные фильтры, их надо импортировать, но их можно и самому написать (научимся позже)
➡️Как я говорил в предыдущем посте, нам нужно обрабатывать команды. Для этого, логично, надо создать обработчик сообщений, с фильтром, что это команда, и то что написали ее мы (мы ведь не хотим чтобы другие командовали вашим ботом?)
@app.on_message(filters.command(["start"], prefixes=".") & filters.me)
async def start(_, msg):
pass
❕У обработчиков должен быть строгий порядок - от конкретных (например, команды), до более общих (всех сообщений)
Правильный порядок хендлеров сообщений должен выглядеть так:
⚫ Команды
⚫ Сообщения с какими-то триггерами (например, если в слове есть слово "привет")
⚫ Все сообщения
➡️Запуск:
Обработчики прописали, теперь пора это все дело запустить!
Тут всё просто:
app.run()
➡️API_ID / API_HASH:
И, самое главное, без чего наш код ни в коем случае не заработает - данные телеграмма.
Как я говорил выше, ЮзерБота, как бы входит в твой аккаунт. Ему конечно же нужны данные. Это и есть api_id и api_hash
✈️ Заходим на сайт https://my.telegram.org/apps
пишем свой номер телефона, на котором тг, и вводим код.
❔Это безопасно, это сайт телеграмма
Далее там будет бланк, вы его заполняете. Данные можете писать какие угодно, они ни на что не влияют. Вы должны дойти то страницы с конфигурацией приложение (App Configuration). Там копируете app api_id и app api_hash, и вставляете в код, там где создавали екземпляр бота (app = ...)
from pyrogram import Client, filters
app = Client("тут", "ваши", "данные")
@app.on_message(filters.commands(["start"], prefixes=".") & filters.me)
async def start(_, msg):
pass
app.run()
🔎Итоги:
Сегодня мы разобрались в базовой структуре ЮзерБота: поговорили про нужные классы, обработчики, их порядок, API данные. В следующем посте поговорим про отправку сообщений, редактирование, и тп.
🐍Pythoner
52 · 2.2K ·