✨ 更新群组信息

This commit is contained in:
HibiKier
2024-08-25 15:49:36 +08:00
parent 8d6417b8ff
commit 69f09b92d3
4 changed files with 71 additions and 12 deletions
@@ -0,0 +1,45 @@
from nonebot.adapters import Bot
from nonebot.plugin import PluginMetadata
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
from nonebot_plugin_session import EventSession
from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
from zhenxun.utils.rules import admin_check, ensure_group
__plugin_meta__ = PluginMetadata(
name="更新群组列表",
description="更新群组列表",
usage="""
更新群组的基本信息
指令:
更新群组信息
""".strip(),
extra=PluginExtraData(
author="HibiKier",
version="0.1",
plugin_type=PluginType.SUPER_AND_ADMIN,
admin_level=1,
).dict(),
)
_matcher = on_alconna(
Alconna("更新群组信息"),
rule=admin_check(1) & ensure_group,
priority=5,
block=True,
)
@_matcher.handle()
async def _(bot: Bot, session: EventSession, arparma: Arparma):
logger.info("更新群组信息", arparma.header_result, session=session)
try:
await PlatformUtils.update_group(bot)
await MessageUtils.build_message("已经成功更新了群组信息!").send(reply_to=True)
except Exception as e:
await MessageUtils.build_message("更新群组信息失败!").finish(reply_to=True)
+5 -7
View File
@@ -23,17 +23,15 @@ async def _(bot: Bot):
if PlatformUtils.get_platform(bot) == "qq":
logger.debug(f"更新Bot: {bot.self_id} 的群认证...")
group_list, _ = await PlatformUtils.get_group_list(bot)
gid_list = [(g.group_id, g.group_name) for g in group_list]
db_group_list = await GroupConsole.all().values_list("group_id", flat=True)
create_list = []
update_id = []
for gid, name in gid_list:
if gid not in db_group_list:
create_list.append(
GroupConsole(group_id=gid, group_name=name, group_flag=1)
)
for group in group_list:
if group.group_id not in db_group_list:
group.group_flag = 1
create_list.append(group)
else:
update_id.append(gid)
update_id.append(group.group_id)
if create_list:
await GroupConsole.bulk_create(create_list, 10)
else: