Package: tgbotzero
TgBotZeroТелеграм-боты в пару строчек кода.
Простые телеграм-боты должно быть очень просто делать!ПримерыБот, показывающий твоё сообщение:Сначала нужно импортировать всё из библиотеки:from tgbotzero import *.
Токен нужно указать в глобальной переменной TOKEN.
Для обработки текстовых сообщений нужно создать функцию on_message(msg: str). Функция принимает текст сообщения, и может вернуть либо строку с текстом ответа, либо список из сообщений, описаний кнопок и картинок. Про кнопки и картинки будет дальше.
Для запуска бота нужно выполнить командуrun_bot()без параметров.importtgbotzeroTOKEN='123123123:tokenFromBotFatherInTelegram'defon_message(msg:str):return"Твоё сообщение: "+msgrun_bot()УстановкаВведите в терминале:pipinstalltgbotzero--upgrade--userИли запустите эту программу:importos,syspython=sys.executableuser='--user'if'venv'notinpythonand'envs'notinpythonelse''cmd=f'"{python}" -m pip install tgbotzero --upgrade{user}'os.system(cmd)Бот с кнопками:Для того чтобы добавить к любому сообщению кнопку, нужно в список артефактов ответа добавить кнопки:Button(text_on_button, button_handler_suffix, callback_data). Для обработки нажатий на кнопку нужно реализовать функциюon_button_NAME(data), гдеNAME=button_handler_suffix. В качестве data будет переданоcallback_data.fromtgbotzeroimport*TOKEN='123:tokenHereFromBotFatherInTelegram'defon_message(msg:str):return["Твоё сообщение: "+msg,Button('Кнопка','btn'),]defon_button_btn(data):return'Нажата кнопка. Отправьте любое сообщение для продолжения'run_bot()Бот с командами:Чтобы обрабатывать команды, нужно создать функцию видаon_command_NAME(cmd: str), гдеNAME— это собственно команда. Например, для обработки команд/startнужна функцияon_command_start. Функция может возвращать текст, кнопки и т.п. точно так же, как иon_messageи другие хендлеры-обработчики. При вызове команды/startвсе команды будут автоматом добавлены в меню пользователя. Для указания описания команды функции нужно указать doc-string:defon_command_plus(cmd:str):"""Add 1 to counter"""fromtgbotzeroimport*TOKEN='123:tokenHereFromBotFatherInTelegram'defon_message(msg:str):return'''Доступны команды:/show — показать/plus — прибавить 1/minus — вычесть 1'''counter=0defon_command_show(cmd:str):"""Показать значение"""returnf'{counter=}'defon_command_plus(cmd:str):"""Прибавить 1"""globalcountercounter+=1returnf'{counter=}'defon_command_minus(cmd:str):"""Вычесть 1"""globalcountercounter-=1returnf'{counter=}'run_bot()Бот с картинками:Для отправки изображения нужно добавить в возвращаемый списокImage(image_filename). Можно отправлять несколько изображений в одном сообщении, в том числе отправлять изображения из обработчиков кнопок и команд.fromtgbotzeroimport*TOKEN='123:tokenHereFromBotFatherInTelegram'defon_message(msg:str):return[f"Мяу-гав!",Image('cat.png'),Image('dog.png'),Button('Класс!','btn')]defon_button_btn(data):return'Ага!'run_bot()Обработка и модификация картинок:Для обработки сообщений с картинками нужно создать функциюon_image(msg: str, img: Image).
Изображения можно модифицировать. На данный момент поддерживается только добавление текста. Синтаксис:img.put_text(text, color), гдеcolor— это RGB-кортеж, например,(255, 0, 0). Изображения можно модифицировать даже если они открыты из файла:Image(image_filename).put_text(text, color)fromtgbotzeroimport*TOKEN='123:tokenHereFromBotFatherInTelegram'defon_message(msg:str):return'Жду картинку с подписью!'defon_image(msg:str,img:Image):returnimg.put_text(msg,(255,0,0))run_bot()Contributing