mirror of
https://github.com/langbot-app/LangBot.git
synced 2025-11-25 19:37:36 +08:00
perf: 优化插件管理
This commit is contained in:
@@ -75,22 +75,24 @@ def initialize_plugins():
|
|||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
plugin['instance'] = plugin["class"](plugin_host=context.get_plugin_host())
|
plugin['instance'] = plugin["class"](plugin_host=context.get_plugin_host())
|
||||||
|
logging.info("插件 {} 已初始化".format(plugin['name']))
|
||||||
except:
|
except:
|
||||||
logging.error("插件{}初始化时发生错误: {}".format(plugin['name'], sys.exc_info()))
|
logging.error("插件{}初始化时发生错误: {}".format(plugin['name'], sys.exc_info()))
|
||||||
|
|
||||||
|
|
||||||
def unload_plugins():
|
def unload_plugins():
|
||||||
""" 卸载插件 """
|
""" 卸载插件 """
|
||||||
for plugin in __plugins__.values():
|
# for plugin in __plugins__.values():
|
||||||
if plugin['enabled'] and plugin['instance'] is not None:
|
# if plugin['enabled'] and plugin['instance'] is not None:
|
||||||
if not hasattr(plugin['instance'], '__del__'):
|
# if not hasattr(plugin['instance'], '__del__'):
|
||||||
logging.warning("插件{}没有定义析构函数".format(plugin['name']))
|
# logging.warning("插件{}没有定义析构函数".format(plugin['name']))
|
||||||
else:
|
# else:
|
||||||
try:
|
# try:
|
||||||
plugin['instance'].__del__()
|
# plugin['instance'].__del__()
|
||||||
logging.info("卸载插件: {}".format(plugin['name']))
|
# logging.info("卸载插件: {}".format(plugin['name']))
|
||||||
except:
|
# plugin['instance'] = None
|
||||||
logging.error("插件{}卸载时发生错误: {}".format(plugin['name'], sys.exc_info()))
|
# except:
|
||||||
|
# logging.error("插件{}卸载时发生错误: {}".format(plugin['name'], sys.exc_info()))
|
||||||
|
|
||||||
|
|
||||||
def install_plugin(repo_url: str):
|
def install_plugin(repo_url: str):
|
||||||
@@ -242,13 +244,14 @@ class PluginHost:
|
|||||||
if not plugin['enabled']:
|
if not plugin['enabled']:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if plugin['instance'] is None:
|
# if plugin['instance'] is None:
|
||||||
# 从关闭状态切到开启状态之后,重新加载插件
|
# # 从关闭状态切到开启状态之后,重新加载插件
|
||||||
try:
|
# try:
|
||||||
plugin['instance'] = plugin["class"]()
|
# plugin['instance'] = plugin["class"](plugin_host=self)
|
||||||
except:
|
# logging.info("插件 {} 已初始化".format(plugin['name']))
|
||||||
logging.error("插件{}初始化时发生错误: {}".format(plugin['name'], sys.exc_info()))
|
# except:
|
||||||
continue
|
# logging.error("插件 {} 初始化时发生错误: {}".format(plugin['name'], sys.exc_info()))
|
||||||
|
# continue
|
||||||
|
|
||||||
for hook in plugin['hooks'].get(event_name, []):
|
for hook in plugin['hooks'].get(event_name, []):
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import os
|
|||||||
import threading
|
import threading
|
||||||
|
|
||||||
import mirai.models.bus
|
import mirai.models.bus
|
||||||
from mirai import At, GroupMessage, MessageEvent, Mirai, Plain, StrangerMessage, WebSocketAdapter, HTTPAdapter, \
|
from mirai import At, GroupMessage, MessageEvent, Mirai, StrangerMessage, WebSocketAdapter, HTTPAdapter, \
|
||||||
FriendMessage, Image
|
FriendMessage, Image
|
||||||
|
|
||||||
import pkg.openai.session
|
import pkg.openai.session
|
||||||
|
|||||||
Reference in New Issue
Block a user