nonebot-adapter-qq 1.6.0__tar.gz → 1.6.1__tar.gz

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.
Files changed (20) hide show
  1. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/PKG-INFO +2 -2
  2. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/adapter.py +5 -4
  3. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/bot.py +12 -6
  4. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/message.py +2 -2
  5. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/models/qq.py +2 -0
  6. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/pyproject.toml +2 -2
  7. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/LICENSE +0 -0
  8. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/README.md +0 -0
  9. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/__init__.py +0 -0
  10. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/compat.py +0 -0
  11. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/config.py +0 -0
  12. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/event.py +0 -0
  13. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/exception.py +0 -0
  14. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/models/__init__.py +0 -0
  15. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/models/common.py +0 -0
  16. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/models/guild.py +0 -0
  17. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/models/payload.py +0 -0
  18. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/permission.py +0 -0
  19. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/store.py +0 -0
  20. {nonebot_adapter_qq-1.6.0 → nonebot_adapter_qq-1.6.1}/nonebot/adapters/qq/utils.py +0 -0
@@ -1,6 +1,6 @@
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.1
4
4
  Summary: QQ adapter for nonebot2
5
5
  Home-page: https://github.com/nonebot/adapter-qq
6
6
  License: MIT
@@ -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,7 +382,7 @@ 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"):
@@ -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"):
@@ -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,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "nonebot-adapter-qq"
3
- version = "1.6.0"
3
+ version = "1.6.1"
4
4
  description = "QQ adapter for nonebot2"
5
5
  authors = ["yanyongyu <yyy@nonebot.dev>"]
6
6
  license = "MIT"
@@ -27,7 +27,7 @@ typing-extensions = ">=4.4.0, <5.0.0"
27
27
  pydantic = ">=1.10.0,<3.0.0,!=2.5.0,!=2.5.1"
28
28
 
29
29
  [tool.poetry.group.dev.dependencies]
30
- ruff = "^0.8.0"
30
+ ruff = "^0.9.0"
31
31
  isort = "^5.10.1"
32
32
  nonemoji = "^0.1.3"
33
33
  pre-commit = "^4.0.0"