ErisPulse-OneBot11Adapter 3.0.2__tar.gz → 3.1.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse-OneBot11Adapter
3
- Version: 3.0.2
3
+ Version: 3.1.0
4
4
  Summary: ErisPulse的OneBotV11协议适配模块,异步的OneBot触发器
5
5
  Author-email: wsu2059q <wsu2059@qq.com>
6
6
  License: MIT License
@@ -128,7 +128,7 @@ class OneBotAdapter(sdk.BaseAdapter):
128
128
  self.session: Optional[aiohttp.ClientSession] = None
129
129
  self.connection: Optional[aiohttp.ClientWebSocketResponse] = None
130
130
  self._setup_event_mapping()
131
- self.logger.info("OneBot适配器初始化完成")
131
+ self.logger.info("OneBot11适配器初始化完成")
132
132
 
133
133
  self.convert = self._setup_coverter()
134
134
 
@@ -188,17 +188,63 @@ class OneBotAdapter(sdk.BaseAdapter):
188
188
  self.logger.debug(f"调用OneBot API: {endpoint}")
189
189
 
190
190
  try:
191
- result = await asyncio.wait_for(future, timeout=30)
192
- return result
191
+ raw_response = await asyncio.wait_for(future, timeout=30)
192
+ self.logger.debug(f"API响应: {raw_response}")
193
+
194
+ status = "ok"
195
+ retcode = 0
196
+ message = ""
197
+ message_id = ""
198
+ data = None
199
+
200
+ if raw_response is not None:
201
+ message_id = str(raw_response.get("message_id", ""))
202
+ if "status" in raw_response:
203
+ status = raw_response["status"]
204
+ retcode = raw_response.get("retcode", 0)
205
+ message = raw_response.get("message", "")
206
+ data = raw_response.get("data")
207
+
208
+ if retcode != 0:
209
+ status = "failed"
210
+
211
+ standardized_response = {
212
+ "status": status,
213
+ "retcode": retcode,
214
+ "data": data,
215
+ "message_id": message_id,
216
+ "message": message,
217
+ "onebot_raw": raw_response,
218
+ }
219
+
220
+ if "echo" in params:
221
+ standardized_response["echo"] = params["echo"]
222
+
223
+ return standardized_response
224
+
193
225
  except asyncio.TimeoutError:
194
226
  future.cancel()
195
227
  self.logger.error(f"API调用超时: {endpoint}")
196
- raise TimeoutError(f"API调用超时: {endpoint}")
197
- return None
228
+
229
+ timeout_response = {
230
+ "status": "failed",
231
+ "retcode": 33001,
232
+ "data": None,
233
+ "message_id": "",
234
+ "message": f"API调用超时: {endpoint}",
235
+ "onebot_raw": None
236
+ }
237
+
238
+ if "echo" in params:
239
+ timeout_response["echo"] = params["echo"]
240
+
241
+ return timeout_response
242
+
198
243
  finally:
199
244
  if echo in self._api_response_futures:
200
245
  del self._api_response_futures[echo]
201
246
  self.logger.debug(f"已删除API响应Future: {echo}")
247
+
202
248
  async def connect(self, retry_interval=30):
203
249
  if self.config.get("mode") != "client":
204
250
  return
@@ -214,7 +260,7 @@ class OneBotAdapter(sdk.BaseAdapter):
214
260
  while True:
215
261
  try:
216
262
  self.connection = await self.session.ws_connect(url, headers=headers)
217
- self.logger.info(f"成功连接到OneBot服务器: {url}")
263
+ self.logger.info(f"成功连接到OneBotV11服务器: {url}")
218
264
  asyncio.create_task(self._listen())
219
265
  return
220
266
  except Exception as e:
@@ -248,7 +294,7 @@ class OneBotAdapter(sdk.BaseAdapter):
248
294
  post_type = data.get("post_type")
249
295
  event_type = self.event_map.get(post_type, "unknown")
250
296
  await self.emit(event_type, data)
251
- self.logger.debug(f"处理OneBot事件: {event_type}")
297
+ self.logger.debug(f"处理OneBotV11事件: {event_type}")
252
298
  if hasattr(self.adapter, "emit"):
253
299
  onebot_event = self.convert(data)
254
300
  self.logger.debug(f"OneBot12事件数据: {json.dumps(onebot_event, ensure_ascii=False)}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse-OneBot11Adapter
3
- Version: 3.0.2
3
+ Version: 3.1.0
4
4
  Summary: ErisPulse的OneBotV11协议适配模块,异步的OneBot触发器
5
5
  Author-email: wsu2059q <wsu2059@qq.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ErisPulse-OneBot11Adapter"
3
- version = "3.0.2"
3
+ version = "3.1.0"
4
4
  description = "ErisPulse的OneBotV11协议适配模块,异步的OneBot触发器"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"