Merge remote-tracking branch 'origin/main'

This commit is contained in:
jxxghp 2024-05-30 12:39:02 +08:00
commit db4bda3b73

View File

@ -26,7 +26,6 @@ from app.utils.system import SystemUtils
class PluginMonitorHandler(FileSystemEventHandler): class PluginMonitorHandler(FileSystemEventHandler):
# 计时器 # 计时器
__reload_timer = None __reload_timer = None
# 防抖时间间隔 # 防抖时间间隔
@ -350,6 +349,7 @@ class PluginManager(metaclass=Singleton):
:param pid: 插件ID :param pid: 插件ID
:param key: 仪表盘key :param key: 仪表盘key
""" """
def __get_params_count(func: Callable): def __get_params_count(func: Callable):
""" """
获取函数的参数信息 获取函数的参数信息
@ -630,14 +630,14 @@ class PluginManager(metaclass=Singleton):
all_plugins.sort( all_plugins.sort(
key=lambda x: settings.PLUGIN_MARKET.split(",").index(x.repo_url) if x.repo_url else 0 key=lambda x: settings.PLUGIN_MARKET.split(",").index(x.repo_url) if x.repo_url else 0
) )
# 按插件ID和版本号去重相同插件以前面的为准
result = [] # 相同ID的插件保留版本号最大版本
_dup = [] max_versions = {}
for p in all_plugins: for p in all_plugins:
key = f"{p.id}v{p.plugin_version}" if p.id not in max_versions or StringUtils.compare_version(p.plugin_version, max_versions[p.id]) > 0:
if key not in _dup: max_versions[p.id] = p.plugin_version
_dup.append(key) result = [p for p in all_plugins if
result.append(p) p.plugin_version == max_versions[p.id]]
logger.info(f"共获取到 {len(result)} 个第三方插件") logger.info(f"共获取到 {len(result)} 个第三方插件")
return result return result