Commands Handler

class telegram_bot_discussion.handlers.commands_handler.commands_handler.CommandsHandler(commands_map=None)[source]

Bases: object

Parameters:

commands_map (CommandsMap | None)

commands_map: Optional[CommandsMap] = None

accordance of action and Command-class.

Type:

CommandsMap

set_commands_map(commands_map)[source]
Parameters:

commands_map (CommandsMap)

async access_control_list(context, user_id, command)[source]

Check user access to Command-class within handle().

Return type:

bool

Parameters:
  • context (CallbackContext)

  • user_id (int)

  • command (Type[Command])

async middleware(update, context)[source]

Middleware work within handle(). If it returns None, handle() will not work.

Return type:

Optional[Tuple[Update, CallbackContext]]

Parameters:
  • update (Update)

  • context (CallbackContext)

async handle(update, context)[source]

Catch all commands calls.

Parameters:
  • update (Update)

  • context (CallbackContext)

Commands handler exceptions

exception telegram_bot_discussion.handlers.commands_handler.exceptions.access_deny.CommandClassAccessDeny(user_id, command_class)[source]

Bases: Exception

Parameters:
  • user_id (int)

  • command_class (str | Type[Command])

user_id: int
command_class: Union[str, Type[Command]]
exception telegram_bot_discussion.handlers.commands_handler.exceptions.commands_map_is_empty.CommandsMapIsEmpty[source]

Bases: Exception

exception telegram_bot_discussion.handlers.commands_handler.exceptions.not_registered.CommandClassIsNotRegistered(command_class)[source]

Bases: Exception

Parameters:

command_class (str | Type[Command])

command_class: Union[str, Type[Command]]