mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-10-30 20:05:42 +08:00
59 lines
2.1 KiB
Python
59 lines
2.1 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,
|
|
delete_plugin_data_rows=manager.delete_plugin_data_rows,
|
|
destroy_own_database=manager.destroy_plugin_own_database,
|
|
delete_data_directory=manager.delete_plugin_data_directory,
|
|
purge_instance=manager.purge_plugin_instance,
|
|
is_clone=manager.is_plugin_clone,
|
|
purge_invalid_empty_host=manager.purge_invalid_empty_plugin_instance,
|
|
)
|