mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-14 21:52:56 +08:00
* ✨ 新增自我介绍功能及自动发送图片支持 - 在 bot_profile.py 中实现自我介绍指令及重载功能 - 在 group_handle 中添加自动发送自我介绍图片的逻辑 - 在 fg_request 中实现添加好友时自动发送自我介绍图片 - 新增 bot_profile_manager.py 管理 BOT 自我介绍及图片生成 - 更新 models.py 以支持插件自我介绍和注意事项字段 * 🎨 调整管理帮助宽度 * ✨ 更新数据访问层,优化获取数据的方法并引入缓存机制 * ✨ 更新用户数据访问逻辑,优化获取用户信息的方法,使用新的函数替代原有实现 * ✨ 在 BotProfileManager 中添加自我介绍文件不存在的日志记录,优化文件读取逻辑 * ✨ 更新 BOT 自我介绍帮助信息,增加文件不存在时自动创建功能
59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
from nonebot.permission import SUPERUSER
|
|
from nonebot.plugin import PluginMetadata
|
|
from nonebot.rule import to_me
|
|
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
|
|
from nonebot_plugin_uninfo import Uninfo
|
|
|
|
from zhenxun.configs.config import BotConfig
|
|
from zhenxun.configs.utils import PluginExtraData
|
|
from zhenxun.services.log import logger
|
|
from zhenxun.utils.manager.bot_profile_manager import BotProfileManager
|
|
from zhenxun.utils.message import MessageUtils
|
|
|
|
__plugin_meta__ = PluginMetadata(
|
|
name="自我介绍",
|
|
description=f"这是{BotConfig.self_nickname}的深情告白",
|
|
usage="""
|
|
指令:
|
|
自我介绍
|
|
""".strip(),
|
|
extra=PluginExtraData(
|
|
author="HibiKier",
|
|
version="0.1",
|
|
menu_type="其他",
|
|
superuser_help="""
|
|
在data/bot_profile/bot_id/profile.txt 中编辑BOT自我介绍
|
|
在data/bot_profile/bot_id/bot_id.png 中编辑BOT头像
|
|
指令:
|
|
重载自我介绍
|
|
""".strip(),
|
|
).to_dict(),
|
|
)
|
|
|
|
|
|
_matcher = on_alconna(Alconna("自我介绍"), priority=5, block=True, rule=to_me())
|
|
|
|
_reload_matcher = on_alconna(
|
|
Alconna("重载自我介绍"), priority=1, block=True, permission=SUPERUSER
|
|
)
|
|
|
|
|
|
@_matcher.handle()
|
|
async def _(session: Uninfo, arparma: Arparma):
|
|
file_path = await BotProfileManager.build_bot_profile_image(session.self_id)
|
|
if not file_path:
|
|
await MessageUtils.build_message(
|
|
f"{BotConfig.self_nickname}当前没有自我简介哦"
|
|
).finish(reply_to=True)
|
|
await MessageUtils.build_message(file_path).send()
|
|
logger.info("BOT自我介绍", arparma.header_result, session=session)
|
|
|
|
|
|
@_reload_matcher.handle()
|
|
async def _(session: Uninfo, arparma: Arparma):
|
|
BotProfileManager.clear_profile_image(session.self_id)
|
|
await MessageUtils.build_message(f"重载{BotConfig.self_nickname}自我介绍成功").send(
|
|
reply_to=True
|
|
)
|
|
logger.info("重载BOT自我介绍", arparma.header_result, session=session)
|