Утилиты¶
Файл util¶
- telebot.util.antiflood(function: Callable, *args, number_retries=5, **kwargs)¶
Используйте эту функцию в циклах, чтобы избежать ошибки TooManyRequests. Пример:
from telebot.util import antiflood for chat_id in chat_id_list: msg = antiflood(bot.send_message, chat_id, text)
- Параметры:
function (:obj:int) – Вызываемая функция
number_retries – Number of retries to send
args (
tuple
) – Аргументы, для передачи в функциюkwargs (
dict
) – Именованные аргументы для передачи в функцию
- Результат:
None
- telebot.util.chunks(lst, n)¶
Генерирует последовательные части списка, состоящие из n элементов.
- telebot.util.content_type_media = ['text', 'animation', 'audio', 'document', 'photo', 'sticker', 'story', 'video', 'video_note', 'voice', 'contact', 'dice', 'game', 'poll', 'venue', 'location', 'invoice', 'successful_payment', 'connected_website', 'passport_data', 'web_app_data']¶
Содержит все виды медиа.
- telebot.util.content_type_service = ['new_chat_members', 'left_chat_member', 'new_chat_title', 'new_chat_photo', 'delete_chat_photo', 'group_chat_created', 'supergroup_chat_created', 'channel_chat_created', 'message_auto_delete_timer_changed', 'migrate_to_chat_id', 'migrate_from_chat_id', 'pinned_message', 'users_shared', 'chat_shared', 'write_access_allowed', 'proximity_alert_triggered', 'forum_topic_created', 'forum_topic_edited', 'forum_topic_closed', 'forum_topic_reopened', 'general_forum_topic_hidden', 'general_forum_topic_unhidden', 'giveaway_created', 'giveaway', 'giveaway_winners', 'giveaway_completed', 'video_chat_scheduled', 'video_chat_started', 'video_chat_ended', 'video_chat_participants_invited']¶
Содержит все виды сервисных сообщений, такие как User joined the group.
- telebot.util.escape(text: str) str | None ¶
Заменяет следующие символы в text (“&“ на „&“, „<“ на „<“ и „>“ на „>“).
- Параметры:
text – Текст для замены символов
- Результат:
Отформатированный текст
- telebot.util.extract_arguments(text: str) str ¶
Возвращает аргументы команды.
extract_arguments("/get name"): 'name' extract_arguments("/get"): '' extract_arguments("/get@botName name"): 'name'
- Параметры:
text (
str
) – Строка для извлечения аргументов команды- Результат:
Аргументы, если text является командой (согласно is_command), в остальных случаях None.
- Тип результата:
str
илиNone
- telebot.util.extract_command(text: str) str | None ¶
Извлекает команду из text (исключает „/“) если text является командой (см. is_command). Если text не является командой, эта функция возвращает None.
extract_command('/help'): 'help' extract_command('/help@BotName'): 'help' extract_command('/search black eyed peas'): 'search' extract_command('Good day to you'): None
- Параметры:
text (
str
) – Строка, из которой нужно извлечь команду- Результат:
Команда, если text является командой (согласно is_command), в остальных случаях None.
- Тип результата:
str
илиNone
- telebot.util.generate_random_token() str ¶
Генерирует рандомный токен, состоящий из латинских букв и цифр длиной 16 символов.
- Результат:
Сгенерированный токен
- Тип результата:
str
- telebot.util.is_bytes(var) bool ¶
Возвращает True если полученный объект является bytes.
- Параметры:
var (
object
) – Объект для проверки- Результат:
True, если полученный объект является bytes.
- Тип результата:
bool
- telebot.util.is_command(text: str) bool ¶
Проверяет, является ли text командой. Команды в Telegram начинаются с символа „/“.
- Параметры:
text (
str
) – Текст для проверки.- Результат:
True, если text является командой, иначе False.
- Тип результата:
bool
- telebot.util.is_dict(var) bool ¶
Возвращает True, если полученный объект является словарём (dict).
- Параметры:
var (
object
) – Объект для проверки- Результат:
True, если полученный объект является словарём (dict).
- Тип результата:
bool
- telebot.util.is_pil_image(var) bool ¶
Возвращает True, если полученный объект является PIL.Image.Image.
- Параметры:
var (
object
) – Объект для проверки- Результат:
True, если полученный объект является PIL.Image.Image.
- Тип результата:
bool
- telebot.util.is_string(var) bool ¶
Возвращает True, если полученный объект является строкой (str).
- telebot.util.parse_web_app_data(token: str, raw_init_data: str)¶
Обрабатывает данные, полученные от web app.
- Параметры:
token (
str
) – Токен ботаraw_init_data (
str
) – Необработанные данные
- Результат:
Обработанные данные
- telebot.util.pil_image_to_file(image, extension='JPEG', quality='web_low')¶
- telebot.util.quick_markup(values: Dict[str, Dict[str, Any]], row_width: int = 2) InlineKeyboardMarkup ¶
Возвращает reply markup из словаря следующего формата: {„text“: kwargs}. Удобно использовать вместо постоянного использования „btn1 = InlineKeyboardButton(…)“ „btn2 = InlineKeyboardButton(…)“
Пример:
from telebot.util import quick_markup markup = quick_markup({ 'Twitter': {'url': 'https://twitter.com'}, 'Facebook': {'url': 'https://facebook.com'}, 'Back': {'callback_data': 'whatever'} }, row_width=2) # returns an InlineKeyboardMarkup with two buttons in a row, one leading to Twitter, the other to facebook # and a back button below # kwargs can be: { 'url': None, 'callback_data': None, 'switch_inline_query': None, 'switch_inline_query_current_chat': None, 'callback_game': None, 'pay': None, 'login_url': None, 'web_app': None }
- Параметры:
values (
dict
) – Словарь, содержащий все кнопки для создания reply markup в следующем формате: {text: kwargs} {str:}row_width (
int
) – number oftelebot.types.InlineKeyboardButton
objects on each row
- Результат:
InlineKeyboardMarkup
- Тип результата:
types.InlineKeyboardMarkup
- telebot.util.smart_split(text: str, chars_per_string: int = 4096) List[str] ¶
Разбивает строку на несколько, каждая из которых будет не длиннее characters_per_string. Удобно использовать для разбиения одного гигантского сообщения на несколько. Если chars_per_string > 4096: chars_per_string = 4096. Разбивает строку по „n“, „. „ или „ „ именно в таком порядке.
- Параметры:
text (
str
) – Текст для разбиенияchars_per_string (
int
) – Максимальное количество символов в части текста, на которые он будет разбит.
- Результат:
Список частей разбитого текста.
- Тип результата:
list
ofstr
- telebot.util.split_string(text: str, chars_per_string: int) List[str] ¶
Разбивает одну строку на несколько, каждая из которых будет не длиннее characters_per_string. Удобно использовать для разбиения одного гигантского сообщения на несколько.
- Параметры:
text (
str
) – Текст для разбиенияchars_per_string (
int
) – Количество символов в одной строке, на которые будет разбит текст.
- Результат:
Список частей разбитого текста.
- Тип результата:
list
ofstr
- telebot.util.update_types = ['message', 'edited_message', 'channel_post', 'edited_channel_post', 'inline_query', 'chosen_inline_result', 'callback_query', 'shipping_query', 'pre_checkout_query', 'poll', 'poll_answer', 'my_chat_member', 'chat_member', 'chat_join_request', 'message_reaction', 'message_reaction_count', 'chat_boost', 'removed_chat_boost', 'business_connection', 'business_message', 'edited_business_message', 'deleted_business_messages']¶
Все виды апдейтов, рекомендуется использовать в качестве параметра allowed_updates функции polling.
- telebot.util.user_link(user: User, include_id: bool = False) str ¶
Возвращает HTML ссылку на пользователя. Удобно использовать для отчетов. Важно: Не забудьте установить значение „HTML“ в parse_mode!
bot.send_message(your_user_id, user_link(message.from_user) + ' started the bot!', parse_mode='HTML')
Примечание
Вы можете использовать formatting.* во всех остальных вариантах форматирования(bold, italic, links, и прочее). Этот метод сохранён для обратной совместимости, рекомендуется использовать formatting.* для большего количества вариантов.
- Параметры:
user (
telebot.types.User
) – Пользователь (не id пользователя)include_id (
bool
) – Добавить id пользователя
- Результат:
Ссылка на пользователя в формате HTML
- Тип результата:
str
- telebot.util.validate_web_app_data(token: str, raw_init_data: str)¶
Проверяет данные, полученные от web app.
- Параметры:
token (
str
) – Токен ботаraw_init_data (
str
) – Необработанные данные
- Результат:
Обработанные данные
- telebot.util.webhook_google_functions(bot, request)¶
Endpoint вебхука для Google Cloud Functions FaaS.
- Параметры:
bot (
telebot.TeleBot
ortelebot.async_telebot.AsyncTeleBot
) – Инстанс ботаrequest (
flask.Request
) – HTTP-запрос
- Результат:
Объект, полученный в качестве ответа