fix #1110
This commit is contained in:
parent
ae9bab2981
commit
d47639bada
@ -30,12 +30,11 @@ class PluginManager(metaclass=Singleton):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.siteshelper = SitesHelper()
|
self.siteshelper = SitesHelper()
|
||||||
self.pluginhelper = PluginHelper()
|
self.pluginhelper = PluginHelper()
|
||||||
self.update_online_plugin()
|
self.systemconfig = SystemConfigOper()
|
||||||
|
self.install_online_plugin()
|
||||||
self.init_config()
|
self.init_config()
|
||||||
|
|
||||||
def init_config(self):
|
def init_config(self):
|
||||||
# 配置管理
|
|
||||||
self.systemconfig = SystemConfigOper()
|
|
||||||
# 停止已有插件
|
# 停止已有插件
|
||||||
self.stop()
|
self.stop()
|
||||||
# 启动插件
|
# 启动插件
|
||||||
@ -103,35 +102,32 @@ class PluginManager(metaclass=Singleton):
|
|||||||
self._plugins = {}
|
self._plugins = {}
|
||||||
self._running_plugins = {}
|
self._running_plugins = {}
|
||||||
|
|
||||||
@staticmethod
|
def install_online_plugin(self):
|
||||||
def update_online_plugin():
|
|
||||||
"""
|
"""
|
||||||
更新三方插件
|
安装本地不存在的在线插件
|
||||||
"""
|
"""
|
||||||
|
logger.info("开始安装在线插件...")
|
||||||
# 已安装插件
|
# 已安装插件
|
||||||
install_plugins = SystemConfigOper().get(SystemConfigKey.UserInstalledPlugins) or []
|
install_plugins = self.systemconfig.get(SystemConfigKey.UserInstalledPlugins) or []
|
||||||
# 在线插件
|
# 在线插件
|
||||||
online_plugins = PluginManager().get_online_plugins()
|
online_plugins = self.get_online_plugins()
|
||||||
if not online_plugins:
|
if not online_plugins:
|
||||||
logger.error("未获取到在线插件,停止运行")
|
logger.error("未获取到在线插件")
|
||||||
return
|
return
|
||||||
|
|
||||||
# 支持更新的插件自动更新
|
# 支持更新的插件自动更新
|
||||||
for plugin in online_plugins:
|
for plugin in online_plugins:
|
||||||
# 只处理已安装的插件
|
# 只处理已安装的插件
|
||||||
if str(plugin.get("id")) in install_plugins:
|
if plugin.get("id") in install_plugins and not plugin.get("installed"):
|
||||||
# 有更新 或者 重置后本地未安装的
|
|
||||||
if plugin.get("has_update") or not plugin.get("installed"):
|
|
||||||
# 下载安装
|
# 下载安装
|
||||||
state, msg = PluginHelper().install(pid=plugin.get("id"),
|
state, msg = self.pluginhelper.install(pid=plugin.get("id"),
|
||||||
repo_url=plugin.get("repo_url"))
|
fi repo_url=plugin.get("repo_url"))
|
||||||
# 安装失败
|
# 安装失败
|
||||||
if not state:
|
if not state:
|
||||||
logger.error(
|
logger.error(
|
||||||
f"插件 {plugin.get('plugin_name')} 更新失败,最新版本 {plugin.get('plugin_version')}")
|
f"插件 {plugin.get('plugin_name')} v{plugin.get('plugin_version')} 安装失败:{msg}")
|
||||||
continue
|
continue
|
||||||
|
logger.info(f"插件 {plugin.get('plugin_name')} 安装成功,版本:{plugin.get('plugin_version')}")
|
||||||
logger.info(f"插件 {plugin.get('plugin_name')} 更新成功,最新版本 {plugin.get('plugin_version')}")
|
logger.info("在线插件安装完成")
|
||||||
|
|
||||||
def get_plugin_config(self, pid: str) -> dict:
|
def get_plugin_config(self, pid: str) -> dict:
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user