from utils.utils import scheduler, get_bot from .data_source import update_member_info from services.log import logger from models.group_info import GroupInfo from asyncpg.exceptions import ConnectionDoesNotExistError # 自动更新群员信息 @scheduler.scheduled_job( "cron", hour=2, minute=1, ) async def _(): bot = get_bot() gl = await bot.get_group_list(self_id=bot.self_id) gl = [g["group_id"] for g in gl] for g in gl: try: await update_member_info(g) logger.info(f"更新群组 g:{g} 成功") except Exception as e: logger.error(f"更新群组错误 g:{g} e:{e}") # 快速更新群员信息以及管理员权限 @scheduler.scheduled_job( "interval", minutes=5, ) async def _(): try: bot = get_bot() gl = await bot.get_group_list(self_id=bot.self_id) gl = [g["group_id"] for g in gl] all_group = [x.group_id for x in await GroupInfo.get_all_group()] for g in gl: if g not in all_group: await update_member_info(g) logger.info(f"快速更新群信息以及权限:{g}") except (IndexError, ConnectionDoesNotExistError): pass