From 5a5c0be51a4d8de5ff905c8a12252b78cb801e3e Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Sat, 10 Aug 2024 14:18:05 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20bot=E5=B7=B2=E6=9C=89=E7=BE=A4?= =?UTF-8?q?=E7=BB=84=E6=B7=BB=E5=8A=A0=E7=BE=A4=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 1 + zhenxun/builtin_plugins/init/__init__.py | 36 ++++++++++++++++++++++++ zhenxun/plugins/statistics/__init__.py | 1 + zhenxun/services/db_context.py | 2 +- 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ac493193..dc0ad84c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -20,6 +20,7 @@ "pixiv", "Setu", "tobytes", + "ujson", "unban", "userinfo", "zhenxun" diff --git a/zhenxun/builtin_plugins/init/__init__.py b/zhenxun/builtin_plugins/init/__init__.py index eb35e275..fa10c4d7 100644 --- a/zhenxun/builtin_plugins/init/__init__.py +++ b/zhenxun/builtin_plugins/init/__init__.py @@ -1,5 +1,41 @@ from pathlib import Path import nonebot +from nonebot.adapters import Bot + +from zhenxun.models.group_console import GroupConsole +from zhenxun.services.log import logger +from zhenxun.utils.platform import PlatformUtils nonebot.load_plugins(str(Path(__file__).parent.resolve())) + + +driver = nonebot.get_driver() + + +@driver.on_bot_connect +async def _(bot: Bot): + """将bot已存在的群组添加群认证 + + 参数: + 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 for g in group_list] + db_group_list = await GroupConsole.all().values_list("group_id", flat=True) + create_list = [] + update_id = [] + for gid in gid_list: + if gid not in db_group_list: + create_list.append(GroupConsole(group_id=gid, group_flag=1)) + else: + update_id.append(gid) + if create_list: + await GroupConsole.bulk_create(create_list, 10) + else: + await GroupConsole.filter(group_id__in=update_id).update(group_flag=1) + logger.debug( + f"更新Bot: {bot.self_id} 的群认证完成,共创建 {len(create_list)} 条数据,共修改 {len(update_id)} 条数据..." + ) diff --git a/zhenxun/plugins/statistics/__init__.py b/zhenxun/plugins/statistics/__init__.py index bd99a86f..5cf30279 100644 --- a/zhenxun/plugins/statistics/__init__.py +++ b/zhenxun/plugins/statistics/__init__.py @@ -63,6 +63,7 @@ for file in [statistics_group_file, statistics_user_file]: data[x][key]["商店"] = num for x in ["week_statistics", "month_statistics"]: for key in data[x].keys(): + num = 0 if key == "total": if data[x][key].get("ai") is not None: if data[x][key].get("Ai") is not None: diff --git a/zhenxun/services/db_context.py b/zhenxun/services/db_context.py index 9342a6ef..2bf9c109 100644 --- a/zhenxun/services/db_context.py +++ b/zhenxun/services/db_context.py @@ -111,7 +111,7 @@ async def init(): await Tortoise.generate_schemas() logger.info(f"Database loaded successfully!") except Exception as e: - raise Exception(f"数据库连接错误...") + raise Exception(f"数据库连接错误... e:{e}") async def disconnect():