✨ 重构插件商店,支持Gitee插件管理,更新相关逻辑和配置 (#1931)

This commit is contained in:
xuanerwa
2025-06-20 19:08:06 +08:00
committed by GitHub
parent 6298685e09
commit 14f5842f10
20 changed files with 472 additions and 173 deletions
@@ -1,6 +1,7 @@
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from nonebot import require
from nonebot.compat import model_dump
from zhenxun.models.plugin_info import PluginInfo
from zhenxun.services.log import logger
@@ -22,12 +23,12 @@ router = APIRouter(prefix="/store")
async def _() -> Result[dict]:
try:
require("plugin_store")
from zhenxun.builtin_plugins.plugin_store import ShopManage
from zhenxun.builtin_plugins.plugin_store import StoreManager
data = await ShopManage.get_data()
data = await StoreManager.get_data()
plugin_list = [
{**data[name].to_dict(), "name": name, "id": idx}
for idx, name in enumerate(data)
{**model_dump(plugin), "name": plugin.name, "id": idx}
for idx, plugin in enumerate(data)
]
modules = await PluginInfo.filter(load_status=True).values_list(
"module", flat=True
@@ -48,9 +49,9 @@ async def _() -> Result[dict]:
async def _(param: PluginIr) -> Result:
try:
require("plugin_store")
from zhenxun.builtin_plugins.plugin_store import ShopManage
from zhenxun.builtin_plugins.plugin_store import StoreManager
result = await ShopManage.add_plugin(param.id) # type: ignore
result = await StoreManager.add_plugin(param.id) # type: ignore
return Result.ok(info=result)
except Exception as e:
return Result.fail(f"安装插件失败: {type(e)}: {e}")
@@ -66,9 +67,9 @@ async def _(param: PluginIr) -> Result:
async def _(param: PluginIr) -> Result:
try:
require("plugin_store")
from zhenxun.builtin_plugins.plugin_store import ShopManage
from zhenxun.builtin_plugins.plugin_store import StoreManager
result = await ShopManage.update_plugin(param.id) # type: ignore
result = await StoreManager.update_plugin(param.id) # type: ignore
return Result.ok(info=result)
except Exception as e:
return Result.fail(f"更新插件失败: {type(e)}: {e}")
@@ -84,9 +85,9 @@ async def _(param: PluginIr) -> Result:
async def _(param: PluginIr) -> Result:
try:
require("plugin_store")
from zhenxun.builtin_plugins.plugin_store import ShopManage
from zhenxun.builtin_plugins.plugin_store import StoreManager
result = await ShopManage.remove_plugin(param.id) # type: ignore
result = await StoreManager.remove_plugin(param.id) # type: ignore
return Result.ok(info=result)
except Exception as e:
return Result.fail(f"移除插件失败: {type(e)}: {e}")