nonebot-adapter-qq 1.5.2__py3-none-any.whl → 1.5.3__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.
@@ -46,7 +46,7 @@ class Adapter(BaseAdapter):
46
46
 
47
47
  self.qq_config: Config = Config(**self.config.dict())
48
48
 
49
- self.tasks: list["asyncio.Task"] = []
49
+ self.tasks: set["asyncio.Task"] = set()
50
50
  self.setup()
51
51
 
52
52
  @classmethod
@@ -85,7 +85,9 @@ class Adapter(BaseAdapter):
85
85
  log("DEBUG", f"QQ api base url: <y>{escape_tag(str(api_base))}</y>")
86
86
 
87
87
  for bot in self.qq_config.qq_bots:
88
- self.tasks.append(asyncio.create_task(self.run_bot(bot)))
88
+ task = asyncio.create_task(self.run_bot(bot))
89
+ task.add_done_callback(self.tasks.discard)
90
+ self.tasks.add(task)
89
91
 
90
92
  async def shutdown(self) -> None:
91
93
  for task in self.tasks:
@@ -123,17 +125,17 @@ class Adapter(BaseAdapter):
123
125
 
124
126
  # start connection in single shard mode
125
127
  if bot_info.shard is not None:
126
- self.tasks.append(
127
- asyncio.create_task(self._forward_ws(bot, ws_url, bot_info.shard))
128
- )
128
+ task = asyncio.create_task(self._forward_ws(bot, ws_url, bot_info.shard))
129
+ task.add_done_callback(self.tasks.discard)
130
+ self.tasks.add(task)
129
131
  return
130
132
 
131
133
  # start connection in sharding mode
132
134
  shards = gateway_info.shards or 1
133
135
  for i in range(shards):
134
- self.tasks.append(
135
- asyncio.create_task(self._forward_ws(bot, ws_url, (i, shards)))
136
- )
136
+ task = asyncio.create_task(self._forward_ws(bot, ws_url, (i, shards)))
137
+ task.add_done_callback(self.tasks.discard)
138
+ self.tasks.add(task)
137
139
  # wait for session start concurrency limit
138
140
  await asyncio.sleep(gateway_info.session_start_limit.max_concurrency or 1)
139
141
 
@@ -318,7 +320,9 @@ class Adapter(BaseAdapter):
318
320
  )
319
321
 
320
322
  if ready_event:
321
- asyncio.create_task(bot.handle_event(ready_event)) # noqa: RUF006
323
+ task = asyncio.create_task(bot.handle_event(ready_event))
324
+ task.add_done_callback(self.tasks.discard)
325
+ self.tasks.add(task)
322
326
 
323
327
  return True
324
328
 
@@ -354,7 +358,9 @@ class Adapter(BaseAdapter):
354
358
  else:
355
359
  if isinstance(event, MessageAuditEvent):
356
360
  audit_result.add_result(event)
357
- asyncio.create_task(bot.handle_event(event)) # noqa: RUF006
361
+ task = asyncio.create_task(bot.handle_event(event))
362
+ task.add_done_callback(self.tasks.discard)
363
+ self.tasks.add(task)
358
364
  elif isinstance(payload, HeartbeatAck):
359
365
  log("TRACE", "Heartbeat ACK")
360
366
  continue
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nonebot-adapter-qq
3
- Version: 1.5.2
3
+ Version: 1.5.3
4
4
  Summary: QQ adapter for nonebot2
5
5
  Home-page: https://github.com/nonebot/adapter-qq
6
6
  License: MIT
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.9
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
21
22
  Requires-Dist: nonebot2 (>=2.2.1,<3.0.0)
22
23
  Requires-Dist: pydantic (>=1.10.0,<3.0.0,!=2.5.0,!=2.5.1)
23
24
  Requires-Dist: typing-extensions (>=4.4.0,<5.0.0)
@@ -1,5 +1,5 @@
1
1
  nonebot/adapters/qq/__init__.py,sha256=jm1QxHfhcYIrWhkXxF9gE4G3lkagrLCWsmVqKBTQSOw,815
2
- nonebot/adapters/qq/adapter.py,sha256=Fa1dVykpC_-mIVgN7b37k45Ecu3cddt2KWwsZSJqrp4,14591
2
+ nonebot/adapters/qq/adapter.py,sha256=mK_lTLADDyV-rXDlsgb4noYeJNnxlHxf-iWZBvxU9uY,14935
3
3
  nonebot/adapters/qq/bot.py,sha256=AA2eGpTZxHRTj3Z7mzCa3K77QdKSL6O-wTcEJ4F7bmE,61394
4
4
  nonebot/adapters/qq/compat.py,sha256=7g5QvRzWREesZ7MSEhNRh53UZwEyhQlxE3e_KpqQ0pw,768
5
5
  nonebot/adapters/qq/config.py,sha256=vvTZ4JRJEQ60PyLh92IEnQkOltdUs41lGKZuYXxq6yA,2135
@@ -14,7 +14,7 @@ nonebot/adapters/qq/models/qq.py,sha256=9gPQZBuuZEOvAsk7a6-w0Gh0Scf4qQL9y08pubdf
14
14
  nonebot/adapters/qq/permission.py,sha256=0aedypl6xymhAV3UkW0vlvHTBkJeDmOef3SxG2tPcHQ,988
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.5.2.dist-info/LICENSE,sha256=4EZBnkZPQYBvtO2KFGaUQHTO8nZ26pGeaCFchdBq_AE,1064
18
- nonebot_adapter_qq-1.5.2.dist-info/METADATA,sha256=8qgJba66rQN3Cd3OEp_btLfeSIck14KQrMAWKwwE1eg,2735
19
- nonebot_adapter_qq-1.5.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
20
- nonebot_adapter_qq-1.5.2.dist-info/RECORD,,
17
+ nonebot_adapter_qq-1.5.3.dist-info/LICENSE,sha256=4EZBnkZPQYBvtO2KFGaUQHTO8nZ26pGeaCFchdBq_AE,1064
18
+ nonebot_adapter_qq-1.5.3.dist-info/METADATA,sha256=VriHr0yg5zp4oD6wVkuN0oRgs5XhY3OJry1uNxRlIts,2786
19
+ nonebot_adapter_qq-1.5.3.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
20
+ nonebot_adapter_qq-1.5.3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 1.9.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any