🐛 修改webui导入路径

This commit is contained in:
HibiKier 2024-12-18 20:42:53 +08:00
parent ccf043d670
commit 9e92ad6baa
16 changed files with 71 additions and 75 deletions

View File

@ -105,6 +105,7 @@ ignore = [
"RUF001", # ambiguous-unicode-character-string "RUF001", # ambiguous-unicode-character-string
"RUF002", # ambiguous-unicode-character-docstring "RUF002", # ambiguous-unicode-character-docstring
"RUF003", # ambiguous-unicode-character-comment "RUF003", # ambiguous-unicode-character-comment
"TID252", # relative-imports
] ]
[tool.ruff.lint.isort] [tool.ruff.lint.isort]

View File

@ -1,10 +1,10 @@
import aiofiles import aiofiles
import nonebot import nonebot
import ujson as json
from nonebot import get_loaded_plugins from nonebot import get_loaded_plugins
from nonebot.drivers import Driver from nonebot.drivers import Driver
from nonebot.plugin import Plugin, PluginMetadata from nonebot.plugin import Plugin, PluginMetadata
from ruamel.yaml import YAML from ruamel.yaml import YAML
import ujson as json
from zhenxun.configs.path_config import DATA_PATH from zhenxun.configs.path_config import DATA_PATH
from zhenxun.configs.utils import PluginExtraData, PluginSetting from zhenxun.configs.utils import PluginExtraData, PluginSetting
@ -120,7 +120,7 @@ async def _():
if module_list := await PluginInfo.all().values("id", "module_path"): if module_list := await PluginInfo.all().values("id", "module_path"):
module2id = {m["module_path"]: m["id"] for m in module_list} module2id = {m["module_path"]: m["id"] for m in module_list}
for plugin in get_loaded_plugins(): 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) await _handle_setting(plugin, plugin_list, limit_list, task_list)
create_list = [] create_list = []
update_list = [] update_list = []
@ -198,8 +198,8 @@ async def _():
10, 10,
) )
await data_migration() await data_migration()
await PluginInfo.filter(module_path__in=load_plugin).update(load_status=True) await PluginInfo.filter(module__in=load_plugin).update(load_status=True)
await PluginInfo.filter(module_path__not_in=load_plugin).update(load_status=False) await PluginInfo.filter(module__not_in=load_plugin).update(load_status=False)
manager.init() manager.init()
if limit_list: if limit_list:
for limit in limit_list: for limit in limit_list:

View File

