瀏覽代碼

fix: global plugin config read

zhayujie 2 年之前
父節點
當前提交
4bab4299f2
共有 5 個文件被更改,包括 38 次插入29 次删除
  1. 10 8
      plugins/banwords/banwords.py
  2. 7 6
      plugins/bdunit/bdunit.py
  3. 10 8
      plugins/godcmd/godcmd.py
  4. 4 1
      plugins/plugin.py
  5. 7 6
      plugins/tool/tool.py

+ 10 - 8
plugins/banwords/banwords.py

@@ -26,14 +26,16 @@ class Banwords(Plugin):
         try:
             curdir = os.path.dirname(__file__)
             config_path = os.path.join(curdir, "config.json")
-            conf = None
-            if not os.path.exists(config_path):
-                conf = {"action": "ignore"}
-                with open(config_path, "w") as f:
-                    json.dump(conf, f, indent=4)
-            else:
-                with open(config_path, "r") as f:
-                    conf = super().load_config() or json.load(f)
+            # loading config from global plugin config
+            conf = super().load_config()
+            if not conf:
+                if not os.path.exists(config_path):
+                    conf = {"action": "ignore"}
+                    with open(config_path, "w") as f:
+                        json.dump(conf, f, indent=4)
+                else:
+                    with open(config_path, "r") as f:
+                        conf = super().load_config() or json.load(f)
             self.searchr = WordsSearch()
             self.action = conf["action"]
             banwords_path = os.path.join(curdir, "banwords.txt")

+ 7 - 6
plugins/bdunit/bdunit.py

@@ -31,12 +31,13 @@ class BDunit(Plugin):
         try:
             curdir = os.path.dirname(__file__)
             config_path = os.path.join(curdir, "config.json")
-            conf = None
-            if not os.path.exists(config_path):
-                raise Exception("config.json not found")
-            else:
-                with open(config_path, "r") as f:
-                    conf = super().load_config() or json.load(f)
+            conf = super().load_config()
+            if not conf:
+                if not os.path.exists(config_path):
+                    raise Exception("config.json not found")
+                else:
+                    with open(config_path, "r") as f:
+                        conf = json.load(f)
             self.service_id = conf["service_id"]
             self.api_key = conf["api_key"]
             self.secret_key = conf["secret_key"]

+ 10 - 8
plugins/godcmd/godcmd.py

@@ -180,14 +180,16 @@ class Godcmd(Plugin):
 
         curdir = os.path.dirname(__file__)
         config_path = os.path.join(curdir, "config.json")
-        gconf = None
-        if not os.path.exists(config_path):
-            gconf = {"password": "", "admin_users": []}
-            with open(config_path, "w") as f:
-                json.dump(gconf, f, indent=4)
-        else:
-            with open(config_path, "r") as f:
-                gconf = super().load_config() or json.load(f)
+        # loading config from global plugin config
+        gconf = super().load_config()
+        if not gconf:
+            if not os.path.exists(config_path):
+                gconf = {"password": "", "admin_users": []}
+                with open(config_path, "w") as f:
+                    json.dump(gconf, f, indent=4)
+            else:
+                with open(config_path, "r") as f:
+                    gconf = json.load(f)
         if gconf["password"] == "":
             self.temp_password = "".join(random.sample(string.digits, 4))
             logger.info("[Godcmd] 因未设置口令,本次的临时口令为%s。" % self.temp_password)

+ 4 - 1
plugins/plugin.py

@@ -1,5 +1,6 @@
 import os
 from config import pconf
+from common.log import logger
 
 class Plugin:
     def __init__(self):
@@ -10,7 +11,9 @@ class Plugin:
         加载当前插件配置
         :return: 插件配置字典
         """
-        return pconf(self.name)
+        conf = pconf(self.name)
+        logger.info(f"loading from global plugin config, plugin_name={self.name}, conf={conf}")
+        return conf
 
     def get_help_text(self, **kwargs):
         return "暂无帮助信息"

+ 7 - 6
plugins/tool/tool.py

@@ -121,12 +121,13 @@ class Tool(Plugin):
     def _read_json(self) -> dict:
         curdir = os.path.dirname(__file__)
         config_path = os.path.join(curdir, "config.json")
-        tool_config = {"tools": [], "kwargs": {}}
-        if not os.path.exists(config_path):
-            return tool_config
-        else:
-            with open(config_path, "r") as f:
-                tool_config = super().load_config() or json.load(f)
+        tool_config = super().load_config()
+        if not tool_config:
+            if not os.path.exists(config_path):
+                return {"tools": [], "kwargs": {}}
+            else:
+                with open(config_path, "r") as f:
+                    tool_config = json.load(f)
         return tool_config
 
     def _build_tool_kwargs(self, kwargs: dict):