mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2026-05-09 10:17:56 +08:00
🐛 forbid adding platform that needs browser in no-browser env
This commit is contained in:
@@ -3,6 +3,7 @@ from pkgutil import iter_modules
|
||||
from collections import defaultdict
|
||||
from importlib import import_module
|
||||
|
||||
from ..plugin_config import plugin_config
|
||||
from .platform import Platform, make_no_target_group
|
||||
|
||||
_package_dir = str(Path(__file__).resolve().parent)
|
||||
@@ -22,3 +23,15 @@ for name, platform_list in _platform_list.items():
|
||||
platform_manager[name] = platform_list[0]
|
||||
else:
|
||||
platform_manager[name] = make_no_target_group(platform_list)
|
||||
|
||||
|
||||
def _get_unavailable_platforms() -> dict[str, str]:
|
||||
res = {}
|
||||
for name, platform in platform_manager.items():
|
||||
if platform.site.require_browser and not plugin_config.bison_use_browser:
|
||||
res[name] = "需要启用 bison_use_browser"
|
||||
return res
|
||||
|
||||
|
||||
# platform => reason for not available
|
||||
unavailable_paltforms: dict[str, str] = _get_unavailable_platforms()
|
||||
|
||||
@@ -9,9 +9,9 @@ from nonebot_plugin_saa import Text, PlatformTarget, SupportedAdapters
|
||||
from ..types import Target
|
||||
from ..config import config
|
||||
from ..apis import check_sub_target
|
||||
from ..platform import Platform, platform_manager
|
||||
from ..config.db_config import SubscribeDupException
|
||||
from .utils import common_platform, ensure_user_info, gen_handle_cancel
|
||||
from ..platform import Platform, platform_manager, unavailable_paltforms
|
||||
|
||||
|
||||
def do_add_sub(add_sub: type[Matcher]):
|
||||
@@ -39,6 +39,8 @@ def do_add_sub(add_sub: type[Matcher]):
|
||||
elif platform == "取消":
|
||||
await add_sub.finish("已中止订阅")
|
||||
elif platform in platform_manager:
|
||||
if platform in unavailable_paltforms:
|
||||
await add_sub.finish(f"无法订阅 {platform},{unavailable_paltforms[platform]}")
|
||||
state["platform"] = platform
|
||||
else:
|
||||
await add_sub.reject("平台输入错误")
|
||||
|
||||
Reference in New Issue
Block a user