nonebot-adapter-qq 1.6.0__py3-none-any.whl → 1.6.2__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.
@@ -92,10 +92,7 @@ class Adapter(BaseAdapter):
92
92
  self.driver.on_shutdown(self.shutdown)
93
93
 
94
94
  async def startup(self) -> None:
95
- log(
96
- "DEBUG",
97
- ("QQ run in sandbox mode: " f"<y>{self.qq_config.qq_is_sandbox}</y>"),
98
- )
95
+ log("DEBUG", f"QQ run in sandbox mode: <y>{self.qq_config.qq_is_sandbox}</y>")
99
96
 
100
97
  try:
101
98
  api_base = self.get_api_base()
@@ -464,6 +461,10 @@ class Adapter(BaseAdapter):
464
461
  ):
465
462
  return response
466
463
 
464
+ # ensure bot self info
465
+ if not bot._self_info:
466
+ bot.self_info = await bot.me()
467
+
467
468
  if bot.self_id not in self.bots:
468
469
  self.bot_connect(bot)
469
470
 
@@ -200,6 +200,10 @@ class Bot(BaseBot):
200
200
  raise RuntimeError(f"Bot {self.bot_info} is not connected!")
201
201
  return self._self_info
202
202
 
203
+ @self_info.setter
204
+ def self_info(self, info: User):
205
+ self._self_info = info
206
+
203
207
  @property
204
208
  def ready(self) -> bool:
205
209
  """Bot 是否已经准备就绪"""
@@ -281,9 +285,11 @@ class Bot(BaseBot):
281
285
  return _message
282
286
 
283
287
  @staticmethod
284
- def _extract_send_message(message: Message) -> dict[str, Any]:
288
+ def _extract_send_message(
289
+ message: Message, escape_text: bool = True
290
+ ) -> dict[str, Any]:
285
291
  kwargs = {}
286
- content = message.extract_content() or None
292
+ content = message.extract_content(escape_text) or None
287
293
  kwargs["content"] = content
288
294
  if embed := (message["embed"] or None):
289
295
  kwargs["embed"] = embed[-1].data["embed"]
@@ -347,7 +353,7 @@ class Bot(BaseBot):
347
353
  guild_id=guild_id,
348
354
  msg_id=msg_id,
349
355
  event_id=event_id,
350
- **self._extract_send_message(message=message),
356
+ **self._extract_send_message(message=message, escape_text=True),
351
357
  **self._extract_guild_image(message=message),
352
358
  )
353
359
 
@@ -363,7 +369,7 @@ class Bot(BaseBot):
363
369
  channel_id=channel_id,
364
370
  msg_id=msg_id,
365
371
  event_id=event_id,
366
- **self._extract_send_message(message=message),
372
+ **self._extract_send_message(message=message, escape_text=True),
367
373
  **self._extract_guild_image(message=message),
368
374
  )
369
375
 
@@ -376,12 +382,12 @@ class Bot(BaseBot):
376
382
  event_id: Optional[str] = None,
377
383
  ) -> Union[PostC2CMessagesReturn, PostC2CFilesReturn]:
378
384
  message = self._prepare_message(message)
379
- kwargs = self._extract_send_message(message=message)
385
+ kwargs = self._extract_send_message(message=message, escape_text=False)
380
386
  if kwargs.get("embed"):
381
387
  msg_type = 4
382
388
  elif kwargs.get("ark"):
383
389
  msg_type = 3
384
- elif kwargs.get("markdown"):
390
+ elif kwargs.get("markdown") or kwargs.get("keyboard"):
385
391
  msg_type = 2
386
392
  elif (
387
393
  message["image"]
@@ -425,7 +431,7 @@ class Bot(BaseBot):
425
431
  event_id: Optional[str] = None,
426
432
  ) -> Union[PostGroupMessagesReturn, PostGroupFilesReturn]:
427
433
  message = self._prepare_message(message)
428
- kwargs = self._extract_send_message(message=message)
434
+ kwargs = self._extract_send_message(message=message, escape_text=False)
429
435
  if kwargs.get("embed"):
