OneBotConnecter 0.3.0__tar.gz → 0.3.2__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.3.0
3
+ Version: 0.3.2
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.3.00"
7
+ version = "0.3.02"
8
8
  authors = [
9
9
  { name="Sugar51243", email="1733682365@qq.com" },
10
10
  ]
@@ -34,6 +34,7 @@ class OneBot:
34
34
  testMode = False #调试模式
35
35
  #信息缓存
36
36
  message_list = [] #信息缓存
37
+ get_message = True
37
38
  #构造体
38
39
  def __init__(self, uri: str, owner: list[str] = None, botName: list[str] = None, localtion: str = None, testMode = False):
39
40
  #接口地址
@@ -97,24 +98,26 @@ class OneBot:
97
98
  #连接正常
98
99
  try:
99
100
  #从接口收取信息
100
- message = await self.bot.recv()
101
- message = json.loads(message)
102
- #处理 => 缓存
103
- try:
104
- #识别是否为心跳信息
105
- if message["post_type"] != "meta_event" and self.bot != None:
106
- self.message_list.append(message) #放入缓存,排队处理
107
- elif self.testMode: print(f"{message}\n") #调试模式下打印所有信息
108
- except:
109
- #报错处理,这里可能是来自post_type的Key_Exception
110
- # 所以打印处理,方便进一步人工识别和修改
111
- print(f"{message}\n")
101
+ if self.get_message:
102
+ message = await self.bot.recv()
103
+ message = json.loads(message)
104
+ #处理 => 缓存
105
+ try:
106
+ #识别是否为心跳信息
107
+ if message["post_type"] != "meta_event" and self.bot != None:
108
+ self.message_list.append(message) #放入缓存,排队处理
109
+ elif self.testMode: print(f"{message}\n") #调试模式下打印所有信息
110
+ except:
111
+ #报错处理,这里可能是来自post_type的Key_Exception
112
+ # 所以打印处理,方便进一步人工识别和修改
113
+ print(f"{message}\n")
112
114
  #处理 => 信息
113
115
  if self.testMode: print(f"待处理信息列表数量为: {len(self.message_list)}\n")
114
116
  #一口气清空缓存
115
117
  while len(self.message_list) > 0:
116
118
  try:
117
119
  message = self.message_list.pop(0)
120
+ if self.testMode: print(f"{message}\n")
118
121
  await callback(self, message)
119
122
  except Exception as e:
120
123
  traceback.print_exc()
@@ -147,9 +150,11 @@ class OneBot:
147
150
  #发送
148
151
  await self.bot.send(datapack)
149
152
  #收集处理结果
150
- try:
153
+ message = None
154
+ get_message = False
155
+ while True:
151
156
  #因为处理可能会有延迟,需要识别从接口收取的信息
152
- while True:
157
+ try:
153
158
  #从接口收取信息
154
159
  callback = await self.bot.recv()
155
160
  message = json.loads(callback)
@@ -159,22 +164,36 @@ class OneBot:
159
164
  try:
160
165
  if message["post_type"] != "meta_event" and self.bot != None:
161
166
  self.message_list.append(message)
167
+ if self.testMode: print("正在处理其他信息,缓存信息")
162
168
  #其他信息 => 识别
163
169
  except:
164
- if message == {}: break
165
- elif type(message["status"]) == str: break
166
- elif self.testMode: print(f"{message}\n")
170
+ if message == {}:
171
+ if self.testMode: print("空包识别")
172
+ break
173
+ try:
174
+ if self.testMode: print("retcode识别")
175
+ retcode = message["retcode"]
176
+ break
177
+ except:
178
+ if self.testMode:
179
+ print("其他信息识别:")
180
+ print(f"{message}\n")
167
181
  #继续收取
168
182
  await asyncio.sleep(1)
169
183
  #非常规信息 => 强行返回
170
184
  except:
171
- if self.testMode: print(message)
185
+ if self.testMode:
186
+ print("非常规信息识别:")
187
+ print(f"{message}\n")
172
188
  break
173
- #识别完毕,返回
174
- if self.testMode: print(f"数据包返回: {message}\n")
175
- return message
176
- #处理失败
177
- except: return None
189
+ #异步报错
190
+ except RuntimeError: pass
191
+ #处理失败
192
+ except Exception as e: print(e)
193
+ get_message = True
194
+ #识别完毕,返回
195
+ if self.testMode: print(f"数据包返回: {message}\n")
196
+ return message
178
197
  #调试模式开关
179
198
  async def test(self, testMode: bool = False):
180
199
  self.testMode = testMode
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OneBotConnecter
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: 基于websocket(服务器正向)连接的onebot11通用python接口
5
5
  Author-email: Sugar51243 <1733682365@qq.com>
6
6
  License: MIT License
File without changes