OneBotConnecter 0.4.5__tar.gz → 0.4.6__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: OneBotConnecter
3
- Version: 0.4.5
3
+ Version: 0.4.6
4
4
  Summary: 基于websocket(服务器正向)连接的onebot11通用python接口
5
5
  Author-email: Sugar51243 <1733682365@qq.com>
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "OneBotConnecter"
7
- version = "0.4.05"
7
+ version = "0.4.06"
8
8
  authors = [
9
9
  { name="Sugar51243", email="1733682365@qq.com" },
10
10
  ]
@@ -155,8 +155,8 @@ class OneBot:
155
155
  print(f"获取信息: {message}", needPrint=self.testMode)
156
156
  #处理 => 缓存
157
157
  try:
158
- #识别是否为心跳信息
159
- if message["post_type"] != "meta_event" and self.bot != None:
158
+ #识别是否为心跳信息及空包
159
+ if message.get("post_type", None) != "meta_event" and self.bot != None and message != {}:
160
160
  self.message_list.append(message) #放入缓存,排队处理
161
161
  print(f"非心跳信息,已放入缓存", needPrint=self.testMode)
162
162
  except Exception as e:
@@ -168,11 +168,13 @@ class OneBot:
168
168
  #处理 => 信息
169
169
  print(f"待处理信息列表数量为: {len(self.message_list)}", needPrint=self.testMode)
170
170
  #一口气清空缓存
171
- while len(self.message_list) > 0:
171
+ temp = self.message_list.copy()
172
+ for message in temp:
172
173
  try:
173
- message = self.message_list.pop(0)
174
+ if message.get("retcode", None) != None: continue #跳过带有retcode的信息
174
175
  print(f"正在处理: {message}", needPrint=self.testMode)
175
176
  await callback(self, message)
177
+ self.message_list.remove(message)
176
178
  except Exception as e:
177
179
  tb = e.__traceback__
178
180
  formatted_tb = ''.join(traceback.format_tb(tb))
@@ -201,6 +203,7 @@ class OneBot:
201
203
  "params": params
202
204
  }
203
205
  return json.dumps(data)
206
+
204
207
  #把数据包发送至机器人端口,并收集处理结果
205
208
  async def _sendToServer(self, action: str, params: dict):
206
209
  #构造数据包
@@ -211,6 +214,7 @@ class OneBot:
211
214
  #收集处理结果
212
215
  message = None
213
216
  while True:
217
+ #中断正常信息收集
214
218
  if self.get_message:
215
219
  print(f"中断信息收集", needPrint=self.testMode)
216
220
  self.get_message = False
@@ -219,31 +223,18 @@ class OneBot:
219
223
  #从接口收取信息
220
224
  callback = await self.bot.recv()
221
225
  message = json.loads(callback)
226
+ #识别心跳和空包
222
227
  print(f"数据包发送后收取: {message}", needPrint=self.testMode)
223
- #识别是否为正常信息
224
- try:
225
- #正常信息 => 缓存
226
- try:
227
- if message["post_type"] != "meta_event" and self.bot != None:
228
- self.message_list.append(message)
229
- print("正在处理其他信息,缓存信息", needPrint=self.testMode)
230
- #其他信息 => 识别
231
- except:
232
- if message == {}:
233
- print("空包识别", needPrint=self.testMode)
234
- break
235
- try:
236
- print("retcode识别", needPrint=self.testMode)
237
- retcode = message["retcode"]
238
- break
239
- except:
240
- print(f"其他信息识别", needPrint=self.testMode)
241
- #非常规信息 => 强行返回
242
- except:
243
- tb = e.__traceback__
244
- formatted_tb = ''.join(traceback.format_tb(tb))
245
- print(f"报错识别: \n{formatted_tb}", needPrint=self.testMode)
246
- break
228
+ if message.get("post_type", None) != "meta_event" and self.bot != None and message != {}:
229
+ self.message_list.append(message)
230
+ print("缓存信息", needPrint=self.testMode)
231
+ #识别带有rercode的信息
232
+ for message in self.message_list:
233
+ if message.get("retcode", None) != None:
234
+ print("retcode识别", needPrint=self.testMode)
235
+ retcode_message = message
236
+ self.message_list.remove(message)
237
+ break
247
238
  #异步报错
248
239
  except RuntimeError: pass
249
240
  #处理失败
@@ -258,8 +249,9 @@ class OneBot:
258
249
  self.get_message = True
259
250
  print(f"恢复信息收集", needPrint=self.testMode)
260
251
  #识别完毕,返回
261
- print(f"数据包返回: {message}", needPrint=self.testMode)
262
- return message
252
+ print(f"数据包返回: {retcode_message}", needPrint=self.testMode)
253
+ return retcode_message
254
+
263
255
  #调试模式开关
264
256
  async def test(self, testMode: bool = False):
265
257
  self.testMode = testMode
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OneBotConnecter
3
- Version: 0.4.5
3
+ Version: 0.4.6
4
4
  Summary: 基于websocket(服务器正向)连接的onebot11通用python接口
5
5
  Author-email: Sugar51243 <1733682365@qq.com>
6
6
  License: MIT License
File without changes