Files
konabot/konabot/plugins/routine.py
passthem 0acffea86d
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
添加排行榜,优化 UX
2025-10-26 12:45:29 +08:00

41 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import asyncio
import random
from typing import cast
from loguru import logger
from nonebot import get_bot, on_request
import nonebot
from nonebot.adapters.onebot.v11.event import FriendRequestEvent
from nonebot.adapters.onebot.v11.bot import Bot as OnebotBot
from nonebot_plugin_apscheduler import scheduler
from konabot.common.nb.is_admin import cfg as adminConfig
from konabot.common.username import manager
add_request = on_request()
@add_request.handle()
async def _(req: FriendRequestEvent):
bot = cast(OnebotBot, get_bot(str(req.self_id)))
ok_member_ls: set[int] = set()
for group in adminConfig.admin_qq_group:
members = await bot.get_group_member_list(group_id=group)
ok_member_ls |= cast(set[int], set((m.get("user_id") for m in members)))
if req.user_id in ok_member_ls:
await asyncio.sleep(random.randint(5, 10))
await req.approve(bot)
logger.info(f"已经自动同意 {req.user_id} 的好友请求")
@scheduler.scheduled_job("cron", minute="*/5")
async def _():
logger.info("尝试更新群成员信息")
await manager.update()
driver = nonebot.get_driver()
@driver.on_bot_connect
async def _():
logger.info("有 Bot 连接5 秒后试着更新群成员信息")
await asyncio.sleep(5)
await manager.update()