@ -1,13 +1,12 @@
import asyncio import asyncio
from collections.abc import Callable
import inspect import inspect
import time import time
from collections.abc import Callable
from types import MappingProxyType from types import MappingProxyType
from typing import Any, Literal from typing import Any, Literal
from nonebot.adapters import Bot, Event from nonebot.adapters import Bot, Event
from nonebot_plugin_alconna import UniMessage, UniMsg from nonebot_plugin_alconna import UniMessage, UniMsg
from nonebot_plugin_session import EventSession
from nonebot_plugin_uninfo import Uninfo from nonebot_plugin_uninfo import Uninfo
from pydantic import BaseModel, create_model from pydantic import BaseModel, create_model
@ -52,8 +51,8 @@ class Goods(BaseModel):
"""单次使用最大次数""" """单次使用最大次数"""
model: Any = None model: Any = None
"""model""" """model"""
session: EventSession | None = None session: Uninfo | None = None
"""EventSession""" """Uninfo"""
class ShopParam(BaseModel): class ShopParam(BaseModel):
@ -75,8 +74,8 @@ class ShopParam(BaseModel):
"""是否发送使用成功信息""" """是否发送使用成功信息"""
max_num_limit: int = 1 max_num_limit: int = 1
"""单次使用最大次数""" """单次使用最大次数"""
session: EventSession | None = None session: Uninfo | None = None
"""EventSession""" """Uninfo"""
message: UniMsg message: UniMsg
"""UniMessage""" """UniMessage"""
@ -143,7 +142,7 @@ class ShopManage:
cls, cls,
bot: Bot, bot: Bot,
event: Event, event: Event,
session: EventSession, session: Uninfo,
message: UniMsg, message: UniMsg,
goods: Goods, goods: Goods,
num: int, num: int,
@ -158,14 +157,19 @@ class ShopManage:
num: 数量 num: 数量
text: 其他信息 text: 其他信息
""" """
group_id = None
if session.group:
group_id = (
session.group.parent.id if session.group.parent else session.group.id
)
_kwargs = goods.params _kwargs = goods.params
model = goods.model( model = goods.model(
**{ **{
"goods_name": goods.name, "goods_name": goods.name,
"bot": bot, "bot": bot,
"event": event, "event": event,
"user_id": session.id1, "user_id": session.user.id,
"group_id": session.id3 or session.id2, "group_id": group_id,
"num": num, "num": num,
"text": text, "text": text,
"session": session, "session": session,
@ -176,8 +180,8 @@ class ShopManage:
**_kwargs, **_kwargs,
"_bot": bot, "_bot": bot,
"event": event, "event": event,
"user_id": session.id1, "user_id": session.user.id,
"group_id": session.id3 or session.id2, "group_id": group_id,
"num": num, "num": num,
"text": text, "text": text,
"goods_name": goods.name, "goods_name": goods.name,
@ -189,7 +193,7 @@ class ShopManage:
cls, cls,
args: MappingProxyType, args: MappingProxyType,
param: ShopParam, param: ShopParam,
session: EventSession, session: Uninfo,
**kwargs, **kwargs,
) -> list[Any]: ) -> list[Any]:
"""解析参数 """解析参数
@ -253,7 +257,7 @@ class ShopManage:
cls, cls,
goods: Goods, goods: Goods,
param: ShopParam, param: ShopParam,
session: EventSession, session: Uninfo,
**kwargs, **kwargs,
) -> str | UniMessage | None: ) -> str | UniMessage | None:
"""运行道具函数 """运行道具函数
@ -285,7 +289,7 @@ class ShopManage:
cls, cls,
bot: Bot, bot: Bot,
event: Event, event: Event,
session: EventSession, session: Uninfo,
message: UniMsg, message: UniMsg,
goods_name: str, goods_name: str,
num: int, num: int,
@ -307,7 +311,7 @@ class ShopManage:
""" """
if goods_name.isdigit(): if goods_name.isdigit():
try: 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)] uuid = list(user.props.keys())[int(goods_name)]
goods_info = await GoodsInfo.get_or_none(uuid=uuid) goods_info = await GoodsInfo.get_or_none(uuid=uuid)
except IndexError: except IndexError:

View File

