From a8e4d2903130fd4cde602effe20ceaba68d20f52 Mon Sep 17 00:00:00 2001 From: HibiKier <45528451+HibiKier@users.noreply.github.com> Date: Thu, 19 Dec 2024 09:51:31 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E6=94=B9webui=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E8=B7=AF=E5=BE=84=20(#1783)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 修改webui导入路径 * :rotating_light: auto fix by pre-commit hooks --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- pyproject.toml | 1 + zhenxun/builtin_plugins/init/init_plugin.py | 6 ++-- zhenxun/builtin_plugins/shop/_data_source.py | 32 +++++++++++-------- .../builtin_plugins/sign_in/goods_register.py | 21 ++++++------ .../web_ui/api/tabs/dashboard/__init__.py | 8 ++--- .../web_ui/api/tabs/dashboard/data_source.py | 2 +- .../web_ui/api/tabs/database/__init__.py | 8 ++--- .../web_ui/api/tabs/main/__init__.py | 6 ++-- .../web_ui/api/tabs/manage/__init__.py | 6 ++-- .../web_ui/api/tabs/manage/chat.py | 2 +- .../web_ui/api/tabs/plugin_manage/__init__.py | 4 +-- .../web_ui/api/tabs/plugin_manage/store.py | 4 +-- .../web_ui/api/tabs/system/__init__.py | 4 +-- .../builtin_plugins/web_ui/auth/__init__.py | 7 ++-- .../builtin_plugins/web_ui/public/__init__.py | 2 +- .../web_ui/public/data_source.py | 7 ++-- 16 files changed, 58 insertions(+), 62 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 53a6af78..79545671 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -105,6 +105,7 @@ ignore = [ "RUF001", # ambiguous-unicode-character-string "RUF002", # ambiguous-unicode-character-docstring "RUF003", # ambiguous-unicode-character-comment + "TID252", # relative-imports ] [tool.ruff.lint.isort] diff --git a/zhenxun/builtin_plugins/init/init_plugin.py b/zhenxun/builtin_plugins/init/init_plugin.py index 366df312..ffcc8b4d 100644 --- a/zhenxun/builtin_plugins/init/init_plugin.py +++ b/zhenxun/builtin_plugins/init/init_plugin.py @@ -120,7 +120,7 @@ async def _(): if module_list := await PluginInfo.all().values("id", "module_path"): module2id = {m["module_path"]: m["id"] for m in module_list} for plugin in get_loaded_plugins(): - load_plugin.append(plugin.module_name) + load_plugin.append(plugin.name) await _handle_setting(plugin, plugin_list, limit_list, task_list) create_list = [] update_list = [] @@ -198,8 +198,8 @@ async def _(): 10, ) await data_migration() - await PluginInfo.filter(module_path__in=load_plugin).update(load_status=True) - await PluginInfo.filter(module_path__not_in=load_plugin).update(load_status=False) + await PluginInfo.filter(module__in=load_plugin).update(load_status=True) + await PluginInfo.filter(module__not_in=load_plugin).update(load_status=False) manager.init() if limit_list: for limit in limit_list: diff --git a/zhenxun/builtin_plugins/shop/_data_source.py b/zhenxun/builtin_plugins/shop/_data_source.py index 58657f86..45e0f754 100644 --- a/zhenxun/builtin_plugins/shop/_data_source.py +++ b/zhenxun/builtin_plugins/shop/_data_source.py @@ -7,7 +7,6 @@ from typing import Any, Literal from nonebot.adapters import Bot, Event from nonebot_plugin_alconna import UniMessage, UniMsg -from nonebot_plugin_session import EventSession from nonebot_plugin_uninfo import Uninfo from pydantic import BaseModel, create_model @@ -52,8 +51,8 @@ class Goods(BaseModel): """单次使用最大次数""" model: Any = None """model""" - session: EventSession | None = None - """EventSession""" + session: Uninfo | None = None + """Uninfo""" class ShopParam(BaseModel): @@ -75,8 +74,8 @@ class ShopParam(BaseModel): """是否发送使用成功信息""" max_num_limit: int = 1 """单次使用最大次数""" - session: EventSession | None = None - """EventSession""" + session: Uninfo | None = None + """Uninfo""" message: UniMsg """UniMessage""" @@ -143,7 +142,7 @@ class ShopManage: cls, bot: Bot, event: Event, - session: EventSession, + session: Uninfo, message: UniMsg, goods: Goods, num: int, @@ -158,14 +157,19 @@ class ShopManage: num: 数量 text: 其他信息 """ + group_id = None + if session.group: + group_id = ( + session.group.parent.id if session.group.parent else session.group.id + ) _kwargs = goods.params model = goods.model( **{ "goods_name": goods.name, "bot": bot, "event": event, - "user_id": session.id1, - "group_id": session.id3 or session.id2, + "user_id": session.user.id, + "group_id": group_id, "num": num, "text": text, "session": session, @@ -176,8 +180,8 @@ class ShopManage: **_kwargs, "_bot": bot, "event": event, - "user_id": session.id1, - "group_id": session.id3 or session.id2, + "user_id": session.user.id, + "group_id": group_id, "num": num, "text": text, "goods_name": goods.name, @@ -189,7 +193,7 @@ class ShopManage: cls, args: MappingProxyType, param: ShopParam, - session: EventSession, + session: Uninfo, **kwargs, ) -> list[Any]: """解析参数 @@ -253,7 +257,7 @@ class ShopManage: cls, goods: Goods, param: ShopParam, - session: EventSession, + session: Uninfo, **kwargs, ) -> str | UniMessage | None: """运行道具函数 @@ -285,7 +289,7 @@ class ShopManage: cls, bot: Bot, event: Event, - session: EventSession, + session: Uninfo, message: UniMsg, goods_name: str, num: int, @@ -307,7 +311,7 @@ class ShopManage: """ if goods_name.isdigit(): try: - user = await UserConsole.get_user(user_id=session.id1) # type: ignore + user = await UserConsole.get_user(user_id=session.user.id) uuid = list(user.props.keys())[int(goods_name)] goods_info = await GoodsInfo.get_or_none(uuid=uuid) except IndexError: diff --git a/zhenxun/builtin_plugins/sign_in/goods_register.py b/zhenxun/builtin_plugins/sign_in/goods_register.py index a280d9a7..f7a65359 100644 --- a/zhenxun/builtin_plugins/sign_in/goods_register.py +++ b/zhenxun/builtin_plugins/sign_in/goods_register.py @@ -2,11 +2,12 @@ from decimal import Decimal import nonebot from nonebot.drivers import Driver -from nonebot_plugin_session import EventSession +from nonebot_plugin_uninfo import Uninfo from zhenxun.models.sign_user import SignUser from zhenxun.models.user_console import UserConsole from zhenxun.utils.decorator.shop import shop_register +from zhenxun.utils.platform import PlatformUtils driver: Driver = nonebot.get_driver() @@ -38,15 +39,15 @@ driver: Driver = nonebot.get_driver() "好感度双倍加持卡Ⅲ_prob": 0.3, }, # type: ignore ) -async def _(session: EventSession, user_id: int, prob: float): - if session.id1: - user_console = await UserConsole.get_user(session.id1, session.platform) - user, _ = await SignUser.get_or_create( - user_id=user_id, - defaults={"platform": session.platform, "user_console": user_console}, - ) - user.add_probability = Decimal(prob) - await user.save(update_fields=["add_probability"]) +async def _(session: Uninfo, user_id: int, prob: float): + platform = PlatformUtils.get_platform(session) + user_console = await UserConsole.get_user(session.user.id, platform) + user, _ = await SignUser.get_or_create( + user_id=user_id, + defaults={"platform": platform, "user_console": user_console}, + ) + user.add_probability = Decimal(prob) + await user.save(update_fields=["add_probability"]) @shop_register( diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py index 22c3835d..fba85be1 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py @@ -8,16 +8,12 @@ from nonebot.config import Config from tortoise.expressions import RawSQL from tortoise.functions import Count -from zhenxun.builtin_plugins.web_ui.base_model import ( - BaseResultModel, - QueryModel, - Result, -) -from zhenxun.builtin_plugins.web_ui.utils import authentication from zhenxun.models.bot_connect_log import BotConnectLog from zhenxun.models.chat_history import ChatHistory from zhenxun.models.statistics import Statistics +from ....base_model import BaseResultModel, QueryModel, Result +from ....utils import authentication from .data_source import BotManage from .model import AllChatAndCallCount, BotInfo, ChatCallMonthCount, QueryChatCallCount diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py index 8e7b0cdf..02754a22 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py @@ -5,11 +5,11 @@ import nonebot from nonebot.adapters import Bot from nonebot.drivers import Driver -from zhenxun.builtin_plugins.web_ui.api.tabs.main.data_source import bot_live from zhenxun.models.chat_history import ChatHistory from zhenxun.models.statistics import Statistics from zhenxun.utils.platform import PlatformUtils +from ..main.data_source import bot_live from .model import BotInfo driver: Driver = nonebot.get_driver() diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py index beb7e486..efabfdfa 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py @@ -5,16 +5,12 @@ from nonebot.drivers import Driver from tortoise import Tortoise from tortoise.exceptions import OperationalError -from zhenxun.builtin_plugins.web_ui.base_model import ( - BaseResultModel, - QueryModel, - Result, -) -from zhenxun.builtin_plugins.web_ui.utils import authentication from zhenxun.configs.config import BotConfig from zhenxun.models.plugin_info import PluginInfo from zhenxun.models.task_info import TaskInfo +from ....base_model import BaseResultModel, QueryModel, Result +from ....utils import authentication from .models.model import Column, SqlModel, SqlText from .models.sql_log import SqlLog diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py index 47ee51da..91341cc5 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py @@ -12,9 +12,6 @@ from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState from tortoise.functions import Count from websockets.exceptions import ConnectionClosedError, ConnectionClosedOK -from zhenxun.builtin_plugins.web_ui.base_model import Result -from zhenxun.builtin_plugins.web_ui.config import AVA_URL, GROUP_AVA_URL, QueryDateType -from zhenxun.builtin_plugins.web_ui.utils import authentication, get_system_status from zhenxun.models.bot_connect_log import BotConnectLog from zhenxun.models.chat_history import ChatHistory from zhenxun.models.group_console import GroupConsole @@ -23,6 +20,9 @@ from zhenxun.models.statistics import Statistics from zhenxun.services.log import logger from zhenxun.utils.platform import PlatformUtils +from ....base_model import Result +from ....config import AVA_URL, GROUP_AVA_URL, QueryDateType +from ....utils import authentication, get_system_status from .data_source import bot_live from .model import ( ActiveGroup, diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py index feaa75a3..12d3cbdb 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py @@ -4,9 +4,6 @@ import nonebot from nonebot.adapters.onebot.v11 import ActionFailed from tortoise.functions import Count -from zhenxun.builtin_plugins.web_ui.base_model import Result -from zhenxun.builtin_plugins.web_ui.config import AVA_URL, GROUP_AVA_URL -from zhenxun.builtin_plugins.web_ui.utils import authentication from zhenxun.configs.config import BotConfig from zhenxun.models.ban_console import BanConsole from zhenxun.models.chat_history import ChatHistory @@ -20,6 +17,9 @@ from zhenxun.utils.enum import RequestHandleType, RequestType from zhenxun.utils.exception import NotFoundError from zhenxun.utils.platform import PlatformUtils +from ....base_model import Result +from ....config import AVA_URL, GROUP_AVA_URL +from ....utils import authentication from .model import ( ClearRequest, DeleteFriend, diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py index a96ef9ad..164e260b 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py @@ -6,10 +6,10 @@ from nonebot_plugin_alconna import At, Hyper, Image, Text, UniMsg from nonebot_plugin_session import EventSession from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState -from zhenxun.builtin_plugins.web_ui.config import AVA_URL from zhenxun.models.group_member_info import GroupInfoUser from zhenxun.utils.depends import UserName +from ....config import AVA_URL from .model import Message, MessageItem driver = nonebot.get_driver() diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py index a9ef17b6..fb77ac2d 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py @@ -4,13 +4,13 @@ import cattrs from fastapi import APIRouter, Query from fastapi.responses import JSONResponse -from zhenxun.builtin_plugins.web_ui.base_model import Result -from zhenxun.builtin_plugins.web_ui.utils import authentication from zhenxun.configs.config import Config from zhenxun.models.plugin_info import PluginInfo as DbPluginInfo from zhenxun.services.log import logger from zhenxun.utils.enum import BlockType, PluginType +from ....base_model import Result +from ....utils import authentication from .model import ( PluginConfig, PluginCount, diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py index 518f8266..068c9ee5 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py @@ -2,10 +2,10 @@ from fastapi import APIRouter from fastapi.responses import JSONResponse from nonebot import require -from zhenxun.builtin_plugins.web_ui.base_model import Result -from zhenxun.builtin_plugins.web_ui.utils import authentication from zhenxun.models.plugin_info import PluginInfo +from ....base_model import Result +from ....utils import authentication from .model import PluginIr router = APIRouter(prefix="/store") diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py index b1e98216..6e2aeeb4 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py @@ -6,10 +6,10 @@ import aiofiles from fastapi import APIRouter from fastapi.responses import JSONResponse -from zhenxun.builtin_plugins.web_ui.base_model import Result, SystemFolderSize -from zhenxun.builtin_plugins.web_ui.utils import authentication, get_system_disk from zhenxun.utils._build_image import BuildImage +from ....base_model import Result, SystemFolderSize +from ....utils import authentication, get_system_disk from .model import AddFile, DeleteFile, DirFile, RenameFile, SaveFile router = APIRouter(prefix="/system") diff --git a/zhenxun/builtin_plugins/web_ui/auth/__init__.py b/zhenxun/builtin_plugins/web_ui/auth/__init__.py index 02f4bc0a..2eb6205d 100644 --- a/zhenxun/builtin_plugins/web_ui/auth/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/auth/__init__.py @@ -6,15 +6,16 @@ from fastapi import APIRouter, Depends from fastapi.security import OAuth2PasswordRequestForm import nonebot -from zhenxun.builtin_plugins.web_ui.base_model import Result -from zhenxun.builtin_plugins.web_ui.utils import ( +from zhenxun.configs.config import Config + +from ....base_model import Result +from ....utils import ( ACCESS_TOKEN_EXPIRE_MINUTES, create_token, get_user, token_data, token_file, ) -from zhenxun.configs.config import Config app = nonebot.get_app() diff --git a/zhenxun/builtin_plugins/web_ui/public/__init__.py b/zhenxun/builtin_plugins/web_ui/public/__init__.py index 2b1dde5f..53d4914e 100644 --- a/zhenxun/builtin_plugins/web_ui/public/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/public/__init__.py @@ -2,9 +2,9 @@ from fastapi import APIRouter, FastAPI from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles -from zhenxun.builtin_plugins.web_ui.config import PUBLIC_PATH from zhenxun.services.log import logger +from ..config import PUBLIC_PATH from .data_source import COMMAND_NAME, update_webui_assets router = APIRouter() diff --git a/zhenxun/builtin_plugins/web_ui/public/data_source.py b/zhenxun/builtin_plugins/web_ui/public/data_source.py index e6eafb45..9f5a657e 100644 --- a/zhenxun/builtin_plugins/web_ui/public/data_source.py +++ b/zhenxun/builtin_plugins/web_ui/public/data_source.py @@ -4,15 +4,12 @@ import zipfile from nonebot.utils import run_sync -from zhenxun.builtin_plugins.web_ui.config import ( - PUBLIC_PATH, - TMP_PATH, - WEBUI_DIST_GITHUB_URL, -) from zhenxun.services.log import logger from zhenxun.utils.github_utils import GithubUtils from zhenxun.utils.http_utils import AsyncHttpx +from ..config import PUBLIC_PATH, TMP_PATH, WEBUI_DIST_GITHUB_URL + COMMAND_NAME = "WebUI资源管理"