🐛 修复无法正常判断 FastAPI 是否存在的问题 (#350)

* 🐛 修复多驱动器时无法正常判断 FastAPI 是否存在的问题

* 🎨 优化

* 🚑️ 再改
This commit is contained in:
Komorebi 2023-08-29 10:25:37 +08:00 committed by GitHub
parent ea4eeeaaf8
commit 4b26268c60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,11 +1,11 @@
import os
from pathlib import Path
from typing import TYPE_CHECKING
from nonebot.log import logger
from nonebot.rule import to_me
from nonebot.typing import T_State
from nonebot import get_driver, on_command
from nonebot.drivers.fastapi import Driver
from nonebot.adapters.onebot.v11 import Bot
from nonebot.adapters.onebot.v11.event import PrivateMessageEvent
@ -13,6 +13,10 @@ from .api import router as api_router
from ..plugin_config import plugin_config
from .token_manager import token_manager as tm
if TYPE_CHECKING:
from nonebot.drivers.fastapi import Driver
STATIC_PATH = (Path(__file__).parent / "dist").resolve()
@ -35,7 +39,7 @@ def init_fastapi():
return super().lookup_path(self.index)
return (full_path, stat_res)
def register_router_fastapi(driver: Driver, socketio):
def register_router_fastapi(driver: "Driver", socketio):
static_path = STATIC_PATH
nonebot_app = FastAPI(
title="nonebot-bison",
@ -48,11 +52,7 @@ def init_fastapi():
app.mount("/bison", nonebot_app, "nonebot-bison")
driver = get_driver()
if isinstance(driver, Driver):
register_router_fastapi(driver, socket_app)
else:
logger.warning(f"Driver {driver.type} not supported")
return
register_router_fastapi(driver, socket_app)
host = str(driver.config.host)
port = driver.config.port
if host in ["0.0.0.0", "127.0.0.1"]:
@ -74,8 +74,12 @@ def register_get_token_handler():
def check_driver_is_fastapi() -> bool:
driver = get_driver()
return driver.type == "fastapi"
try:
from nonebot.drivers.fastapi import Driver
return isinstance(get_driver(), Driver)
except ImportError:
return False
if (STATIC_PATH / "index.html").exists():