ExtBot¶
- class telegram.ext.ExtBot(token, base_url='https://api.telegram.org/bot', base_file_url='https://api.telegram.org/file/bot', request=None, get_updates_request=None, private_key=None, private_key_password=None, defaults=None, arbitrary_callback_data=False, local_mode=False, rate_limiter=None)[source]¶
Bases:
telegram.Bot
,typing.Generic
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
.All API methods of this class have an additional keyword argument
rate_limit_args
. This can be used to pass additional information to the rate limiter, specifically totelegram.ext.BaseRateLimiter.process_request.rate_limit_args
.This class is a
Generic
class and accepts one type variable that specifies the generic type of therate_limiter
used by the bot. UseNone
if no rate limiter is used.Warning
The keyword argument
rate_limit_args
can not be used, ifrate_limiter
isNone
.The method
get_updates()
is the only method that does not have the additional argument, as this method will never be rate limited.
Examples
Available In
See also
Added in version 13.6.
Changed in version 20.0: Removed the attribute
arbitrary_callback_data
. You can instead usebot.callback_data_cache.maxsize
to access the size of the cache.Changed in version 20.5: Removed deprecated methods
set_sticker_set_thumb
andsetStickerSetThumb
.- 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. Defaults toFalse
.See also
rate_limiter (
telegram.ext.BaseRateLimiter
, optional) –A rate limiter to use for limiting the number of requests made by the bot per time interval.
Added in version 20.0.
- property callback_data_cache[source]¶
Optional. The cache for objects passed as callback data for
telegram.InlineKeyboardButton
.Examples
Changed in version 20.0: * This property is now read-only. * This property is now optional and can be
None
ifarbitrary_callback_data
is set toFalse
.
- property defaults[source]¶
The
telegram.ext.Defaults
used by this bot, if any.
- async initialize()[source]¶
See
telegram.Bot.initialize()
. Also initializes theExtBot.rate_limiter
(if set) by callingtelegram.ext.BaseRateLimiter.initialize()
.
- insert_callback_data(update)[source]¶
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
andtelegram.Message.from_user
to figure out if a) a reply markup exists and b) it was actually sent by this bot. If not, the message will be returned unchanged.Note that this will fail for channel posts, as
telegram.Message.from_user
isNone
for those! In the corresponding reply markups, the callback data will be replaced bytelegram.ext.InvalidCallbackData
.Warning
In place, i.e. the passed
telegram.Message
will be changed!- Parameters:
update (
telegram.Update
) – The update.
- property rate_limiter[source]¶
The
telegram.ext.BaseRateLimiter
used by this bot, if any.Added in version 20.0.
- async shutdown()[source]¶
See
telegram.Bot.shutdown()
. Also shuts down theExtBot.rate_limiter
(if set) by callingtelegram.ext.BaseRateLimiter.shutdown()
.