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

Структура модуля

Модуль в проекте - это папка с python файлами в директории plugins.
Папка модуля - это твое маленькое государство. В нем можешь делать все что угодно, распределяй свой код на файлы сколько тебе надо. Нужны какие-то дополнительные файлы - загружай! Надо где-то что-то хранить - создавай там свое хранилище! Главное укажи что нужно передавать, а что нет в .rimtubignore

Указание
  • Папку следует называть в CamelCase. Например, ExampleModule.
  • Название модуля должно отображать его функционал. Например, PythonRunner, TimeTools, Terminal
  • Смешные созвучные названия приветствуются. Например, Carbonara (от Carbon)
/RimTUB/
.
└───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
Hello/__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
TestM/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
TestM/.rimtubignore
# Игнорировать все файлы .log
*.log

# Игнорировать папку с временными файлами
tmp/

# Игнорировать конфиденциальный файл с настройками
config/secrets.json