Перейти к основному содержимому
Версия: Latest

Module

Объект модуля передается в главную функцию модуля.

Module/__init__.py
from utils import *

async def main(app: Client, mod: Module):
pass

Через данный объект осуществляется все основные действия с модулем: Регистрация команд, отправка кнопок, получения группы, и т.д.


Параметры

  • name (str) - Название модуля

  • path (pathlib.Path) - путь к папке модуля, для работы с файлами

  • db_path (pathlib.Path) - путь к SQL базе данных модуля. cм. SQL DataBase (db)

  • db (ModuleDB) - SQL База данных. см. SQL DataBase (db)

  • st (DictStorage) - Временное хранилище на базе словаря. см. Временное хранилище (st)

  • logger (logging.Logger) - логгер модуля. Все логи следует выводить через него.

  • manifest (dict) - загруженные данные из manifest.yaml

  • group (int) - Основная группа модуля. Используется в обработчиках

  • cmd (NCmd) - Объект для регистрирования обработчиков команд.

    см. Обработчики команд

    Пример

    Module/__init__.py
    from utils import *

    async def main(app: Client, mod: Module):

    cmd = mod.cmd

    @cmd(['cmd', 'my_command'])
    async def _cmd(_, msg: M):
    pass

Методы

  • get_group

    Возвращает новую группу модуля для обработчиков

    Аргументы: нет

    Возвращает: str - новая группа модуля

  • add_task

    Добавляет задачу в очередь выполнения (ev.create_task)

    Пример:

    async def worker(arg):
    pass

    mod.add_task(worker(arg))

    Аргументы:

    • coro (Coroutine) - Корутина, которую нужно выполнить.

    Возвращает: asyncio.Task - объект задачи

  • async prepare_buttons

    Подготавливает кнопки. Cм. Кнопки

    Аргументы:

    • buttons (Buttons) - кнопки которые нужно подготовить

    Возвращает: Buttons - подготовленные кнопки

  • async send_buttons

    Отправляет кнопки в определенный чат. Cм. Кнопки

    Аргументы:

    • chat_id (str|int) - чат ID или username чата куда отправить кнопки
    • text (str) - текст сообщения
    • buttons (Buttons) - кнопки
    • **kwargs - Параметры для передачи Client.send_inline_bot_result

    Возвращает: Message - отправленное сообщение


Декораторы

  • on_ready

    Декоратор который вызывается когда юб запущен

    См. @mod.on_ready

    Пример:

    Module/__init__.py
    from utils import *

    async def main(app: Client, mod: Module):

    @mod.on_ready
    async def _onr(app: Client):
    mod.logger.info("RimTUB запустился!")
  • callback

    Обработчик колбеков. см. Кнопки

    Аргументы:

    • callback_data (Optional, str) - Точное совпадение колбек даты
    • startswith (Optional, str) - начало колбек даты.
    • group (Optional, int) - Группа обработчика
    • is_private (Optional, bool) = True - Приватная кнопка.
    • allowed_ids (Optional, List[int]) - Если is_private==True: user_ids тех, кто может нажимать на кнопку
    • message (Optional, str) = 'Это не твоя кнопка!' - Если is_private==True: Сообщение, которое выведется если доступ к кнопке запрещен
    • show_alert (Optional, bool) = True - Если is_private==True: Выводить ли сообщение об ошибке в виде окна, или нет (параметр show_alert в Client.answer_callback_query)  
    к сведению

    Если ни callback_data ни startswith не будут указаны - то будут приниматься все колбеки