mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-11 22:50:45 +08:00
refactor(plugins): 支持编译插件的加载
This commit is contained in:
parent
41201653f1
commit
f3a6d665cf
@ -96,20 +96,26 @@ class Config:
|
|||||||
PLUGIN_FLAGS = os.environ.get("PLUGIN_FLAGS", "").split(",")
|
PLUGIN_FLAGS = os.environ.get("PLUGIN_FLAGS", "").split(",")
|
||||||
plugins_available = {}
|
plugins_available = {}
|
||||||
task_plugins_config = {}
|
task_plugins_config = {}
|
||||||
|
# 获取所有模块
|
||||||
|
py_ext = [".py", ".pyd"] if sys.platform == "win32" else [".py", ".so"]
|
||||||
all_modules = [
|
all_modules = [
|
||||||
f.replace(".py", "") for f in os.listdir(plugins_dir) if f.endswith(".py")
|
f.replace(ext, "")
|
||||||
|
for f in os.listdir(plugins_dir)
|
||||||
|
for ext in py_ext
|
||||||
|
if f.endswith(ext)
|
||||||
]
|
]
|
||||||
# 调整模块优先级
|
# 调整模块优先级
|
||||||
priority_path = os.path.join(plugins_dir, "_priority.json")
|
priority_path = os.path.join(plugins_dir, "_priority.json")
|
||||||
try:
|
try:
|
||||||
with open(priority_path, encoding="utf-8") as f:
|
with open(priority_path, encoding="utf-8") as f:
|
||||||
priority_modules = json.load(f)
|
priority_modules = json.load(f)
|
||||||
if priority_modules:
|
|
||||||
all_modules = [
|
|
||||||
module for module in priority_modules if module in all_modules
|
|
||||||
] + [module for module in all_modules if module not in priority_modules]
|
|
||||||
except (FileNotFoundError, json.JSONDecodeError):
|
except (FileNotFoundError, json.JSONDecodeError):
|
||||||
priority_modules = []
|
priority_modules = []
|
||||||
|
if priority_modules:
|
||||||
|
all_modules = [
|
||||||
|
module for module in priority_modules if module in all_modules
|
||||||
|
] + [module for module in all_modules if module not in priority_modules]
|
||||||
|
# 加载模块
|
||||||
for module_name in all_modules:
|
for module_name in all_modules:
|
||||||
if f"-{module_name}" in PLUGIN_FLAGS:
|
if f"-{module_name}" in PLUGIN_FLAGS:
|
||||||
continue
|
continue
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user