@ -2,11 +2,12 @@ from decimal import Decimal
import nonebot import nonebot
from nonebot.drivers import Driver 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.sign_user import SignUser
from zhenxun.models.user_console import UserConsole from zhenxun.models.user_console import UserConsole
from zhenxun.utils.decorator.shop import shop_register from zhenxun.utils.decorator.shop import shop_register
from zhenxun.utils.platform import PlatformUtils
driver: Driver = nonebot.get_driver() driver: Driver = nonebot.get_driver()
@ -38,15 +39,15 @@ driver: Driver = nonebot.get_driver()
"好感度双倍加持卡Ⅲ_prob": 0.3, "好感度双倍加持卡Ⅲ_prob": 0.3,
}, # type: ignore }, # type: ignore
) )
async def _(session: EventSession, user_id: int, prob: float): async def _(session: Uninfo, user_id: int, prob: float):
if session.id1: platform = PlatformUtils.get_platform(session)
user_console = await UserConsole.get_user(session.id1, session.platform) user_console = await UserConsole.get_user(session.user.id, platform)
user, _ = await SignUser.get_or_create( user, _ = await SignUser.get_or_create(
user_id=user_id, user_id=user_id,
defaults={"platform": session.platform, "user_console": user_console}, defaults={"platform": platform, "user_console": user_console},
) )
user.add_probability = Decimal(prob) user.add_probability = Decimal(prob)
await user.save(update_fields=["add_probability"]) await user.save(update_fields=["add_probability"])
@shop_register( @shop_register(

View File

@ -1,23 +1,19 @@
from datetime import datetime, timedelta from datetime import datetime, timedelta
import nonebot
from fastapi import APIRouter from fastapi import APIRouter
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
import nonebot
from nonebot import require from nonebot import require
from nonebot.config import Config from nonebot.config import Config
from tortoise.expressions import RawSQL from tortoise.expressions import RawSQL
from tortoise.functions import Count 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.bot_connect_log import BotConnectLog
from zhenxun.models.chat_history import ChatHistory from zhenxun.models.chat_history import ChatHistory
from zhenxun.models.statistics import Statistics from zhenxun.models.statistics import Statistics
from ....base_model import BaseResultModel, QueryModel, Result
from ....utils import authentication
from .data_source import BotManage from .data_source import BotManage
from .model import AllChatAndCallCount, BotInfo, ChatCallMonthCount, QueryChatCallCount from .model import AllChatAndCallCount, BotInfo, ChatCallMonthCount, QueryChatCallCount

View File

@ -1,15 +1,15 @@
from datetime import datetime, timedelta
import time import time
from datetime import datetime, timedelta
import nonebot import nonebot
from nonebot.adapters import Bot from nonebot.adapters import Bot
from nonebot.drivers import Driver 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.chat_history import ChatHistory
from zhenxun.models.statistics import Statistics from zhenxun.models.statistics import Statistics
from zhenxun.utils.platform import PlatformUtils from zhenxun.utils.platform import PlatformUtils
from ..main.data_source import bot_live
from .model import BotInfo from .model import BotInfo
driver: Driver = nonebot.get_driver() driver: Driver = nonebot.get_driver()

View File

@ -1,20 +1,16 @@
import nonebot
from fastapi import APIRouter, Request from fastapi import APIRouter, Request
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
import nonebot
from nonebot.drivers import Driver from nonebot.drivers import Driver
from tortoise import Tortoise from tortoise import Tortoise
from tortoise.exceptions import OperationalError 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.configs.config import BotConfig
from zhenxun.models.plugin_info import PluginInfo from zhenxun.models.plugin_info import PluginInfo
from zhenxun.models.task_info import TaskInfo 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.model import Column, SqlModel, SqlText
from .models.sql_log import SqlLog from .models.sql_log import SqlLog

View File

@ -1,20 +1,17 @@
import asyncio import asyncio
import contextlib import contextlib
import time
from datetime import datetime, timedelta from datetime import datetime, timedelta
from pathlib import Path from pathlib import Path
import time
import nonebot
from fastapi import APIRouter from fastapi import APIRouter
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
import nonebot
from nonebot.config import Config from nonebot.config import Config
from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState
from tortoise.functions import Count from tortoise.functions import Count
from websockets.exceptions import ConnectionClosedError, ConnectionClosedOK 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.bot_connect_log import BotConnectLog
from zhenxun.models.chat_history import ChatHistory from zhenxun.models.chat_history import ChatHistory
from zhenxun.models.group_console import GroupConsole 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.services.log import logger
from zhenxun.utils.platform import PlatformUtils 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 .data_source import bot_live
from .model import ( from .model import (
ActiveGroup, ActiveGroup,

View File

@ -1,12 +1,9 @@
import nonebot
from fastapi import APIRouter from fastapi import APIRouter
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
import nonebot
from nonebot.adapters.onebot.v11 import ActionFailed from nonebot.adapters.onebot.v11 import ActionFailed
from tortoise.functions import Count 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.configs.config import BotConfig
from zhenxun.models.ban_console import BanConsole from zhenxun.models.ban_console import BanConsole
from zhenxun.models.chat_history import ChatHistory 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.exception import NotFoundError
from zhenxun.utils.platform import PlatformUtils 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 ( from .model import (
ClearRequest, ClearRequest,
DeleteFriend, DeleteFriend,

View File

@ -1,15 +1,15 @@
from fastapi import APIRouter
import nonebot import nonebot
from fastapi import APIRouter
from nonebot import on_message from nonebot import on_message
from nonebot.adapters.onebot.v11 import MessageEvent from nonebot.adapters.onebot.v11 import MessageEvent
from nonebot_plugin_alconna import At, Hyper, Image, Text, UniMsg from nonebot_plugin_alconna import At, Hyper, Image, Text, UniMsg
from nonebot_plugin_session import EventSession from nonebot_plugin_session import EventSession
from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState 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.models.group_member_info import GroupInfoUser
from zhenxun.utils.depends import UserName from zhenxun.utils.depends import UserName
from ....config import AVA_URL
from .model import Message, MessageItem from .model import Message, MessageItem
driver = nonebot.get_driver() driver = nonebot.get_driver()

View File

@ -4,13 +4,13 @@ import cattrs
from fastapi import APIRouter, Query from fastapi import APIRouter, Query
from fastapi.responses import JSONResponse 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.configs.config import Config
from zhenxun.models.plugin_info import PluginInfo as DbPluginInfo from zhenxun.models.plugin_info import PluginInfo as DbPluginInfo
from zhenxun.services.log import logger from zhenxun.services.log import logger
from zhenxun.utils.enum import BlockType, PluginType from zhenxun.utils.enum import BlockType, PluginType
from ....base_model import Result
from ....utils import authentication
from .model import ( from .model import (
PluginConfig, PluginConfig,
PluginCount, PluginCount,

View File

@ -2,10 +2,10 @@ from fastapi import APIRouter
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from nonebot import require 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 zhenxun.models.plugin_info import PluginInfo
from ....base_model import Result
from ....utils import authentication
from .model import PluginIr from .model import PluginIr
router = APIRouter(prefix="/store") router = APIRouter(prefix="/store")

View File

@ -1,15 +1,15 @@
import os import os
from pathlib import Path
import shutil import shutil
from pathlib import Path
import aiofiles import aiofiles
from fastapi import APIRouter from fastapi import APIRouter
from fastapi.responses import JSONResponse 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 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 from .model import AddFile, DeleteFile, DirFile, RenameFile, SaveFile
router = APIRouter(prefix="/system") router = APIRouter(prefix="/system")

View File

@ -1,20 +1,21 @@
from datetime import timedelta
import json import json
from datetime import timedelta
import aiofiles import aiofiles
import nonebot
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from fastapi.security import OAuth2PasswordRequestForm from fastapi.security import OAuth2PasswordRequestForm
import nonebot
from zhenxun.builtin_plugins.web_ui.base_model import Result from zhenxun.configs.config import Config
from zhenxun.builtin_plugins.web_ui.utils import (
from ....base_model import Result
from ....utils import (
ACCESS_TOKEN_EXPIRE_MINUTES, ACCESS_TOKEN_EXPIRE_MINUTES,
create_token, create_token,
get_user, get_user,
token_data, token_data,
token_file, token_file,
) )
from zhenxun.configs.config import Config
app = nonebot.get_app() app = nonebot.get_app()

View File

@ -2,9 +2,9 @@ from fastapi import APIRouter, FastAPI
from fastapi.responses import FileResponse from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from zhenxun.builtin_plugins.web_ui.config import PUBLIC_PATH
from zhenxun.services.log import logger from zhenxun.services.log import logger
from ..config import PUBLIC_PATH
from .data_source import COMMAND_NAME, update_webui_assets from .data_source import COMMAND_NAME, update_webui_assets
router = APIRouter() router = APIRouter()

View File

@ -1,18 +1,15 @@
from pathlib import Path
import shutil import shutil
import zipfile import zipfile
from pathlib import Path
from nonebot.utils import run_sync 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.services.log import logger
from zhenxun.utils.github_utils import GithubUtils from zhenxun.utils.github_utils import GithubUtils
from zhenxun.utils.http_utils import AsyncHttpx from zhenxun.utils.http_utils import AsyncHttpx
from ..config import PUBLIC_PATH, TMP_PATH, WEBUI_DIST_GITHUB_URL
COMMAND_NAME = "WebUI资源管理" COMMAND_NAME = "WebUI资源管理"