diff --git a/zhenxun/plugins/group_welcome_msg.py b/zhenxun/plugins/group_welcome_msg.py new file mode 100644 index 00000000..2784f458 --- /dev/null +++ b/zhenxun/plugins/group_welcome_msg.py @@ -0,0 +1,62 @@ +import re + +import ujson as json +from nonebot.plugin import PluginMetadata +from nonebot_plugin_alconna import Alconna, Arparma, on_alconna +from nonebot_plugin_saa import Image, MessageFactory, Text +from nonebot_plugin_session import EventSession + +from zhenxun.configs.path_config import DATA_PATH +from zhenxun.configs.utils import PluginExtraData +from zhenxun.services.log import logger +from zhenxun.utils.rules import ensure_group + +__plugin_meta__ = PluginMetadata( + name="查看群欢迎消息", + description="查看群欢迎消息", + usage=""" + usage: + 查看群欢迎消息 + """.strip(), + extra=PluginExtraData( + author="HibiKier", + version="0.1", + menu_type="其他", + ).dict(), +) + +_matcher = on_alconna(Alconna("群欢迎消息"), rule=ensure_group, priority=5, block=True) + + +BASE_PATH = DATA_PATH / "welcome_message" + + +@_matcher.handle() +async def _( + session: EventSession, + arparma: Arparma, +): + path = BASE_PATH / f"{session.platform or session.bot_type}" / f"{session.id2}" + if session.id3: + path = ( + BASE_PATH + / f"{session.platform or session.bot_type}" + / f"{session.id3}" + / f"{session.id2}" + ) + file = path / "text.json" + if not file.exists(): + await Text("未设置群欢迎消息...").finish(reply=True) + message = json.load(open(file))["message"] + message_split = re.split(r"\[image:\d+\]", message) + if len(message_split) == 1: + await Text(message_split[0]).finish(reply=True) + idx = 0 + data_list = [] + for msg in message_split[:-1]: + data_list.append(Text(msg)) + data_list.append(Image(path / f"{idx}.png")) + idx += 1 + data_list.append(message_split[-1]) + await MessageFactory(data_list).send(reply=True) + logger.info("查看群欢迎消息", arparma.header_result, session=session)