Структура модуля
Это все классно, но как создать модуль?
Модуль представляет собой Python-модуль (директория с файлом __init__.py
) особой структуры.
Пример структуры
Сердце модуля - супер-класс BaseModule
, который предоставляет необходимые API для работы модуля, а так же выполняет его инициализацию. Класс модуля должен наследоваться от BaseModule
В __init__.py
обязан быть импорт нового класса модуля, иначе загрузчик просто не увидит его
Вся информация о модуле описывается в YAML файле info.yaml
. В нее входит: название, автор, версия, описание, и разрешения (о них позже). Пример такого файла:
Классы ModuleExtension
позволяют разбить код модуля на файлы, не теряя при этом важные атрибуты класса. В примере выше, файлы с расширениями расположены в папке extensions
, хотя они могут располагаться как угодно, все зависит от вас.
В модуль встроена система переводов. При загрузке модуль проверяет папку strings, и загружает файлы переводов в виде словарей в атрибут rawS
, после чего выбирается текущий активный язык (указывается в конфиге бота) и загружает в атрибут S
. Пример использования:
Last updated