mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
➖ Add fastapi dependency and remove nonebot-plugin-userinfo
This commit is contained in:
parent
e2111278d2
commit
73d2ed444e
1244
poetry.lock
generated
1244
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -23,12 +23,11 @@ strenum = "^0.4.15"
|
||||
nonebot-plugin-session = "^0.2.3"
|
||||
ujson = "^5.9.0"
|
||||
nb-cli = "^1.3.0"
|
||||
nonebot2 = "^2.1.3"
|
||||
nonebot2 = {extras = ["fastapi"], version = "^2.3.3"}
|
||||
pillow = "^10.0.0"
|
||||
retrying = "^1.3.4"
|
||||
aiofiles = "^23.2.1"
|
||||
nonebot-plugin-htmlrender = "^0.3.0"
|
||||
nonebot-plugin-userinfo = "^0.1.3"
|
||||
pypinyin = "^0.51.0"
|
||||
beautifulsoup4 = "^4.12.3"
|
||||
lxml = "^5.1.0"
|
||||
@ -61,7 +60,6 @@ plugins = [
|
||||
"nonebot_plugin_apscheduler",
|
||||
"nonebot_plugin_session",
|
||||
"nonebot_plugin_htmlrender",
|
||||
"nonebot_plugin_userinfo",
|
||||
"nonebot_plugin_alconna",
|
||||
]
|
||||
plugin_dirs = ["zhenxun/services", "zhenxun/builtin_plugins", "zhenxun/plugins"]
|
||||
|
||||
@ -1,39 +1,38 @@
|
||||
aiocache==0.12.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
aiofiles==23.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
aiosqlite==0.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
anyio==4.7.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
annotated-types==0.7.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
anyio==4.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
apscheduler==3.11.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
arclet-alconna-tools==0.7.10 ; python_version >= "3.10" and python_version < "4.0"
|
||||
arclet-alconna==1.8.35 ; python_version >= "3.10" and python_version < "4.0"
|
||||
arrow==1.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
async-timeout==5.0.1 ; python_version >= "3.10" and python_version < "3.11.0"
|
||||
asyncpg==0.30.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
attrs==24.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
attrs==24.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
beautifulsoup4==4.12.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
bilireq==0.2.3.post0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
binaryornot==0.4.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cachetools==5.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cashews==7.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cattrs==23.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
certifi==2024.8.30 ; python_version >= "3.10" and python_version < "4.0"
|
||||
certifi==2024.12.14 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cffi==1.17.1 ; python_version >= "3.10" and python_version < "4.0" and platform_python_implementation != "PyPy"
|
||||
chardet==5.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
charset-normalizer==3.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
click==8.1.7 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cn2an==0.5.22 ; python_version >= "3.10" and python_version < "4.0"
|
||||
charset-normalizer==3.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
click==8.1.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cn2an==0.5.23 ; python_version >= "3.10" and python_version < "4.0"
|
||||
colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0" and (platform_system == "Windows" or sys_platform == "win32")
|
||||
cookiecutter==2.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
cryptography==44.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
dateparser==1.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
distlib==0.3.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ecdsa==0.19.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
emoji==2.14.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
exceptiongroup==1.2.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
fastapi==0.115.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
feedparser==6.0.11 ; python_version >= "3.10" and python_version < "4.0"
|
||||
filelock==3.16.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
greenlet==3.1.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
grpcio==1.68.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
grpcio==1.69.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
h11==0.14.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
httpcore==0.16.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
httptools==0.6.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
@ -42,7 +41,7 @@ idna==3.10 ; python_version >= "3.10" and python_version < "4.0"
|
||||
imagehash==4.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
importlib-metadata==8.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
iso8601==1.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
jinja2==3.1.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
jinja2==3.1.5 ; python_version >= "3.10" and python_version < "4.0"
|
||||
loguru==0.7.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
lxml==5.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
markdown-it-py==3.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
@ -54,17 +53,16 @@ multidict==6.1.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nb-cli==1.4.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nepattern==0.7.7 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-adapter-onebot==2.4.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-alconna==0.54.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-alconna==0.54.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-apscheduler==0.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-htmlrender==0.3.5 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-session==0.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-uninfo==0.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-userinfo==0.1.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot-plugin-waiter==0.8.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot2==2.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot2[fastapi]==2.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot2==2.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
nonebot2[fastapi]==2.4.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
noneprompt==0.1.9 ; python_version >= "3.10" and python_version < "4.0"
|
||||
numpy==2.2.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
numpy==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pillow==10.4.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
platformdirs==4.3.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
playwright==1.49.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
@ -76,12 +74,13 @@ psutil==5.9.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||
py-cpuinfo==9.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyasn1==0.6.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pycparser==2.22 ; python_version >= "3.10" and python_version < "4.0" and platform_python_implementation != "PyPy"
|
||||
pydantic==1.10.18 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pydantic-core==2.27.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pydantic==2.10.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyee==12.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pyfiglet==1.0.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pygments==2.18.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pygments==2.19.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pygtrie==2.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pymdown-extensions==10.12 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pymdown-extensions==10.14 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pypika-tortoise==0.1.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
pypinyin==0.51.0 ; python_version >= "3.10" and python_version < "4"
|
||||
python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
@ -100,9 +99,8 @@ rfc3986[idna2008]==1.5.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
rich==13.9.4 ; python_version >= "3.10" and python_version < "4.0"
|
||||
rsa==4.9 ; python_version >= "3.10" and python_version < "4"
|
||||
ruamel-yaml-clib==0.2.12 ; platform_python_implementation == "CPython" and python_version < "3.13" and python_version >= "3.10"
|
||||
ruamel-yaml==0.18.6 ; python_version >= "3.10" and python_version < "4.0"
|
||||
scipy==1.14.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
setuptools==75.6.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ruamel-yaml==0.18.10 ; python_version >= "3.10" and python_version < "4.0"
|
||||
scipy==1.15.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
sgmllib3k==1.0.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
six==1.17.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
sniffio==1.3.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
@ -113,16 +111,16 @@ tarina==0.6.8 ; python_version >= "3.10" and python_version < "4.0"
|
||||
text-unidecode==1.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tomli==2.2.1 ; python_version >= "3.10" and python_version < "3.11"
|
||||
tomlkit==0.13.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tortoise-orm[asyncpg]==0.20.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tortoise-orm[asyncpg]==0.20.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
types-python-dateutil==2.9.0.20241206 ; python_version >= "3.10" and python_version < "4.0"
|
||||
typing-extensions==4.12.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
tzdata==2024.2 ; python_version >= "3.10" and python_version < "4.0" and platform_system == "Windows"
|
||||
tzlocal==5.2 ; python_version >= "3.10" and python_version < "4.0"
|
||||
ujson==5.10.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
urllib3==2.2.3 ; python_version >= "3.10" and python_version < "4.0"
|
||||
uvicorn[standard]==0.32.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
urllib3==2.3.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
uvicorn[standard]==0.34.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
uvloop==0.21.0 ; (sys_platform != "win32" and sys_platform != "cygwin") and platform_python_implementation != "PyPy" and python_version >= "3.10" and python_version < "4.0"
|
||||
virtualenv==20.28.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
virtualenv==20.28.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
watchfiles==0.24.0 ; python_version >= "3.10" and python_version < "4.0"
|
||||
wcwidth==0.2.13 ; python_version >= "3.10" and python_version < "4.0"
|
||||
websockets==14.1 ; python_version >= "3.10" and python_version < "4.0"
|
||||
|
||||
@ -95,6 +95,8 @@ async def test_check(
|
||||
)
|
||||
ctx.receive_event(bot=bot, event=event)
|
||||
ctx.should_ignore_rule(_self_check_matcher)
|
||||
print("Template to pic call args:", mock_template_to_pic.call_args_list)
|
||||
|
||||
mock_template_to_pic.assert_awaited_once_with(
|
||||
template_path=str((mock_template_path_new / "check").absolute()),
|
||||
template_name="main.html",
|
||||
|
||||
@ -7,8 +7,7 @@ from nonebot.params import Depends, RegexGroup
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.rule import to_me
|
||||
from nonebot_plugin_alconna import Alconna, Option, on_alconna, store_true
|
||||
from nonebot_plugin_session import EventSession
|
||||
from nonebot_plugin_userinfo import EventUserInfo, UserInfo
|
||||
from nonebot_plugin_uninfo import Uninfo
|
||||
|
||||
from zhenxun.configs.config import BotConfig, Config
|
||||
from zhenxun.configs.utils import PluginExtraData, RegisterConfig
|
||||
@ -19,6 +18,7 @@ from zhenxun.services.log import logger
|
||||
from zhenxun.utils.depends import UserName
|
||||
from zhenxun.utils.enum import PluginType
|
||||
from zhenxun.utils.message import MessageUtils
|
||||
from zhenxun.utils.platform import PlatformUtils
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="昵称系统",
|
||||
@ -119,7 +119,7 @@ def CheckNickname():
|
||||
|
||||
async def dependency(
|
||||
bot: Bot,
|
||||
session: EventSession,
|
||||
session: Uninfo,
|
||||
reg_group: tuple[Any, ...] = RegexGroup(),
|
||||
):
|
||||
black_word = Config.get_config("nickname", "BLACK_WORD")
|
||||
@ -129,7 +129,7 @@ def CheckNickname():
|
||||
await MessageUtils.build_message("叫你空白?叫你虚空?叫你无名??").finish(
|
||||
at_sender=True
|
||||
)
|
||||
if session.id1 in bot.config.superusers:
|
||||
if session.user.id in bot.config.superusers:
|
||||
logger.debug(
|
||||
f"超级用户设置昵称, 跳过合法检测: {name}", "昵称设置", session=session
|
||||
)
|
||||
@ -163,76 +163,73 @@ def CheckNickname():
|
||||
|
||||
@_nickname_matcher.handle(parameterless=[CheckNickname()])
|
||||
async def _(
|
||||
session: EventSession,
|
||||
user_info: UserInfo = EventUserInfo(),
|
||||
session: Uninfo,
|
||||
uname: str = UserName(),
|
||||
reg_group: tuple[Any, ...] = RegexGroup(),
|
||||
):
|
||||
if session.id1:
|
||||
(name,) = reg_group
|
||||
if len(name) < 5 and random.random() < 0.3:
|
||||
name = "~".join(name)
|
||||
if gid := session.id3 or session.id2:
|
||||
group_id = None
|
||||
if session.group:
|
||||
group_id = session.group.parent.id if session.group.parent else session.group.id
|
||||
if group_id:
|
||||
await GroupInfoUser.set_user_nickname(
|
||||
session.id1,
|
||||
gid,
|
||||
session.user.id,
|
||||
group_id,
|
||||
name,
|
||||
user_info.user_displayname
|
||||
or user_info.user_remark
|
||||
or user_info.user_name,
|
||||
session.platform,
|
||||
uname,
|
||||
PlatformUtils.get_platform(session),
|
||||
)
|
||||
logger.info(f"设置群昵称成功: {name}", "昵称设置", session=session)
|
||||
else:
|
||||
await FriendUser.set_user_nickname(
|
||||
session.id1,
|
||||
session.user.id,
|
||||
name,
|
||||
user_info.user_displayname
|
||||
or user_info.user_remark
|
||||
or user_info.user_name,
|
||||
session.platform,
|
||||
uname,
|
||||
PlatformUtils.get_platform(session),
|
||||
)
|
||||
logger.info(f"设置私聊昵称成功: {name}", "昵称设置", session=session)
|
||||
await MessageUtils.build_message(random.choice(CALL_NAME).format(name)).finish(
|
||||
reply_to=True
|
||||
)
|
||||
await MessageUtils.build_message("用户id为空...").send()
|
||||
|
||||
|
||||
@_global_nickname_matcher.handle(parameterless=[CheckNickname()])
|
||||
async def _(
|
||||
session: EventSession,
|
||||
session: Uninfo,
|
||||
nickname: str = UserName(),
|
||||
reg_group: tuple[Any, ...] = RegexGroup(),
|
||||
):
|
||||
if session.id1:
|
||||
(name,) = reg_group
|
||||
await FriendUser.set_user_nickname(
|
||||
session.id1,
|
||||
session.user.id,
|
||||
name,
|
||||
nickname,
|
||||
session.platform,
|
||||
PlatformUtils.get_platform(session),
|
||||
)
|
||||
await GroupInfoUser.filter(user_id=session.id1).update(nickname=name)
|
||||
await GroupInfoUser.filter(user_id=session.user.id).update(nickname=name)
|
||||
logger.info(f"设置全局昵称成功: {name}", "设置全局昵称", session=session)
|
||||
await MessageUtils.build_message(random.choice(CALL_NAME).format(name)).finish(
|
||||
reply_to=True
|
||||
)
|
||||
await MessageUtils.build_message("用户id为空...").send()
|
||||
|
||||
|
||||
@_matcher.assign("name")
|
||||
async def _(session: EventSession, user_info: UserInfo = EventUserInfo()):
|
||||
if session.id1:
|
||||
if gid := session.id3 or session.id2:
|
||||
nickname = await GroupInfoUser.get_user_nickname(session.id1, gid)
|
||||
card = user_info.user_displayname or user_info.user_name
|
||||
async def _(session: Uninfo, uname: str = UserName()):
|
||||
group_id = None
|
||||
if session.group:
|
||||
group_id = session.group.parent.id if session.group.parent else session.group.id
|
||||
if group_id:
|
||||
nickname = await GroupInfoUser.get_user_nickname(session.user.id, group_id)
|
||||
card = uname
|
||||
else:
|
||||
nickname = await FriendUser.get_user_nickname(session.id1)
|
||||
card = user_info.user_name
|
||||
nickname = await FriendUser.get_user_nickname(session.user.id)
|
||||
card = uname
|
||||
if nickname:
|
||||
await MessageUtils.build_message(
|
||||
random.choice(REMIND).format(nickname)
|
||||
).finish(reply_to=True)
|
||||
await MessageUtils.build_message(random.choice(REMIND).format(nickname)).finish(
|
||||
reply_to=True
|
||||
)
|
||||
else:
|
||||
await MessageUtils.build_message(
|
||||
random.choice(
|
||||
@ -244,29 +241,28 @@ async def _(session: EventSession, user_info: UserInfo = EventUserInfo()):
|
||||
]
|
||||
).format(card)
|
||||
).finish(reply_to=True)
|
||||
await MessageUtils.build_message("用户id为空...").send()
|
||||
|
||||
|
||||
@_matcher.assign("cancel")
|
||||
async def _(bot: Bot, session: EventSession, user_info: UserInfo = EventUserInfo()):
|
||||
if session.id1:
|
||||
gid = session.id3 or session.id2
|
||||
if gid:
|
||||
nickname = await GroupInfoUser.get_user_nickname(session.id1, gid)
|
||||
async def _(bot: Bot, session: Uninfo):
|
||||
group_id = None
|
||||
if session.group:
|
||||
group_id = session.group.parent.id if session.group.parent else session.group.id
|
||||
if group_id:
|
||||
nickname = await GroupInfoUser.get_user_nickname(session.user.id, group_id)
|
||||
else:
|
||||
nickname = await FriendUser.get_user_nickname(session.id1)
|
||||
nickname = await FriendUser.get_user_nickname(session.user.id)
|
||||
if nickname:
|
||||
await MessageUtils.build_message(
|
||||
random.choice(CANCEL).format(nickname)
|
||||
).send(reply_to=True)
|
||||
if gid:
|
||||
await GroupInfoUser.set_user_nickname(session.id1, gid, "")
|
||||
await MessageUtils.build_message(random.choice(CANCEL).format(nickname)).send(
|
||||
reply_to=True
|
||||
)
|
||||
if group_id:
|
||||
await GroupInfoUser.set_user_nickname(session.user.id, group_id, "")
|
||||
else:
|
||||
await FriendUser.set_user_nickname(session.id1, "")
|
||||
await BanConsole.ban(session.id1, gid, 9, 60, bot.self_id)
|
||||
await FriendUser.set_user_nickname(session.user.id, "")
|
||||
await BanConsole.ban(session.user.id, group_id, 9, 60, bot.self_id)
|
||||
return
|
||||
else:
|
||||
await MessageUtils.build_message("你在做梦吗?你没有昵称啊").finish(
|
||||
reply_to=True
|
||||
)
|
||||
await MessageUtils.build_message("用户id为空...").send()
|
||||
|
||||
@ -1,12 +1,18 @@
|
||||
from datetime import datetime
|
||||
from typing import Any, Generic, TypeVar
|
||||
|
||||
from pydantic import BaseModel, validator
|
||||
from nonebot.compat import PYDANTIC_V2
|
||||
from pydantic import BaseModel
|
||||
|
||||
T = TypeVar("T")
|
||||
|
||||
RT = TypeVar("RT")
|
||||
|
||||
if PYDANTIC_V2:
|
||||
from pydantic import field_validator as validator_decorator
|
||||
else:
|
||||
from pydantic import validator as validator_decorator
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
username: str
|
||||
@ -61,13 +67,13 @@ class QueryModel(BaseModel, Generic[T]):
|
||||
data: T | None = None
|
||||
"""携带数据"""
|
||||
|
||||
@validator("index")
|
||||
@validator_decorator("index")
|
||||
def index_validator(cls, index):
|
||||
if index < 1:
|
||||
raise ValueError("查询下标小于1...")
|
||||
return index
|
||||
|
||||
@validator("size")
|
||||
@validator_decorator("size")
|
||||
def size_validator(cls, size):
|
||||
if size < 1:
|
||||
raise ValueError("每页数量小于1...")
|
||||
|
||||
@ -3,6 +3,5 @@ from nonebot import require
|
||||
require("nonebot_plugin_apscheduler")
|
||||
require("nonebot_plugin_alconna")
|
||||
require("nonebot_plugin_session")
|
||||
require("nonebot_plugin_userinfo")
|
||||
require("nonebot_plugin_htmlrender")
|
||||
require("nonebot_plugin_uninfo")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user