This commit is contained in:
jxxghp 2023-06-19 17:42:20 +08:00
parent 626ea48bc3
commit 9d8866de47
4 changed files with 38 additions and 3 deletions

View File

@ -14,6 +14,5 @@ api_router.include_router(media.router, prefix="/media", tags=["media"])
api_router.include_router(search.router, prefix="/search", tags=["search"])
api_router.include_router(douban.router, prefix="/douban", tags=["douban"])
api_router.include_router(tmdb.router, prefix="/tmdb", tags=["tmdb"])
api_router.include_router(plugin.router, prefix="/plugin", tags=["plugin"])
api_router.include_router(history.router, prefix="/history", tags=["history"])
api_router.include_router(plugin.router, prefix="/plugin", tags=["plugin"])

View File

@ -13,7 +13,7 @@ from app.db.userauth import get_current_active_user
router = APIRouter()
@router.get("/download", summary="下载历史记录", response_model=List[schemas.Context])
@router.get("/download", summary="下载历史记录", response_model=List[schemas.DownloadHistory])
async def download_history(page: int = 1,
count: int = 30,
db: Session = Depends(get_db),
@ -24,7 +24,7 @@ async def download_history(page: int = 1,
return DownloadHistory.list_by_page(db, page, count)
@router.get("/transfer", summary="转移历史记录", response_model=List[schemas.TorrentInfo])
@router.get("/transfer", summary="转移历史记录", response_model=List[schemas.TransferHistory])
async def transfer_history(title: str = None,
page: int = 1,
count: int = 30,

View File

@ -46,6 +46,41 @@ async def set_plugin_config(plugin_id: str, conf: dict,
return schemas.Response(success=True)
@router.post("/{plugin_id}/install", summary="安装插件", response_model=schemas.Response)
async def install_plugin(plugin_id: str,
_: User = Depends(get_current_active_user)) -> Any:
"""
安装插件
"""
# 已安装插件
install_plugins = SystemConfigOper().get(SystemConfigKey.UserInstalledPlugins) or []
# 安装插件
install_plugins.append(plugin_id)
# 保存设置
SystemConfigOper().set(SystemConfigKey.UserInstalledPlugins, install_plugins)
# 重载插件管理器
PluginManager().init_config()
return schemas.Response(success=True)
@router.delete("/{plugin_id}", summary="卸载插件", response_model=schemas.Response)
async def uninstall_plugin(plugin_id: str, _: User = Depends(get_current_active_user)) -> Any:
"""
卸载插件
"""
# 删除已安装信息
install_plugins = SystemConfigOper().get(SystemConfigKey.UserInstalledPlugins) or []
for plugin in install_plugins:
if plugin == plugin_id:
install_plugins.remove(plugin)
break
# 保存
SystemConfigOper().set(SystemConfigKey.UserInstalledPlugins, install_plugins)
# 重载插件管理器
PluginManager().init_config()
return schemas.Response(success=True)
# 注册插件API
for api in PluginManager().get_plugin_apis():
router.add_api_route(**api)

View File

@ -6,3 +6,4 @@ from .subscribe import *
from .context import *
from .servarr import *
from .plugin import *
from .history import *