Skip to content

Commit 8275d26

Browse files
authored
Merge pull request zhayujie#2407 from ayasa520/fix_reloadp
fix(plugin): fix reloadp command not taking effect
2 parents e9dcfb8 + 441953a commit 8275d26

File tree

6 files changed

+19
-10
lines changed

6 files changed

+19
-10
lines changed

common/linkai_client.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from bridge.reply import Reply, ReplyType
33
from common.log import logger
44
from linkai import LinkAIClient, PushMsg
5-
from config import conf, pconf, plugin_config, available_setting
5+
from config import conf, pconf, plugin_config, available_setting, write_plugin_config
66
from plugins import PluginManager
77
import time
88

@@ -51,10 +51,10 @@ def on_config(self, config: dict):
5151
local_config["voice_reply_voice"] = False
5252

5353
if config.get("admin_password"):
54-
if not plugin_config.get("Godcmd"):
55-
plugin_config["Godcmd"] = {"password": config.get("admin_password"), "admin_users": []}
54+
if not pconf("Godcmd"):
55+
write_plugin_config({"Godcmd": {"password": config.get("admin_password"), "admin_users": []} })
5656
else:
57-
plugin_config["Godcmd"]["password"] = config.get("admin_password")
57+
pconf("Godcmd")["password"] = config.get("admin_password")
5858
PluginManager().instances["GODCMD"].reload()
5959

6060
if config.get("group_app_map") and pconf("linkai"):

config.py

+8
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,14 @@ def write_plugin_config(pconf: dict):
342342
for k in pconf:
343343
plugin_config[k.lower()] = pconf[k]
344344

345+
def remove_plugin_config(name: str):
346+
"""
347+
移除待重新加载的插件全局配置
348+
:param name: 待重载的插件名
349+
"""
350+
global plugin_config
351+
plugin_config.pop(name.lower(), None)
352+
345353

346354
def pconf(plugin_name: str) -> dict:
347355
"""

plugins/godcmd/godcmd.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ def model_mapping(self, model) -> str:
477477
return model
478478

479479
def reload(self):
480-
gconf = plugin_config[self.name]
480+
gconf = pconf(self.name)
481481
if gconf:
482482
if gconf.get("password"):
483483
self.password = gconf["password"]

plugins/linkai/linkai.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ def _load_config_template(self):
291291
plugin_conf = json.load(f)
292292
plugin_conf["midjourney"]["enabled"] = False
293293
plugin_conf["summary"]["enabled"] = False
294-
plugin_config["linkai"] = plugin_conf
294+
write_plugin_config({"linkai": plugin_conf})
295295
return plugin_conf
296296
except Exception as e:
297297
logger.exception(e)

plugins/plugin.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import os
22
import json
3-
from config import pconf, plugin_config, conf
3+
from config import pconf, plugin_config, conf, write_plugin_config
44
from common.log import logger
55

66

@@ -24,13 +24,13 @@ def load_config(self) -> dict:
2424
plugin_conf = json.load(f)
2525

2626
# 写入全局配置内存
27-
plugin_config[self.name] = plugin_conf
27+
write_plugin_config({self.name: plugin_conf})
2828
logger.debug(f"loading plugin config, plugin_name={self.name}, conf={plugin_conf}")
2929
return plugin_conf
3030

3131
def save_config(self, config: dict):
3232
try:
33-
plugin_config[self.name] = config
33+
write_plugin_config({self.name: config})
3434
# 写入全局配置
3535
global_config_path = "./plugins/config.json"
3636
if os.path.exists(global_config_path):

plugins/plugin_manager.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from common.log import logger
1010
from common.singleton import singleton
1111
from common.sorted_dict import SortedDict
12-
from config import conf, write_plugin_config
12+
from config import conf, remove_plugin_config, write_plugin_config
1313

1414
from .event import *
1515

@@ -163,6 +163,7 @@ def activate_plugins(self): # 生成新开启的插件实例
163163

164164
def reload_plugin(self, name: str):
165165
name = name.upper()
166+
remove_plugin_config(name)
166167
if name in self.instances:
167168
for event in self.listening_plugins:
168169
if name in self.listening_plugins[event]:

0 commit comments

Comments
 (0)