Source code for telegram_framework.links

from typing import Callable
import importlib
from telegram_framework import bots, params
from telegram_framework.commands import description


[docs] def on_command(handler: Callable, name: str, description_text=None, params_pattern=None): if description_text: handler = description(description_text)(handler) params_pattern = params_pattern if params_pattern else name params_pattern = f'/{params_pattern}' handler, filter_function = params.get_param_command_handler(params_pattern, handler) def command_handler(bot): return bots.register_command_handler(bot, handler, name, filter_function) return command_handler
[docs] def on_message(handler: Callable, filter_function: Callable = lambda message: True): def message_handler(bot): return bots.register_message_handler(bot, handler, filter_function) return message_handler
[docs] def on_text(handler: Callable, text: str): def text_handler(bot): return bots.register_text_handler(bot, handler, text) return text_handler
[docs] def on_call(handler, call_data, params_pattern=None): params_pattern = params_pattern if params_pattern else call_data handler, filter_function = params.get_param_call_handler(params_pattern, handler) def call_handler(bot): return bots.register_call_handler( bot, handler, call_data, filter_function=filter_function ) return call_handler
[docs] def include(links: list, module_name) -> list: additional_links = get_root_links(module_name) return links + additional_links
[docs] def include_all(links: list, modules_list: list) -> list: for module in modules_list: links = include(links, module) return links