nonebot-adapter-qq 1.4.3__py3-none-any.whl → 1.4.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,11 @@
1
1
  import sys
2
- import json
3
2
  import asyncio
4
3
  from typing_extensions import override
5
4
  from typing import Any, List, Tuple, Literal, Optional
6
5
 
7
6
  from nonebot.utils import escape_tag
8
7
  from nonebot.exception import WebSocketClosed
9
- from nonebot.compat import PYDANTIC_V2, type_validate_python
8
+ from nonebot.compat import PYDANTIC_V2, type_validate_json, type_validate_python
10
9
  from nonebot.drivers import (
11
10
  URL,
12
11
  Driver,
@@ -68,7 +67,7 @@ class Adapter(BaseAdapter):
68
67
  "websocket client! "
69
68
  "QQ Adapter need a WebSocketClient Driver to work."
70
69
  )
71
- self.driver.on_startup(self.startup)
70
+ self.on_ready(self.startup)
72
71
  self.driver.on_shutdown(self.shutdown)
73
72
 
74
73
  async def startup(self) -> None:
@@ -241,7 +240,8 @@ class Adapter(BaseAdapter):
241
240
  ) -> Optional[Literal[True]]:
242
241
  """鉴权连接"""
243
242
  if not bot.ready:
244
- payload = Identify.parse_obj(
243
+ payload = type_validate_python(
244
+ Identify,
245
245
  {
246
246
  "data": {
247
247
  "token": await bot._get_authorization_header(),
@@ -252,18 +252,19 @@ class Adapter(BaseAdapter):
252
252
  "$language": f"python {sys.version}",
253
253
  "$sdk": "NoneBot2",
254
254
  },
255
- },
256
- }
255
+ }
256
+ },
257
257
  )
258
258
  else:
259
- payload = Resume.parse_obj(
259
+ payload = type_validate_python(
260
+ Resume,
260
261
  {
261
262
  "data": {
262
263
  "token": await bot._get_authorization_header(),
263
264
  "session_id": bot.session_id,
264
265
  "seq": bot.sequence,
265
266
  }
266
- }
267
+ },
267
268
  )
268
269
 
269
270
  try:
@@ -326,7 +327,7 @@ class Adapter(BaseAdapter):
326
327
  while True:
327
328
  if bot.ready:
328
329
  log("TRACE", f"Heartbeat {bot.sequence}")
329
- payload = Heartbeat.parse_obj({"data": bot.sequence})
330
+ payload = type_validate_python(Heartbeat, {"data": bot.sequence})
330
331
  try:
331
332
  await ws.send(self.payload_to_json(payload))
332
333
  except Exception as e:
@@ -387,7 +388,7 @@ class Adapter(BaseAdapter):
387
388
 
388
389
  @staticmethod
389
390
  async def receive_payload(bot: Bot, ws: WebSocket) -> Payload:
390
- payload = type_validate_python(PayloadType, json.loads(await ws.receive()))
391
+ payload = type_validate_json(PayloadType, await ws.receive())
391
392
  if isinstance(payload, Dispatch):
392
393
  bot.on_dispatch(payload)
393
394
  return payload
@@ -1,3 +1,4 @@
1
+ from datetime import datetime
1
2
  from urllib.parse import urlparse
2
3
  from typing import List, Literal, Optional
3
4
 
@@ -119,6 +120,19 @@ class MessageKeyboard(BaseModel):
119
120
  content: Optional[InlineKeyboard] = None
120
121
 
121
122
 
123
+ # Message Audit Event
124
+ class MessageAudited(BaseModel):
125
+ audit_id: str
126
+ message_id: Optional[str] = None
127
+ user_openid: Optional[str] = None
128
+ group_openid: Optional[str] = None
129
+ guild_id: Optional[str] = None
130
+ channel_id: Optional[str] = None
131
+ audit_time: datetime
132
+ create_time: Optional[datetime] = None
133
+ seq_in_channel: Optional[str] = None
134
+
135
+
122
136
  # Interaction Event
123
137
  class ButtonInteractionContent(BaseModel):
124
138
  user_id: Optional[str] = None