430
436
  msg_type = 4
431
437
  elif kwargs.get("ark"):
@@ -1674,7 +1680,11 @@ class Bot(BaseBot):
1674
1680
  embed.dict(exclude_none=True) if embed is not None else None
1675
1681
  ),
1676
1682
  "image": image,
1677
- "message_reference": message_reference,
1683
+ "message_reference": (
1684
+ message_reference.dict(exclude_none=True)
1685
+ if message_reference is not None
1686
+ else None
1687
+ ),
1678
1688
  "event_id": event_id,
1679
1689
  "msg_id": msg_id,
1680
1690
  "msg_seq": msg_seq,
@@ -1776,7 +1786,11 @@ class Bot(BaseBot):
1776
1786
  embed.dict(exclude_none=True) if embed is not None else None
1777
1787
  ),
1778
1788
  "image": image,
1779
- "message_reference": message_reference,
1789
+ "message_reference": (
1790
+ message_reference.dict(exclude_none=True)
1791
+ if message_reference is not None
1792
+ else None
1793
+ ),
1780
1794
  "event_id": event_id,
1781
1795
  "msg_id": msg_id,
1782
1796
  "msg_seq": msg_seq,
@@ -532,9 +532,9 @@ class Message(BaseMessage[MessageSegment]):
532
532
  )
533
533
  return msg
534
534
 
