A zero-boilerplate simple telegram bots
Project description
TgBotZero
Телеграм-боты в пару строчек кода. Простые телеграм-боты должно быть очень просто делать!
Примеры
Бот, показывающий твоё сообщение:
Сначала нужно импортировать всё из библиотеки: from tgbotzero import *.
Токен нужно указать в глобальной переменной TOKEN.
Для обработки текстовых сообщений нужно создать функцию on_message(msg: str). Функция принимает текст сообщения, и может вернуть либо строку с текстом ответа, либо список из сообщений, описаний кнопок и картинок. Про кнопки и картинки будет дальше.
Для запуска бота нужно выполнить команду run_bot() без параметров.
import tgbotzero
TOKEN = '123:tokenHereFromBotFatherInTelegram'
def on_message(msg: str):
return "Твоё сообщение: " + msg
run_bot()
Установка
Введите в терминале:
pip install tgbotzero --upgrade --user
Или запустите эту программу:
import os, sys
python = sys.executable
user = '--user' if 'venv' not in python and 'envs' not in python else ''
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.
from tgbotzero import *
TOKEN = '123:tokenHereFromBotFatherInTelegram'
def on_message(msg: str):
return [
"Твоё сообщение: " + msg,
Button('Кнопка', 'btn'),
]
def on_button_btn(data):
return 'Нажата кнопка. Отправьте любое сообщение для продолжения'
run_bot()
Бот с командами:
Чтобы обрабатывать команды, нужно создать функцию вида on_command_NAME(cmd: str), где NAME — это собственно команда. Например, для обработки команд /start нужна функция on_command_start. Функция может возвращать текст, кнопки и т.п. точно так же, как и on_message и другие хендлеры-обработчики. При вызове команды /start все команды будут автоматом добавлены в меню пользователя. Для указания описания команды функции нужно указать doc-string:
def on_command_plus(cmd: str):
"""Add 1 to counter"""
from tgbotzero import *
TOKEN = '123:tokenHereFromBotFatherInTelegram'
def on_message(msg: str):
return '''Доступны команды:
/show — показать
/plus — прибавить 1
/minus — вычесть 1'''
counter = 0
def on_command_show(cmd: str):
"""Показать значение"""
return f'{counter=}'
def on_command_plus(cmd: str):
"""Прибавить 1"""
global counter
counter += 1
return f'{counter=}'
def on_command_minus(cmd: str):
"""Вычесть 1"""
global counter
counter -= 1
return f'{counter=}'
run_bot()
Бот с картинками:
Для отправки изображения нужно добавить в возвращаемый список Image(image_filename). Можно отправлять несколько изображений в одном сообщении, в том числе отправлять изображения из обработчиков кнопок и команд.
from tgbotzero import *
TOKEN = '123:tokenHereFromBotFatherInTelegram'
def on_message(msg: str):
return [
f"Мяу-гав!",
Image('cat.png'),
Image('dog.png'),
Button('Класс!', 'btn')
]
def on_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)
from tgbotzero import *
TOKEN = '123:tokenHereFromBotFatherInTelegram'
def on_message(msg: str):
return 'Жду картинку с подписью!'
def on_image(msg: str, img: Image):
return img.put_text(msg, (255, 0, 0))
run_bot()
Получение chat_id:
К любой функции-обработчику можно добавить ещё один параметр chat_id: int, если хочется различать пользователей.
from tgbotzero import *
TOKEN = '123:tokenHereFromBotFatherInTelegram'
def on_message(msg: str, chat_id: int):
return f"Текущий chat id: {chat_id}"
run_bot()
Contributing
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tgbotzero-0.0.9.tar.gz.
File metadata
- Download URL: tgbotzero-0.0.9.tar.gz
- Upload date:
- Size: 4.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b81f8b1fa1428742db813cc9a55c530b321fc94071b293821d4b656d4ee0e48d
|
|
| MD5 |
3b636515c4b46be278b73257d83d882c
|
|
| BLAKE2b-256 |
322ea0d9bc721c89e48293252acebdc6a9c0134432a1c8d7d8d06529e8cfb183
|
File details
Details for the file tgbotzero-0.0.9-py3-none-any.whl.
File metadata
- Download URL: tgbotzero-0.0.9-py3-none-any.whl
- Upload date:
- Size: 3.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a508be0c14527b5b3d6e6bd8cd5d6ebbb0395cd8d4102c82760ab6cae82f2598
|
|
| MD5 |
ee6a96082bf244e0cb25a81c83150c96
|
|
| BLAKE2b-256 |
3a92b1d0c4fdb18b0fc732d3ea474bc7efbbca813dedc13a5d9f7c02b5a70159
|