fix 插件重载

This commit is contained in:
thsrite
2024-04-13 16:16:10 +08:00
parent 7a84b20d60
commit 1ccd4cf45f
4 changed files with 27 additions and 19 deletions

View File

@@ -16,8 +16,8 @@ MoviePilot三方插件市场https://github.com/thsrite/MoviePilot-Plugins/
- 清理订阅缓存 1.0
- 添加种子下载 1.0
- 删除站点种子 1.1
- 插件更新管理 1.5
- 插件强制重装 1.2
- 插件更新管理 1.6
- 插件强制重装 1.3
- 群辉Webhook通知 1.1
- 同步CookieCloud 1.2
- 日程提醒 1.0

View File

@@ -77,11 +77,12 @@
"PluginAutoUpdate": {
"name": "插件更新管理",
"description": "监测已安装插件,推送更新提醒,可配置自动更新。",
"version": "1.5",
"version": "1.6",
"icon": "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/pluginupdate.png",
"author": "thsrite",
"level": 1,
"history": {
"v1.6": "插件重载",
"v1.5": "自动更新增加排除列表",
"v1.4": "正在运行的插件跳过更新,可选更新插件列表",
"v1.3": "配置更新提醒",
@@ -93,11 +94,12 @@
"PluginReInstall": {
"name": "插件强制重装",
"description": "卸载当前插件,强制重装。",
"version": "1.2",
"version": "1.3",
"icon": "refresh.png",
"author": "thsrite",
"level": 1,
"history": {
"v1.3": "插件重载",
"v1.2": "支持指定插件仓库地址",
"v1.1": "修复插件重载",
"v1.0": "卸载当前插件,强制重装"

View File

@@ -24,7 +24,7 @@ class PluginAutoUpdate(_PluginBase):
# 插件图标
plugin_icon = "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/pluginupdate.png"
# 插件版本
plugin_version = "1.5"
plugin_version = "1.6"
# 插件作者
plugin_author = "thsrite"
# 作者主页
@@ -66,8 +66,6 @@ class PluginAutoUpdate(_PluginBase):
self._exclude_ids = config.get("exclude_ids")
if self._enabled:
# 已安装插件版本
self.__get_install_plugin_version()
# 定时服务
self._scheduler = BackgroundScheduler(timezone=settings.TZ)
@@ -116,6 +114,9 @@ class PluginAutoUpdate(_PluginBase):
logger.error("未获取到在线插件,停止运行")
return
# 已安装插件版本
self.__get_install_plugin_version()
# 系统运行的服务
schedulers = Scheduler().list()
running_scheduler = []
@@ -162,6 +163,13 @@ class PluginAutoUpdate(_PluginBase):
plugin_reload = True
title = f"插件 {plugin.plugin_name} 更新成功"
logger.info(f"{title} {version_text}")
# 统计
PluginHelper().install_reg(plugin.id)
# 加载插件到内存
PluginManager().reload_plugin(plugin.id)
# 注册插件服务
Scheduler().update_plugin_job(plugin.id)
else:
title = f"插件 {plugin.plugin_name} 有更新啦"
@@ -184,11 +192,7 @@ class PluginAutoUpdate(_PluginBase):
image=plugin_icon)
# 重载插件管理器
if plugin_reload:
if self._update:
logger.info("开始插件重载")
PluginManager().init_config()
else:
if not plugin_reload:
logger.info("所有插件已是最新版本")
def __get_install_plugin_version(self):

View File

@@ -9,6 +9,7 @@ from typing import Any, List, Dict, Tuple, Optional
from app.log import logger
from app.schemas.types import SystemConfigKey
from app.utils.string import StringUtils
from app.scheduler import Scheduler
class PluginReInstall(_PluginBase):
@@ -19,7 +20,7 @@ class PluginReInstall(_PluginBase):
# 插件图标
plugin_icon = "refresh.png"
# 插件版本
plugin_version = "1.2"
plugin_version = "1.3"
# 插件作者
plugin_author = "thsrite"
# 作者主页
@@ -63,7 +64,6 @@ class PluginReInstall(_PluginBase):
local_plugins = self.get_local_plugins()
# 开始重载插件
plugin_reload = False
for plugin_id in list(local_plugins.keys()):
local_plugin = local_plugins.get(plugin_id)
if plugin_id in self._plugin_ids:
@@ -80,12 +80,14 @@ class PluginReInstall(_PluginBase):
logger.info(
f"插件 {local_plugin.get('plugin_name')} 重装成功,当前版本 {local_plugin.get('plugin_version')}")
plugin_reload = True
# 重载插件管理器
if plugin_reload:
logger.info("开始插件重载")
PluginManager().init_config()
# 统计
PluginHelper().install_reg(plugin_id)
# 加载插件到内存
PluginManager().reload_plugin(plugin_id)
# 注册插件服务
Scheduler().update_plugin_job(plugin_id)
@staticmethod
def get_repo_info(repo_url: str) -> Tuple[Optional[str], Optional[str]]: