К содержимому

v0.9.0

Это достаточно масштабное обновление API, которые значительно изменяет подход к расширениям. Изменений достаточно много, потому следующее обновление вполне может стать v1.0. Из-за значительных изменения необходимо приложить некоторые усилия чтобы портировать плагины на новый API.

  • Добавлен метод для подсчёта пинга базы данных.
  • Возможность подключения к базе данных по UNIX сокету.
  • База данных и настройки перемещены в пакет chioricord.api.
  • Из параметр настроек PLUGIN_CONFIG заменён на CONFIG_PATH.
  • Все расширения портированы на новую версию API.

Все настройки плагинов теперь находятся в config/ (можно переопределить через настройки). Название файла конфига задаётся в PluginConfig через параметр config_name. Загрузка настроек происходит после загрузки плагинов. Если загрузка настроек не удалась, будет выведен детальный отчёт.

Упрошены методы для обращения с настройками:

config.register(SomeConfig)
config.get(SomeConfig)

Несколько изменился порядок запуска бота:

  • Подгрузка системных настроек.
  • Запуск клиентов. hikari, arc, miru.
  • Проверка директорий, настройка журнала.
  • Подготовка базы данных.
  • Загрузка плагинов.
  • Загрузка настроек плагинов.
  • Запуск базы данных.

Было добавлено несколько новых компонентов.

  • plugin.ChioPlugin: Надстройка поверх GatewayPlugin. Предоставляет методы для установки настроек и добавления таблиц в базу данных. Во время загрузки плагина они автоматически будут добавлены в клиент. Больше не нужно использовать get_type_dependency.
  • client.ChioClient: Надстройка поверх GatewayClient. Предоставляет доступ к настройкам и базе данных без необходимости использовать DI.
  • client.ChioContext: Типизированный arc.Context[ChioClient].

До v0.9:

db = client.get_type_dependency(ChioDB)
config = client.get_type_dependency(BotConfig)
await db.connect(str(config.DB_DSN))
await db.create_tables()

После:

await client.db.connect(str(client.bot_config.DB_DSN))
await client.db.create_tables()
  • Добавлена группа templates для примера реализации плагинов.
  • Добавлена группа contrib для поддержки сторонних сервисов в Chioricord.
  • Modcraft: Добавлена поддержка настроек. Убраны динамические команды.
  • lingua: Событие добавления сообщения.
  • lingua: Метод получения статистики сообщений.
  • lingua: Метод добавления новых сообщений в историю и получения последних сообщений.