mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-07-27 06:43:58 +08:00
31 lines
946 B
Python
31 lines
946 B
Python
from collections import defaultdict
|
|
from importlib import import_module
|
|
from pathlib import Path
|
|
from pkgutil import iter_modules
|
|
|
|
from .platform import NoTargetGroup, Platform
|
|
|
|
_package_dir = str(Path(__file__).resolve().parent)
|
|
for (_, module_name, _) in iter_modules([_package_dir]):
|
|
import_module(f"{__name__}.{module_name}")
|
|
|
|
|
|
async def check_sub_target(target_type, target):
|
|
return await platform_manager[target_type].get_target_name(target)
|
|
|
|
|
|
_platform_list = defaultdict(list)
|
|
for _platform in Platform.registry:
|
|
if not _platform.enabled:
|
|
continue
|
|
_platform_list[_platform.platform_name].append(_platform)
|
|
|
|
platform_manager: dict[str, Platform] = dict()
|
|
for name, platform_list in _platform_list.items():
|
|
if len(platform_list) == 1:
|
|
platform_manager[name] = platform_list[0]()
|
|
else:
|
|
platform_manager[name] = NoTargetGroup(
|
|
[_platform() for _platform in platform_list]
|
|
)
|