2023-06-06 03:30:50 +08:00

40 lines
1.0 KiB
Python

""" 提供获取 Bot 的方法 """
from collections import defaultdict
from typing import Any
import nonebot
from nonebot.adapters import Bot
from nonebot.adapters.onebot.v11 import Bot as Ob11Bot
from nonebot_plugin_saa import PlatformTarget
GROUP: dict[int, list[Bot]] = {}
USER: dict[int, list[Bot]] = {}
BOT_CACHE: dict[PlatformTarget, list[Bot]] = defaultdict(list)
def get_bots() -> list[Bot]:
"""获取所有 OneBot 11 Bot"""
# TODO: support ob12
bots = []
for bot in nonebot.get_bots().values():
if isinstance(bot, Ob11Bot):
bots.append(bot)
return bots
async def get_groups() -> list[dict[str, Any]]:
"""获取所有群号"""
# TODO
all_groups: dict[int, dict[str, Any]] = {}
for bot in get_bots():
groups = await bot.get_group_list()
all_groups.update(
{
group["group_id"]: group
for group in groups
if group["group_id"] not in all_groups
}
)
return list(all_groups.values())