mirror of
https://github.com/nonebot/nonebot2.git
synced 2026-09-17 06:43:48 +00:00
⬆️ auto update by pre-commit hooks (#4181)
Release Drafter / release (push) Skipped
Release Drafter / update-release-draft (push) Failing after 38s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.10) (push) Failing after 43s
Ruff Lint / Ruff Lint (push) Successful in 57s
Pyright Lint / Pyright Lint (pydantic-v1) (push) Failing after 1m1s
Pyright Lint / Pyright Lint (pydantic-v2) (push) Failing after 1m4s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.13) (push) Failing after 1m4s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.11) (push) Failing after 1m5s
Site Deploy / publish (push) Failing after 1m8s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.13) (push) Failing after 1m19s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.11) (push) Failing after 1m26s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.10) (push) Failing after 1m29s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.12) (push) Failing after 1m31s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.12) (push) Failing after 1m33s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.13) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.13) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.13) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.13) (push) Canceled after 0s
Release Drafter / release (push) Skipped
Release Drafter / update-release-draft (push) Failing after 38s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.10) (push) Failing after 43s
Ruff Lint / Ruff Lint (push) Successful in 57s
Pyright Lint / Pyright Lint (pydantic-v1) (push) Failing after 1m1s
Pyright Lint / Pyright Lint (pydantic-v2) (push) Failing after 1m4s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.13) (push) Failing after 1m4s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.11) (push) Failing after 1m5s
Site Deploy / publish (push) Failing after 1m8s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.13) (push) Failing after 1m19s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.11) (push) Failing after 1m26s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.10) (push) Failing after 1m29s
Code Coverage / Test Coverage (pydantic-v2, ubuntu-latest, 3.12) (push) Failing after 1m31s
Code Coverage / Test Coverage (pydantic-v1, ubuntu-latest, 3.12) (push) Failing after 1m33s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, macos-latest, 3.13) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v1, windows-latest, 3.13) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, macos-latest, 3.13) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.10) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.11) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.12) (push) Canceled after 0s
Code Coverage / Test Coverage (pydantic-v2, windows-latest, 3.13) (push) Canceled after 0s
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
parent
9b4772ff8f
commit
206d31a61d
@@ -81,6 +81,7 @@ except Exception as e:
|
||||
```python title=config.py
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class Config(BaseModel):
|
||||
xxx_id: str
|
||||
xxx_token: str
|
||||
@@ -102,6 +103,7 @@ from nonebot.adapters import Adapter as BaseAdapter
|
||||
|
||||
from .config import Config
|
||||
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
@override
|
||||
def __init__(self, driver: Driver, **kwargs: Any):
|
||||
@@ -208,9 +210,10 @@ from nonebot.drivers import (
|
||||
ASGIMixin,
|
||||
WebSocket,
|
||||
HTTPServerSetup,
|
||||
WebSocketServerSetup
|
||||
WebSocketServerSetup,
|
||||
)
|
||||
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
@override
|
||||
def __init__(self, driver: Driver, **kwargs: Any):
|
||||
@@ -242,7 +245,6 @@ class Adapter(BaseAdapter):
|
||||
)
|
||||
self.setup_websocket_server(ws_setup)
|
||||
|
||||
|
||||
async def _handle_http(self, request: Request) -> Response:
|
||||
"""HTTP 路由处理函数,只有一个类型为 Request 的参数,且返回值类型为 Response"""
|
||||
...
|
||||
@@ -270,8 +272,8 @@ class Adapter(BaseAdapter):
|
||||
```python {7,8,11} title=adapter.py
|
||||
from .bot import Bot
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
def _handle_connect(self):
|
||||
bot_id = ... # 通过配置或者平台 API 等方式,获取到 Bot 的 ID
|
||||
bot = Bot(self, self_id=bot_id) # 实例化 Bot
|
||||
@@ -295,8 +297,8 @@ from .bot import Bot
|
||||
from .event import Event
|
||||
from .log import log
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
@classmethod
|
||||
def payload_to_event(cls, payload: Dict[str, Any]) -> Event:
|
||||
"""根据平台事件的特性,转换平台 payload 为具体 Event
|
||||
@@ -316,7 +318,6 @@ class Adapter(BaseAdapter):
|
||||
# 也可以尝试转为基础 Event 进行处理
|
||||
return type_validate_python(Event, payload)
|
||||
|
||||
|
||||
async def _forward(self, bot: Bot):
|
||||
|
||||
payload: Dict[str, Any] # 接收到的事件数据
|
||||
@@ -337,8 +338,8 @@ from nonebot.drivers import Request, WebSocket
|
||||
|
||||
from .bot import Bot
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
|
||||
class Adapter(BaseAdapter):
|
||||
@override
|
||||
async def _call_api(self, bot: Bot, api: str, **data: Any) -> Any:
|
||||
log("DEBUG", f"Calling API <y>{api}</y>") # 给予日志提示
|
||||
@@ -356,7 +357,6 @@ class Adapter(BaseAdapter):
|
||||
# 发送请求,返回结果
|
||||
return await self.driver.request(request)
|
||||
|
||||
|
||||
# 采用 WebSocket 通信的方式,可以直接调用 send 方法发送数据
|
||||
# 通过某种方式获取到 bot 对应的 websocket 对象
|
||||
ws: WebSocket = your_get_websocket_method(bot.self_id)
|
||||
@@ -450,8 +450,8 @@ from typing_extensions import override
|
||||
from nonebot.compat import model_dump
|
||||
from nonebot.adapters import Event as BaseEvent
|
||||
|
||||
class Event(BaseEvent):
|
||||
|
||||
class Event(BaseEvent):
|
||||
@override
|
||||
def get_event_name(self) -> str:
|
||||
# 返回事件的名称,用于日志打印
|
||||
@@ -488,6 +488,7 @@ class Event(BaseEvent):
|
||||
```python {7,16,20,25,34,42} title=event.py
|
||||
from .message import Message
|
||||
|
||||
|
||||
class HeartbeatEvent(Event):
|
||||
"""心跳时间,通常为元事件"""
|
||||
|
||||
@@ -495,8 +496,10 @@ class HeartbeatEvent(Event):
|
||||
def get_type(self) -> str:
|
||||
return "meta_event"
|
||||
|
||||
|
||||
class MessageEvent(Event):
|
||||
"""消息事件"""
|
||||
|
||||
message_id: str
|
||||
user_id: str
|
||||
|
||||
@@ -513,8 +516,10 @@ class MessageEvent(Event):
|
||||
def get_user_id(self) -> str:
|
||||
return self.user_id
|
||||
|
||||
|
||||
class JoinRoomEvent(Event):
|
||||
"""加入房间事件,通常为通知事件"""
|
||||
|
||||
user_id: str
|
||||
room_id: str
|
||||
|
||||
@@ -522,8 +527,10 @@ class JoinRoomEvent(Event):
|
||||
def get_type(self) -> str:
|
||||
return "notice"
|
||||
|
||||
|
||||
class ApplyAddFriendEvent(Event):
|
||||
"""申请添加好友事件,通常为请求事件"""
|
||||
|
||||
user_id: str
|
||||
|
||||
@override
|
||||
@@ -544,6 +551,7 @@ from nonebot.utils import escape_tag
|
||||
from nonebot.adapters import Message as BaseMessage
|
||||
from nonebot.adapters import MessageSegment as BaseMessageSegment
|
||||
|
||||
|
||||
class MessageSegment(BaseMessageSegment["Message"]):
|
||||
@classmethod
|
||||
@override
|
||||
@@ -591,6 +599,7 @@ class Message(BaseMessage[MessageSegment]):
|
||||
```python title=tests/conftest.py
|
||||
from pathlib import Path
|
||||
import nonebot.adapters
|
||||
|
||||
nonebot.adapters.__path__.append( # type: ignore
|
||||
str((Path(__file__).parent.parent / "nonebot" / "adapters").resolve())
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user