➖ Add fastapi dependency and remove nonebot-plugin-userinfo

This commit is contained in:
HibiKier
2025-01-10 12:19:11 +08:00
committed by BalconyJH
parent e2111278d2
commit 73d2ed444e
7 changed files with 672 additions and 823 deletions
+90 -94
View File
@@ -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,110 +163,106 @@ 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:
await GroupInfoUser.set_user_nickname(
session.id1,
gid,
name,
user_info.user_displayname
or user_info.user_remark
or user_info.user_name,
session.platform,
)
logger.info(f"设置群昵称成功: {name}", "昵称设置", session=session)
else:
await FriendUser.set_user_nickname(
session.id1,
name,
user_info.user_displayname
or user_info.user_remark
or user_info.user_name,
session.platform,
)
logger.info(f"设置私聊昵称成功: {name}", "昵称设置", session=session)
await MessageUtils.build_message(random.choice(CALL_NAME).format(name)).finish(
reply_to=True
(name,) = reg_group
if len(name) < 5 and random.random() < 0.3:
name = "~".join(name)
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.user.id,
group_id,
name,
uname,
PlatformUtils.get_platform(session),
)
await MessageUtils.build_message("用户id为空...").send()
logger.info(f"设置群昵称成功: {name}", "昵称设置", session=session)
else:
await FriendUser.set_user_nickname(
session.user.id,
name,
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
)
@_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,
name,
nickname,
session.platform,
)
await GroupInfoUser.filter(user_id=session.id1).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()
(name,) = reg_group
await FriendUser.set_user_nickname(
session.user.id,
name,
nickname,
PlatformUtils.get_platform(session),
)
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
)
@_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
else:
nickname = await FriendUser.get_user_nickname(session.id1)
card = user_info.user_name
if nickname:
await MessageUtils.build_message(
random.choice(REMIND).format(nickname)
).finish(reply_to=True)
else:
await MessageUtils.build_message(
random.choice(
[
"没..没有昵称嘛,{}",
"啊,你是{}啊,我想叫你的昵称!",
"是{}啊,有什么事吗?",
"你是{}?",
]
).format(card)
).finish(reply_to=True)
await MessageUtils.build_message("用户id为空...").send()
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.user.id)
card = uname
if nickname:
await MessageUtils.build_message(random.choice(REMIND).format(nickname)).finish(
reply_to=True
)
else:
await MessageUtils.build_message(
random.choice(
[
"没..没有昵称嘛,{}",
"啊,你是{}啊,我想叫你的昵称!",
"是{}啊,有什么事吗?",
"你是{}?",
]
).format(card)
).finish(reply_to=True)
@_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.user.id)
if nickname:
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:
nickname = await FriendUser.get_user_nickname(session.id1)
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, "")
else:
await FriendUser.set_user_nickname(session.id1, "")
await BanConsole.ban(session.id1, gid, 9, 60, bot.self_id)
return
else:
await MessageUtils.build_message("你在做梦吗?你没有昵称啊").finish(
reply_to=True
)
await MessageUtils.build_message("用户id为空...").send()
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
)
+9 -3
View File
@@ -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...")
-1
View File
@@ -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")