Структура модуля
Модуль в проекте - это папка с python файлами в директории plugins.
Папка модуля - это твое маленькое государство. В нем можешь делать все что угодно, распределяй свой код на файлы сколько тебе надо. Нужны какие-то дополнительные файлы - загружай! Надо где-то что-то хранить - создавай там свое хранилище! Главное укажи что нужно передавать, а что нет в .rimtubignore
- Папку следует называть в CamelCase. Например,
ExampleModule. - Название модуля должно отображать его функционал. Например,
PythonRunner,TimeTools,Terminal - Смешные созвучные названия приветствуются. Например,
Carbonara(от Carbon)
.
└───plugins
├───Calculator
│ __init__.py
│ manifest.yaml
│
├───Fishh
│ __init__.py
│ manifest.yaml
│ worker.py
│
└───ExampleModule
│ __init__.py
│ manifest.yaml
│ utils.py
│ file.txt
│ .rimtubignore
│
└───dir
| ...
В Папке модуля обязательно должен быть файлы __init__.py и manifest.yaml
__init__.py
Главный файл модуля. В нем обязательно должна быть функция
async def main(app: Client, mod: Module):
в которой объявляются хендлеры
Пример __init__.py
from utils import *
async def main(app: Client, mod: Module):
cmd = mod.cmd
@cmd('hello')
async def _hello(_, msg: M):
await msg.edit("ПРИВЕЕЕТ!!!")
manifest.yaml
Все техническая информация о модуле.
В этом файле хранится вся информация о модуле: версия, автор, разработчик, зависимости, хелплист и т.д.
module_name(str) - Название модуля. Должно совпадать с названием папки.version(str) - Версия модуля.native_RimTUB_version(str) - Оригинальная версия RimTUB под которую писался модуль.available_RimTUB_versions(list of str) - список версий RimTUB на которых работает модульonline_check_RimTUB_versions(boolean) - Проверять ли онлайн доступные версии RimTUB на которых работает модуль.warningДанная функция в разработке
description(str) - Описание модуляauthor(str) - Разработчик модуляsections(dict) - регистрация Хелплиста (см. Хелплист)requirements(dict[str: str]) - Зависимости (см. Зависимости)
Пример manifest.yaml
module_name: TestM
version: 2.2-1.0.0
native_RimTUB_version: 2.2
available_RimTUB_versions:
- 2.2
- dev-2.2
online_check_RimTUB_versions: Off
description: |
Тестовый модуль для разработчиков модулей.
author: built-in (@RimMirK)
sections:
_:
commands:
- names: [test, t]
arguments:
- {text: обязательный аргумент, req: Yes}
- {text: Необязательный аргумент, req: No }
description: Тест
- {
names: [ulala, ula],
arguments: ~,
description: Уляля
}
features:
- title: Заголовок
description: Описание
testing:
description: Тестовая часть
requirements:
telebot:
check: import telebot; telebot.__version__ == '4.26.0'
install: pyTelegramBotAPI==4.26.0
.rimtubignore
Файл .rimtubignore используется в модуле для указания файлов и директорий, которые должны быть проигнорированы при отправке модуля (командой .sm, например). Это аналогично файлу .gitignore в Git, который исключает определённые файлы или папки из версионного контроля.
Подробнее про такие файлы можно узнать тут
Пример .rimtubignore
# Игнорировать все файлы .log
*.log
# Игнорировать папку с временными файлами
tmp/
# Игнорировать конфиденциальный файл с настройками
config/secrets.json