535
- def extract_content(self) -> str:
535
+ def extract_content(self, escape_text: bool = True) -> str:
536
536
  return "".join(
537
- str(seg)
537
+ seg.data["text"] if not escape_text and seg.type == "text" else str(seg)
538
538
  for seg in self
539
539
  if seg.type
540
540
  in ("text", "emoji", "mention_user", "mention_everyone", "mention_channel")
@@ -10,11 +10,13 @@ from nonebot.adapters.qq.compat import field_validator
10
10
  class FriendAuthor(BaseModel):
11
11
  id: str
12
12
  user_openid: str
13
+ union_openid: Optional[str] = None
13
14
 
14
15
 
15
16
  class GroupMemberAuthor(BaseModel):
16
17
  id: str
17
18
  member_openid: str
19
+ union_openid: Optional[str] = None
18
20
 
19
21
 
20
22
  class Attachment(BaseModel):
@@ -1,8 +1,7 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: nonebot-adapter-qq
3
- Version: 1.6.0
3
+ Version: 1.6.2
4
4
  Summary: QQ adapter for nonebot2
5
- Home-page: https://github.com/nonebot/adapter-qq
6
5
  License: MIT
7
6
  Keywords: bot,qq,qqbot,qqguild
8
7
  Author: yanyongyu
@@ -25,6 +24,7 @@ Requires-Dist: pydantic (>=1.10.0,<3.0.0,!=2.5.0,!=2.5.1)
25
24
  Requires-Dist: typing-extensions (>=4.4.0,<5.0.0)
26
25
  Requires-Dist: yarl (>=1.9.0,<2.0.0)
27
26
  Project-URL: Documentation, https://github.com/nonebot/adapter-qq#readme
27
+ Project-URL: Homepage, https://github.com/nonebot/adapter-qq
28
28
  Project-URL: Repository, https://github.com/nonebot/adapter-qq
29
29
  Description-Content-Type: text/markdown
30
30
 
@@ -1,20 +1,20 @@
1
1
  nonebot/adapters/qq/__init__.py,sha256=jm1QxHfhcYIrWhkXxF9gE4G3lkagrLCWsmVqKBTQSOw,815
2
- nonebot/adapters/qq/adapter.py,sha256=-wtvqeK-LmqhTkWtTwwjdh6K84GGEAmLrbUNfnbXMRY,21177
3
- nonebot/adapters/qq/bot.py,sha256=A3nrkdgXj_AtzN1kebgkhfOjmAyI-s6f0ShQxJVu3wc,61167
2
+ nonebot/adapters/qq/adapter.py,sha256=UwAjO168oWmvb3frjay4CTC54xq3hsCiVbeFxRwaGxI,21243
3
+ nonebot/adapters/qq/bot.py,sha256=dU84L8bjg3DWb5B8f_pX9xS5Y7dY8dL0mM-bHFl_3vg,61735
4
4
  nonebot/adapters/qq/compat.py,sha256=Fr96IgBHHiEqGm8DVmlTekuaNdI5EPxti7J7HDwOHwg,767
5
5
  nonebot/adapters/qq/config.py,sha256=YRVpGNvslGcNHNbbFN9LOjZ98-yon5x9GMF98FVJ2xo,1974
6
6
  nonebot/adapters/qq/event.py,sha256=3A78iz-G6wC-KsW5gYQM16veqgCtjWWsb8AysXhDOK4,18802
7
7
  nonebot/adapters/qq/exception.py,sha256=8Xa9NwYyO7Ih0owBAC_zmEiIRAA8GjgQcoJcF5ogo0g,2701
8
- nonebot/adapters/qq/message.py,sha256=q4dhlpuQ-Fyiqj2_cL1TCaZutdF41fcyGXpiI6RucVg,15526
8
+ nonebot/adapters/qq/message.py,sha256=74H7L3FTpZu5GAm4j3wnVYf7wJQ_kP9HHjqaXn3uRTQ,15616
9
9
  nonebot/adapters/qq/models/__init__.py,sha256=q2OhopcTn0UD2wuep_86dXMVhF_wQBzBDhyGLN1q0OE,631
10
10
  nonebot/adapters/qq/models/common.py,sha256=Hoot6Qr3PGj13G4Cz2Eyr-liaLiJXBpxpeM59IXBri0,4539
11
11
  nonebot/adapters/qq/models/guild.py,sha256=uKvSijWFMJ0x26Gd04b8QbUr8IOIn3U3m1d-I6xTrcI,11686
12
12
  nonebot/adapters/qq/models/payload.py,sha256=IhAx2W5rN8ihg2NchQ9rJMfcxDecwnnJ-5_N-ky8deM,3261
13
- nonebot/adapters/qq/models/qq.py,sha256=giLeCJ17YDoP8tdjlL99jr5WUguvRJVabQPriV8kmFc,1853
13
+ nonebot/adapters/qq/models/qq.py,sha256=JH-1tC7ujwHpuJtPefGOJh2NQjrxAL7L-aRyu7xqplU,1931
14
14
  nonebot/adapters/qq/permission.py,sha256=Jw00btklCMviP001MBlLQmqThb9OsjJwHO1nTEDFRWM,989
15
15
  nonebot/adapters/qq/store.py,sha256=GKVbto6K7jI-oK9tSbw_xLxDiSA6Y9QnNQStKJU7mEY,868
16
16
  nonebot/adapters/qq/utils.py,sha256=bzJwm1zWyHjFILr-bHrBKpKlkiveph9S4pLAXMcW9AY,1538
17
- nonebot_adapter_qq-1.6.0.dist-info/LICENSE,sha256=4EZBnkZPQYBvtO2KFGaUQHTO8nZ26pGeaCFchdBq_AE,1064
18
- nonebot_adapter_qq-1.6.0.dist-info/METADATA,sha256=IqQhCethVtQJt4_AuEyX1gHfs0cdWPX-bwx-pDh8ZHw,3383
19
- nonebot_adapter_qq-1.6.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
20
- nonebot_adapter_qq-1.6.0.dist-info/RECORD,,
17
+ nonebot_adapter_qq-1.6.2.dist-info/LICENSE,sha256=4EZBnkZPQYBvtO2KFGaUQHTO8nZ26pGeaCFchdBq_AE,1064
18
+ nonebot_adapter_qq-1.6.2.dist-info/METADATA,sha256=x4uMaiMSnl-yCX16FWdRuCTzm9XeUroid3HmDTPX_oc,3395
19
+ nonebot_adapter_qq-1.6.2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
20
+ nonebot_adapter_qq-1.6.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.1
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any