Closed nukdokplex closed 1 year ago
Kutana
стремится быть инструментом, который можно использовать так, как удобно разработчику, и который не устанавливает инфраструктурных требований. Сейчас ничто не мешает создавать репозитории с плагинами и распространять их, и уже сейчас kutana выгружает плагины рекурсивно, переводы i18n работают так же.
Поэтому из интересного стоит заменить, что надо научить кутану подгружать модули, а не отдельные файлы, но это уже доработка, которая слабо связана с этим issue. Вообще i18n
, скорее всего, будет удален.
Почему это нужно? Опираясь на опыт Red (Discord bot), разделение плагинов над поддиректории поможет избежать путаницы, удобно дистрибутировать и распространять плагины, как это сделано в вышеприведенном фреймворке. Также в последствии можно будет создать репозиторий с плагинами.
Ожидаемое поведение
Я предлагаю сделать структуру плагинов такой: внутри папки
plugins/
будут находиться подпапки, названные как плагины. Внутри каждой папки будет находится__init__.py
, который будет создавать плагин, подпапкаi18n
с переводами для каждого конкретного плагина. Структура должна получится примерно такой:Текущее поведение
Плагины расположены в виде файлов внутри папки
plugins/
, инкапсулированы на уровне файлов. Переводы слиты в один файл, что неудобно переводчикам и разработчикам.Решение
Нужно просто немного изменить несколько функций внутри класса "Kutana", изменить то, как загружает переводы модуль
i18n
- и начало будет положено.Контекст
В моей реализации бота я решил инкапсулировать плагины в поддиректории самостоятельно. Для это написал небольшую функцию: