PrefixHandler¶
- class telegram.ext.PrefixHandler(prefix, command, callback, filters=None, block=True)[source]¶
Bases:
telegram.ext.BaseHandler
Handler class to handle custom prefix commands.
This is an intermediate handler between
MessageHandler
andCommandHandler
. It supports configurable commands with the same options asCommandHandler
. It will respond to every combination ofprefix
andcommand
. It will add alist
to theCallbackContext
namedCallbackContext.args
, containing a list of strings, which is the text following the command split on single or consecutive whitespace characters.Examples
Single prefix and command:
PrefixHandler("!", "test", callback) # will respond to '!test'.
Multiple prefixes, single command:
PrefixHandler(["!", "#"], "test", callback) # will respond to '!test' and '#test'.
Multiple prefixes and commands:
PrefixHandler( ["!", "#"], ["test", "help"], callback ) # will respond to '!test', '#test', '!help' and '#help'.
By default, the handler listens to messages as well as edited messages. To change this behavior use
~filters.UpdateType.EDITED_MESSAGE
Note
PrefixHandler
does not handle (edited) channel posts.
Warning
When setting
block
toFalse
, you cannot rely on adding custom attributes totelegram.ext.CallbackContext
. See its docs for more info.Available In
Changed in version 20.0:
PrefixHandler
is no longer a subclass ofCommandHandler
.Removed the attributes
command
andprefix
. Instead, the newcommands
contains all commands that this handler listens to as afrozenset
, which includes the prefixes.Updating the prefixes and commands this handler listens to is no longer possible.
- Parameters:
prefix (
str
| Collection[str
]) – The prefix(es) that will precedecommand
.command (
str
| Collection[str
]) – The command or list of commands this handler should listen for. Case-insensitive.callback (coroutine function) –
The callback function for this handler. Will be called when
check_update()
has determined that an update should be processed by this handler. Callback signature:async def callback(update: Update, context: CallbackContext)
The return value of the callback is usually ignored except for the special case of
telegram.ext.ConversationHandler
.filters (
telegram.ext.filters.BaseFilter
, optional) – A filter inheriting fromtelegram.ext.filters.BaseFilter
. Standard filters can be found intelegram.ext.filters
. Filters can be combined using bitwise operators (&
forand
,|
foror
,~
fornot
)Determines whether the return value of the callback should be awaited before processing the next handler in
telegram.ext.Application.process_update()
. Defaults toTrue
.See also
- commands[source]¶
The commands that this handler will listen for, i.e. the combinations of
prefix
andcommand
.- Type:
FrozenSet[
str
]
- block[source]¶
Determines whether the return value of the callback should be awaited before processing the next handler in
telegram.ext.Application.process_update()
.- Type:
- check_update(update)[source]¶
Determines whether an update should be passed to this handler’s
callback
.- Parameters:
update (
telegram.Update
|object
) – Incoming update.- Returns:
The list of args for the handler.
- Return type:
- collect_additional_context(context, update, application, check_result)[source]¶
Add text after the command to
CallbackContext.args
as list, split on single whitespaces and add output of data filters toCallbackContext
as well.