Module
Объект модуля передается в главную функцию модуля.
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__.pyfrom 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__.pyfrom 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не будут указаны - то будут приниматься все колбеки