mirror of
https://github.com/LiteyukiStudio/LiteyukiBot.git
synced 2024-11-14 14:57:25 +08:00
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
|
from nonebot import on_command
|
||
|
from nonebot.params import CommandArg
|
||
|
|
||
|
from src.utils.adapter import Bot, Message, MessageEvent
|
||
|
from src.utils.data_manager import User, user_db
|
||
|
from src.utils.language import get_user_lang
|
||
|
|
||
|
|
||
|
|
||
|
attr_map = {
|
||
|
"lang" : ["lang", "language", "语言"],
|
||
|
"username": ["username", "昵称", "用户名"] # Bot称呼用户的昵称
|
||
|
}
|
||
|
|
||
|
attr_cmd = on_command("profile", aliases={"个人设置"}, priority=0)
|
||
|
|
||
|
|
||
|
@attr_cmd.handle()
|
||
|
async def _(bot: Bot, event: MessageEvent, args: Message = CommandArg()):
|
||
|
user = user_db.first(User, "user_id = ?", str(event.user_id), default=User(user_id=str(event.user_id)))
|
||
|
ulang = get_user_lang(str(event.user_id))
|
||
|
|
||
|
args = str(args).split(" ", 1)
|
||
|
input_key = args[0]
|
||
|
attr_key = "username"
|
||
|
for attr_key, attr_values in attr_map.items():
|
||
|
if input_key in attr_values:
|
||
|
break
|
||
|
|
||
|
if len(args) == 1:
|
||
|
# 查询
|
||
|
value = user.__dict__[attr_key]
|
||
|
await attr_cmd.finish(f"{ulang.get('user.profile_manager.query', ATTR=attr_key, VALUE=value)}")
|
||
|
else:
|
||
|
# 设置
|
||
|
value = args[1]
|
||
|
user.__dict__[attr_key] = value
|
||
|
user_db.save(user)
|
||
|
await attr_cmd.finish(f"{ulang.get('user.profile_manager.set', ATTR=attr_key, VALUE=value)}")
|