telegram.ext.Handler¶
-
class
telegram.ext.
Handler
(callback, pass_update_queue=False, pass_job_queue=False, pass_user_data=False, pass_chat_data=False, run_async=False)¶ Bases:
Generic
[telegram.ext.handler.UT
],abc.ABC
The base class for all update handlers. Create custom handlers by inheriting from it.
Note
pass_user_data
andpass_chat_data
determine whether adict
you can use to keep any data in will be sent to thecallback
function. Related to either the user or the chat that the update was sent in. For each update from the same user or in the same chat, it will be the samedict
.Note that this is DEPRECATED, and you should use context based callbacks. See https://git.io/fxJuV for more info.
Warning
When setting
run_async
toTrue
, you cannot rely on adding custom attributes totelegram.ext.CallbackContext
. See its docs for more info.- Parameters
callback (
callable
) –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 for context based API:def callback(update: Update, context: CallbackContext)
The return value of the callback is usually ignored except for the special case of
telegram.ext.ConversationHandler
.pass_update_queue (
bool
, optional) – If set toTrue
, a keyword argument calledupdate_queue
will be passed to the callback function. It will be theQueue
instance used by thetelegram.ext.Updater
andtelegram.ext.Dispatcher
that contains new updates which can be used to insert updates. Default isFalse
. DEPRECATED: Please switch to context based callbacks.pass_job_queue (
bool
, optional) – If set toTrue
, a keyword argument calledjob_queue
will be passed to the callback function. It will be atelegram.ext.JobQueue
instance created by thetelegram.ext.Updater
which can be used to schedule new jobs. Default isFalse
. DEPRECATED: Please switch to context based callbacks.pass_user_data (
bool
, optional) – If set toTrue
, a keyword argument calleduser_data
will be passed to the callback function. Default isFalse
. DEPRECATED: Please switch to context based callbacks.pass_chat_data (
bool
, optional) – If set toTrue
, a keyword argument calledchat_data
will be passed to the callback function. Default isFalse
. DEPRECATED: Please switch to context based callbacks.run_async (
bool
) – Determines whether the callback will run asynchronously. Defaults toFalse
.
-
callback
¶ The callback function for this handler.
- Type
callable
-
pass_update_queue
¶ Determines whether
update_queue
will be passed to the callback function.- Type
bool
-
pass_job_queue
¶ Determines whether
job_queue
will be passed to the callback function.- Type
bool
-
pass_user_data
¶ Determines whether
user_data
will be passed to the callback function.- Type
bool
-
pass_chat_data
¶ Determines whether
chat_data
will be passed to the callback function.- Type
bool
-
run_async
¶ Determines whether the callback will run asynchronously.
- Type
bool
-
abstract
check_update
(update)¶ This method is called to determine if an update should be handled by this handler instance. It should always be overridden.
Note
Custom updates types can be handled by the dispatcher. Therefore, an implementation of this method should always check the type of
update
.- Parameters
update (
str
|telegram.Update
) – The update to be tested.- Returns
Either
None
orFalse
if the update should not be handled. Otherwise an object that will be passed tohandle_update()
andcollect_additional_context()
when the update gets handled.
-
collect_additional_context
(context, update, dispatcher, check_result)¶ Prepares additional arguments for the context. Override if needed.
- Parameters
context (
telegram.ext.CallbackContext
) – The context object.update (
telegram.Update
) – The update to gather chat/user id from.dispatcher (
telegram.ext.Dispatcher
) – The calling dispatcher.check_result – The result (return value) from
check_update
.
-
collect_optional_args
(dispatcher, update=None, check_result=None)¶ Prepares the optional arguments. If the handler has additional optional args, it should subclass this method, but remember to call this super method.
DEPRECATED: This method is being replaced by new context based callbacks. Please see https://git.io/fxJuV for more info.
- Parameters
dispatcher (
telegram.ext.Dispatcher
) – The dispatcher.update (
telegram.Update
) – The update to gather chat/user id from.check_result – The result from check_update
-
handle_update
(update, dispatcher, check_result, context=None)¶ This method is called if it was determined that an update should indeed be handled by this instance. Calls
callback
along with its respectful arguments. To work with thetelegram.ext.ConversationHandler
, this method returns the value returned fromcallback
. Note that it can be overridden if needed by the subclassing handler.- Parameters
update (
str
|telegram.Update
) – The update to be handled.dispatcher (
telegram.ext.Dispatcher
) – The calling dispatcher.check_result (
obj
) – The result fromcheck_update
.context (
telegram.ext.CallbackContext
, optional) – The context as provided by the dispatcher.