mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-12-18 09:25:46 +08:00
commit
e2de13e122
1
.gitignore
vendored
1
.gitignore
vendored
@ -190,3 +190,4 @@ docs_build/_build
|
|||||||
!tests/.env
|
!tests/.env
|
||||||
*.xmind
|
*.xmind
|
||||||
yarn.lock
|
yarn.lock
|
||||||
|
.DS_Store
|
||||||
|
@ -14,7 +14,7 @@ sidebarDepth: 0
|
|||||||
|
|
||||||
基类:`abc.ABC`
|
基类:`abc.ABC`
|
||||||
|
|
||||||
Driver 基类。将后端框架封装,以满足适配器使用。
|
Driver 基类。
|
||||||
|
|
||||||
|
|
||||||
### `_adapters`
|
### `_adapters`
|
||||||
@ -32,33 +32,33 @@ Driver 基类。将后端框架封装,以满足适配器使用。
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `_ws_connection_hook`
|
### `_bot_connection_hook`
|
||||||
|
|
||||||
|
|
||||||
* **类型**
|
* **类型**
|
||||||
|
|
||||||
`Set[T_WebSocketConnectionHook]`
|
`Set[T_BotConnectionHook]`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* **说明**
|
* **说明**
|
||||||
|
|
||||||
WebSocket 连接建立时执行的函数
|
Bot 连接建立时执行的函数
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `_ws_disconnection_hook`
|
### `_bot_disconnection_hook`
|
||||||
|
|
||||||
|
|
||||||
* **类型**
|
* **类型**
|
||||||
|
|
||||||
`Set[T_WebSocketDisconnectionHook]`
|
`Set[T_BotDisconnectionHook]`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* **说明**
|
* **说明**
|
||||||
|
|
||||||
WebSocket 连接断开时执行的函数
|
Bot 连接断开时执行的函数
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -120,6 +120,21 @@ Driver 基类。将后端框架封装,以满足适配器使用。
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### _property_ `bots`
|
||||||
|
|
||||||
|
|
||||||
|
* **类型**
|
||||||
|
|
||||||
|
`Dict[str, Bot]`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* **说明**
|
||||||
|
|
||||||
|
获取当前所有已连接的 Bot
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `register_adapter(name, adapter, **kwargs)`
|
### `register_adapter(name, adapter, **kwargs)`
|
||||||
|
|
||||||
|
|
||||||
@ -144,33 +159,33 @@ Driver 基类。将后端框架封装,以满足适配器使用。
|
|||||||
驱动类型名称
|
驱动类型名称
|
||||||
|
|
||||||
|
|
||||||
### _abstract property_ `server_app`
|
|
||||||
|
|
||||||
驱动 APP 对象
|
|
||||||
|
|
||||||
|
|
||||||
### _abstract property_ `asgi`
|
|
||||||
|
|
||||||
驱动 ASGI 对象
|
|
||||||
|
|
||||||
|
|
||||||
### _abstract property_ `logger`
|
### _abstract property_ `logger`
|
||||||
|
|
||||||
驱动专属 logger 日志记录器
|
驱动专属 logger 日志记录器
|
||||||
|
|
||||||
|
|
||||||
### _property_ `bots`
|
### _abstract_ `run(host=None, port=None, *args, **kwargs)`
|
||||||
|
|
||||||
|
|
||||||
* **类型**
|
|
||||||
|
|
||||||
`Dict[str, Bot]`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* **说明**
|
* **说明**
|
||||||
|
|
||||||
获取当前所有已连接的 Bot
|
启动驱动框架
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* **参数**
|
||||||
|
|
||||||
|
|
||||||
|
* `host: Optional[str]`: 驱动绑定 IP
|
||||||
|
|
||||||
|
|
||||||
|
* `post: Optional[int]`: 驱动绑定端口
|
||||||
|
|
||||||
|
|
||||||
|
* `*args`
|
||||||
|
|
||||||
|
|
||||||
|
* `**kwargs`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -226,29 +241,21 @@ Driver 基类。将后端框架封装,以满足适配器使用。
|
|||||||
在 WebSocket 连接断开后,调用该函数来注销 bot 对象
|
在 WebSocket 连接断开后,调用该函数来注销 bot 对象
|
||||||
|
|
||||||
|
|
||||||
### _abstract_ `run(host=None, port=None, *args, **kwargs)`
|
## _class_ `ReverseDriver`
|
||||||
|
|
||||||
|
基类:`nonebot.drivers.Driver`
|
||||||
|
|
||||||
|
Reverse Driver 基类。将后端框架封装,以满足适配器使用。
|
||||||
|
|
||||||
|
|
||||||
* **说明**
|
### _abstract property_ `server_app`
|
||||||
|
|
||||||
启动驱动框架
|
驱动 APP 对象
|
||||||
|
|
||||||
|
|
||||||
|
### _abstract property_ `asgi`
|
||||||
|
|
||||||
* **参数**
|
驱动 ASGI 对象
|
||||||
|
|
||||||
|
|
||||||
* `host: Optional[str]`: 驱动绑定 IP
|
|
||||||
|
|
||||||
|
|
||||||
* `post: Optional[int]`: 驱动绑定端口
|
|
||||||
|
|
||||||
|
|
||||||
* `*args`
|
|
||||||
|
|
||||||
|
|
||||||
* `**kwargs`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### _abstract async_ `_handle_http()`
|
### _abstract async_ `_handle_http()`
|
||||||
|
@ -79,7 +79,7 @@ FastAPI 驱动框架设置,详情参考 FastAPI 文档
|
|||||||
|
|
||||||
## _class_ `Driver`
|
## _class_ `Driver`
|
||||||
|
|
||||||
基类:[`nonebot.drivers.Driver`](README.md#nonebot.drivers.Driver)
|
基类:[`nonebot.drivers.ReverseDriver`](README.md#nonebot.drivers.ReverseDriver)
|
||||||
|
|
||||||
FastAPI 驱动框架
|
FastAPI 驱动框架
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ sidebarDepth: 0
|
|||||||
|
|
||||||
## _class_ `Driver`
|
## _class_ `Driver`
|
||||||
|
|
||||||
基类:[`nonebot.drivers.Driver`](README.md#nonebot.drivers.Driver)
|
基类:[`nonebot.drivers.ReverseDriver`](README.md#nonebot.drivers.ReverseDriver)
|
||||||
|
|
||||||
Quart 驱动框架
|
Quart 驱动框架
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ sidebarDepth: 0
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
## `T_WebSocketConnectionHook`
|
## `T_BotConnectionHook`
|
||||||
|
|
||||||
|
|
||||||
* **类型**
|
* **类型**
|
||||||
@ -57,12 +57,12 @@ sidebarDepth: 0
|
|||||||
|
|
||||||
* **说明**
|
* **说明**
|
||||||
|
|
||||||
WebSocket 连接建立时执行的函数
|
Bot 连接建立时执行的函数
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## `T_WebSocketDisconnectionHook`
|
## `T_BotDisconnectionHook`
|
||||||
|
|
||||||
|
|
||||||
* **类型**
|
* **类型**
|
||||||
@ -73,7 +73,7 @@ sidebarDepth: 0
|
|||||||
|
|
||||||
* **说明**
|
* **说明**
|
||||||
|
|
||||||
WebSocket 连接断开时执行的函数
|
Bot 连接断开时执行的函数
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,8 +16,7 @@ import uvicorn
|
|||||||
|
|
||||||
from nonebot.config import Config as NoneBotConfig
|
from nonebot.config import Config as NoneBotConfig
|
||||||
from nonebot.config import Env
|
from nonebot.config import Env
|
||||||
from nonebot.drivers import Driver as BaseDriver
|
from nonebot.drivers import ReverseDriver, WebSocket as BaseWebSocket
|
||||||
from nonebot.drivers import WebSocket as BaseWebSocket
|
|
||||||
from nonebot.exception import RequestDenied
|
from nonebot.exception import RequestDenied
|
||||||
from nonebot.log import logger
|
from nonebot.log import logger
|
||||||
from nonebot.typing import overrides
|
from nonebot.typing import overrides
|
||||||
@ -35,7 +34,7 @@ except ImportError:
|
|||||||
_AsyncCallable = TypeVar("_AsyncCallable", bound=Callable[..., Coroutine])
|
_AsyncCallable = TypeVar("_AsyncCallable", bound=Callable[..., Coroutine])
|
||||||
|
|
||||||
|
|
||||||
class Driver(BaseDriver):
|
class Driver(ReverseDriver):
|
||||||
"""
|
"""
|
||||||
Quart 驱动框架
|
Quart 驱动框架
|
||||||
|
|
||||||
@ -45,7 +44,7 @@ class Driver(BaseDriver):
|
|||||||
* ``/{adapter name}/ws``: WebSocket 上报
|
* ``/{adapter name}/ws``: WebSocket 上报
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def __init__(self, env: Env, config: NoneBotConfig):
|
def __init__(self, env: Env, config: NoneBotConfig):
|
||||||
super().__init__(env, config)
|
super().__init__(env, config)
|
||||||
|
|
||||||
@ -57,40 +56,40 @@ class Driver(BaseDriver):
|
|||||||
view_func=self._handle_ws_reverse)
|
view_func=self._handle_ws_reverse)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def type(self) -> str:
|
def type(self) -> str:
|
||||||
"""驱动名称: ``quart``"""
|
"""驱动名称: ``quart``"""
|
||||||
return 'quart'
|
return 'quart'
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def server_app(self) -> Quart:
|
def server_app(self) -> Quart:
|
||||||
"""``Quart`` 对象"""
|
"""``Quart`` 对象"""
|
||||||
return self._server_app
|
return self._server_app
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def asgi(self):
|
def asgi(self):
|
||||||
"""``Quart`` 对象"""
|
"""``Quart`` 对象"""
|
||||||
return self._server_app
|
return self._server_app
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def logger(self):
|
def logger(self):
|
||||||
"""fastapi 使用的 logger"""
|
"""fastapi 使用的 logger"""
|
||||||
return self._server_app.logger
|
return self._server_app.logger
|
||||||
|
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def on_startup(self, func: _AsyncCallable) -> _AsyncCallable:
|
def on_startup(self, func: _AsyncCallable) -> _AsyncCallable:
|
||||||
"""参考文档: `Startup and Shutdown <https://pgjones.gitlab.io/quart/how_to_guides/startup_shutdown.html>`_"""
|
"""参考文档: `Startup and Shutdown <https://pgjones.gitlab.io/quart/how_to_guides/startup_shutdown.html>`_"""
|
||||||
return self.server_app.before_serving(func) # type: ignore
|
return self.server_app.before_serving(func) # type: ignore
|
||||||
|
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def on_shutdown(self, func: _AsyncCallable) -> _AsyncCallable:
|
def on_shutdown(self, func: _AsyncCallable) -> _AsyncCallable:
|
||||||
"""参考文档: `Startup and Shutdown <https://pgjones.gitlab.io/quart/how_to_guides/startup_shutdown.html>`_"""
|
"""参考文档: `Startup and Shutdown <https://pgjones.gitlab.io/quart/how_to_guides/startup_shutdown.html>`_"""
|
||||||
return self.server_app.after_serving(func) # type: ignore
|
return self.server_app.after_serving(func) # type: ignore
|
||||||
|
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
def run(self,
|
def run(self,
|
||||||
host: Optional[str] = None,
|
host: Optional[str] = None,
|
||||||
port: Optional[int] = None,
|
port: Optional[int] = None,
|
||||||
@ -126,7 +125,7 @@ class Driver(BaseDriver):
|
|||||||
log_config=LOGGING_CONFIG,
|
log_config=LOGGING_CONFIG,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
async def _handle_http(self, adapter: str):
|
async def _handle_http(self, adapter: str):
|
||||||
request: Request = _request
|
request: Request = _request
|
||||||
|
|
||||||
@ -157,7 +156,7 @@ class Driver(BaseDriver):
|
|||||||
asyncio.create_task(bot.handle_message(data))
|
asyncio.create_task(bot.handle_message(data))
|
||||||
return Response('', 204)
|
return Response('', 204)
|
||||||
|
|
||||||
@overrides(BaseDriver)
|
@overrides(ReverseDriver)
|
||||||
async def _handle_ws_reverse(self, adapter: str):
|
async def _handle_ws_reverse(self, adapter: str):
|
||||||
websocket: QuartWebSocket = _websocket
|
websocket: QuartWebSocket = _websocket
|
||||||
if adapter not in self._adapters:
|
if adapter not in self._adapters:
|
||||||
|
Loading…
Reference in New Issue
Block a user