fix 插件重载事件

This commit is contained in:
jxxghp
2023-08-15 19:08:58 +08:00
parent 24d75058ad
commit b086bbf015

View File

@ -4,12 +4,13 @@ from typing import Any, List, Dict, Tuple
from app.chain import ChainBase from app.chain import ChainBase
from app.core.config import settings from app.core.config import settings
from app.core.event import EventManager from app.core.event import EventManager, eventmanager, Event
from app.db.models import Base from app.db.models import Base
from app.db.plugindata_oper import PluginDataOper from app.db.plugindata_oper import PluginDataOper
from app.db.systemconfig_oper import SystemConfigOper from app.db.systemconfig_oper import SystemConfigOper
from app.helper.message import MessageHelper from app.helper.message import MessageHelper
from app.schemas import Notification, NotificationType, MessageChannel from app.schemas import Notification, NotificationType, MessageChannel
from app.schemas.types import EventType
class PluginChian(ChainBase): class PluginChian(ChainBase):
@ -35,7 +36,7 @@ class _PluginBase(metaclass=ABCMeta):
plugin_name: str = "" plugin_name: str = ""
# 插件描述 # 插件描述
plugin_desc: str = "" plugin_desc: str = ""
def __init__(self): def __init__(self):
# 插件数据 # 插件数据
self.plugindata = PluginDataOper() self.plugindata = PluginDataOper()
@ -147,6 +148,7 @@ class _PluginBase(metaclass=ABCMeta):
保存插件数据 保存插件数据
:param key: 数据key :param key: 数据key
:param value: 数据值 :param value: 数据值
:param plugin_id: 插件ID
""" """
if not plugin_id: if not plugin_id:
plugin_id = self.__class__.__name__ plugin_id = self.__class__.__name__
@ -181,3 +183,16 @@ class _PluginBase(metaclass=ABCMeta):
channel=channel, mtype=mtype, title=title, text=text, channel=channel, mtype=mtype, title=title, text=text,
image=image, link=link, userid=userid image=image, link=link, userid=userid
)) ))
@eventmanager.register(EventType.PluginReload)
def reload(self, event: Event):
"""
重新加载插件
"""
plugin_id = event.event_data.get("plugin_id")
if not plugin_id:
return
conf = self.get_config(plugin_id)
if not conf:
return
self.init_plugin(conf)