Skip to main content
Наследование от CactusUtils.Plugin (или его псевдонимов CactusModule, CactusPlugin) является ключевым моментом в разработке, так как это наделяет ваш класс множеством полезных методов и атрибутов.

База данных

Каждый плагин, использующий CactusLib, получает собственное персистентное хранилище в виде JSON-файла. Вам не нужно заботиться о его создании или загрузке — просто используйте встроенные методы.
  • self.get(key: str, default: Any = None) -> Any Получает значение по ключу. Если ключ не найден, возвращает default.
  • self.set(key: str, value: Any) Сохраняет значение по ключу.
  • self.pop(key: str) -> Any Удаляет ключ и возвращает его значение.
  • self.clear_db() Полностью очищает базу данных вашего плагина.
Пример: счетчик использований команды
counter.plugin

Локализация (i18n)

CactusLib имеет встроенную поддержку нескольких языков. Вы можете определить строки для разных языков, и библиотека автоматически выберет нужную в зависимости от настроек пользователя. Для этого в вашем классе нужно определить словарь strings:
hello.plugin
  • self.string(key: str, *args, default: str = None, **kwargs) -> str Получает строку по ключу для текущего языка пользователя, форматируя ее с переданными аргументами.
  • self.lstrings() -> dict Возвращает весь словарь строк для текущего языка.
Пример использования self.string:
hello.plugin

/ Управление данными при импорте/экспорте

Вы можете определять собственную логику для сохранения и восстановления сложных данных.
  • export_data(self) -> dict Вызывается, когда пользователь экспортирует плагины с данными. Верните словарь с данными, которые вы хотите сохранить.
  • import_data(self, data: dict) Вызывается при импорте. В data будет словарь, который вы вернули из export_data.
Встроенная база данных хранится на устройстве в папке exteraGram в виде .json файла, а также экспортируются и импортируются самостоятельно при экспорте/импорте плагина или его загрузке.
Пример:

Другие полезные атрибуты и методы

  • self.utils: Прямой доступ к объекту CactusUtils со всеми его статическими методами.
  • self.log(msg), self.info(msg), self.debug(msg), self.warn(msg), self.error(msg): Методы для логирования с автоматической подстановкой ID вашего плагина.
  • __min_lib_version__: Строка, указывающая минимально требуемую версию CactusLib (например, "1.7.0"). Если версия у пользователя ниже, плагин не загрузится.
  • UPDATE_DATA: Словарь с данными для обновления плагина.
Подробнее