@@ -167,6 +181,7 @@ __all__ = [
167
181
  "InlineKeyboardRow",
168
182
  "InlineKeyboard",
169
183
  "MessageKeyboard",
184
+ "MessageAudited",
170
185
  "ButtonInteractionContent",
171
186
  "ButtonInteractionData",
172
187
  "ButtonInteraction",
@@ -162,17 +162,6 @@ class MessageDelete(BaseModel):
162
162
  op_user: User
163
163
 
164
164
 
165
- # Message Audit Event
166
- class MessageAudited(BaseModel):
167
- audit_id: str
168
- message_id: Optional[str] = None
169
- guild_id: str
170
- channel_id: str
171
- audit_time: datetime
172
- create_time: Optional[datetime] = None
173
- seq_in_channel: Optional[str] = None
174
-
175
-
176
165
  # Message Setting
177
166
  class MessageSetting(BaseModel):
178
167
  disable_create_dm: bool
@@ -525,7 +514,6 @@ __all__ = [
525
514
  "ChannelPermissions",
526
515
  "Message",
527
516
  "MessageDelete",
528
- "MessageAudited",
529
517
  "MessageSetting",
530
518
  "DMS",
531
519
  "RecommendChannel",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nonebot-adapter-qq
3
- Version: 1.4.3
3
+ Version: 1.4.4
4
4
  Summary: QQ adapter for nonebot2
5
5
  Home-page: https://github.com/nonebot/adapter-qq
6
6
  License: MIT
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.9
19
19
  Classifier: Programming Language :: Python :: 3.10
20
20
  Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
- Requires-Dist: nonebot2 (>=2.2.0,<3.0.0)
22
+ Requires-Dist: nonebot2 (>=2.2.1,<3.0.0)
23
23
  Requires-Dist: pydantic (>=1.10.0,<3.0.0,!=2.5.0,!=2.5.1)
24
24
  Requires-Dist: typing-extensions (>=4.4.0,<5.0.0)
25
25
  Requires-Dist: yarl (>=1.9.0,<2.0.0)
@@ -1,5 +1,5 @@
1
1
  nonebot/adapters/qq/__init__.py,sha256=u2bR9HLdgIEV22nu2VJeUFscklTUj8DN4650q0k5SHw,787
2
- nonebot/adapters/qq/adapter.py,sha256=WAvX20qtfn1xaCPRRVImZy-omYiDWqf2vXz8aQoPHQE,14410
2
+ nonebot/adapters/qq/adapter.py,sha256=ivVkSvUFcQEGIp9AmDTwP17HFNnrMmg6LYF1pfORi2s,14464
3
3
  nonebot/adapters/qq/bot.py,sha256=cxIJKilZbsqP9zn66xlxJJeHV3FexR7HHqS3qjrkR9o,60571
4
4
  nonebot/adapters/qq/compat.py,sha256=7g5QvRzWREesZ7MSEhNRh53UZwEyhQlxE3e_KpqQ0pw,768
5
5
  nonebot/adapters/qq/config.py,sha256=rdBWweI0db8-9KQF-lvNLMCMa55PJPOkvn9DVJMprac,2148
@@ -7,14 +7,14 @@ nonebot/adapters/qq/event.py,sha256=4VvHq7l5aQYmIEBLpjHrCL_neqYBTximeuPHQHnt384,
7
7
  nonebot/adapters/qq/exception.py,sha256=8Xa9NwYyO7Ih0owBAC_zmEiIRAA8GjgQcoJcF5ogo0g,2701
8
8
  nonebot/adapters/qq/message.py,sha256=JQsK9SDVXq_5FKnH6gLtbVXSgTnKPoNwA9Yhzrm6Z6c,11292
9
9
  nonebot/adapters/qq/models/__init__.py,sha256=AahR-O5B_1c8dMXHpDH68o4qojhF3vf4UPDGyH2MKjA,537
10
- nonebot/adapters/qq/models/common.py,sha256=ml178vUJCfxv4fNEsGK7PKM-UiKpWlAi4bYmm-CypwQ,4046
11
- nonebot/adapters/qq/models/guild.py,sha256=H8exZ3RvyQy4nnJ_iW-DYuQjMXCRuW8IIfd3hjfDvy4,11973
10
+ nonebot/adapters/qq/models/common.py,sha256=AgGtLf2vC_rxluKFp26PTq0nFFPKuI_ALcGKdwped7A,4468
11
+ nonebot/adapters/qq/models/guild.py,sha256=ZVSqYfm0_gP5hiTTQoPjhWZ06e7XzdaIVsPDyc2WrVs,11692
12
12
  nonebot/adapters/qq/models/payload.py,sha256=WCjf9usGO4nlaYT99j3bsk8yLuUUlwfSK0gNqAONN6o,2819
13
13
  nonebot/adapters/qq/models/qq.py,sha256=zzpHdXgSHoiT-tPyjmR2YjL4IZpLogc-tvAThh7WvdM,1859
14
14
  nonebot/adapters/qq/permission.py,sha256=0aedypl6xymhAV3UkW0vlvHTBkJeDmOef3SxG2tPcHQ,988
15
15
  nonebot/adapters/qq/store.py,sha256=X-NeSVCrxngQDPo9IXKWehERNa4sefdrYrZn5-yucF4,874
16
16
  nonebot/adapters/qq/utils.py,sha256=rMHpOf1zUrVodCYULMTBr82pF54tGK3b5TMykSnY6jc,1568
17
- nonebot_adapter_qq-1.4.3.dist-info/LICENSE,sha256=4EZBnkZPQYBvtO2KFGaUQHTO8nZ26pGeaCFchdBq_AE,1064
18
- nonebot_adapter_qq-1.4.3.dist-info/METADATA,sha256=VFQ3Bow3UuiBrtpxSuraenWDSwydTglBQBUAQw-9rsA,2785
19
- nonebot_adapter_qq-1.4.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
20
- nonebot_adapter_qq-1.4.3.dist-info/RECORD,,
17
+ nonebot_adapter_qq-1.4.4.dist-info/LICENSE,sha256=4EZBnkZPQYBvtO2KFGaUQHTO8nZ26pGeaCFchdBq_AE,1064
18
+ nonebot_adapter_qq-1.4.4.dist-info/METADATA,sha256=UKdNJV7sHauTPKGloYluCatTS9TIZ0Fx66fqROdpdZg,2785
19
+ nonebot_adapter_qq-1.4.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
20
+ nonebot_adapter_qq-1.4.4.dist-info/RECORD,,