telegram.ext.ExtBot

class telegram.ext.ExtBot(token, base_url=None, base_file_url=None, request=None, private_key=None, private_key_password=None, defaults=None, arbitrary_callback_data=False)

Bases: telegram.bot.Bot

This object represents a Telegram Bot with convenience extensions.

Warning

Not to be confused with telegram.Bot.

For the documentation of the arguments, methods and attributes, please see telegram.Bot.

New in version 13.6.

Parameters
  • defaults (telegram.ext.Defaults, optional) – An object containing default values to be used if not set explicitly in the bot methods.

  • arbitrary_callback_data (bool | int, optional) – Whether to allow arbitrary objects as callback data for telegram.InlineKeyboardButton. Pass an integer to specify the maximum number of objects cached in memory. For more details, please see our wiki. Defaults to False.

arbitrary_callback_data

Whether this bot instance allows to use arbitrary objects as callback data for telegram.InlineKeyboardButton.

Type

bool | int

callback_data_cache

The cache for objects passed as callback data for telegram.InlineKeyboardButton.

Type

telegram.ext.CallbackDataCache

insert_callback_data(self, update)

If this bot allows for arbitrary callback data, this inserts the cached data into all corresponding buttons within this update.

Note

Checks telegram.Message.via_bot and telegram.Message.from_user to check if the reply markup (if any) was actually sent by this caches bot. If it was not, the message will be returned unchanged.

Note that this will fail for channel posts, as telegram.Message.from_user is None for those! In the corresponding reply markups the callback data will be replaced by telegram.ext.InvalidCallbackData.

Warning

In place, i.e. the passed telegram.Message will be changed!

Parameters

( (update) – class`telegram.Update`): The update.