mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-29 03:56:43 +08:00
45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
"""插件配置与运行态刷新依赖。"""
|
|
|
|
from app.application.commands import init_commands
|
|
from app.application.plugin.config import PluginConfigCommand
|
|
from app.application.plugin.routes import register_plugin_api
|
|
from app.application.plugin.runtime import get_plugin_manager
|
|
from app.application.scheduling import update_plugin_job
|
|
from app.runtime.events import eventmanager
|
|
from app.schemas.event import PluginDataResetEventData
|
|
from app.schemas.types import ChainEventType
|
|
|
|
|
|
def get_plugin_config_command() -> PluginConfigCommand:
|
|
"""组装插件配置更新与重置用例,隔离 API 对运行时写操作的编排。"""
|
|
manager = get_plugin_manager()
|
|
|
|
def publish_reset(plugin_id: str) -> None:
|
|
"""在清理持久化数据前通知目标插件执行补偿。"""
|
|
eventmanager.send_event(
|
|
ChainEventType.PluginDataReset,
|
|
PluginDataResetEventData(
|
|
plugin_id=plugin_id,
|
|
reset_config=True,
|
|
reset_data=True,
|
|
),
|
|
)
|
|
|
|
def refresh_registrations(plugin_id: str) -> None:
|
|
"""按服务、命令、动态路由顺序刷新插件宿主注册。"""
|
|
update_plugin_job(plugin_id)
|
|
init_commands(plugin_id)
|
|
register_plugin_api(plugin_id)
|
|
|
|
return PluginConfigCommand(
|
|
save_config=manager.save_plugin_config,
|
|
initialize=manager.init_plugin,
|
|
stop=manager.stop,
|
|
delete_config=manager.delete_plugin_config,
|
|
delete_data=manager.delete_plugin_data,
|
|
reload_runtime=manager.reload_plugin,
|
|
publish_reset=publish_reset,
|
|
refresh_registrations=refresh_registrations,
|
|
mutation=manager.mutation,
|
|
)
|