OneBotConnecter 0.3.1__tar.gz → 0.3.3__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.1
3
+ Version: 0.3.3
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.01"
7
+ version = "0.3.03"
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,18 +98,19 @@ 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
  #一口气清空缓存
@@ -148,9 +150,11 @@ class OneBot:
148
150
  #发送
149
151
  await self.bot.send(datapack)
150
152
  #收集处理结果
151
- try:
153
+ message = None
154
+ self.get_message = False
155
+ while True:
152
156
  #因为处理可能会有延迟,需要识别从接口收取的信息
153
- while True:
157
+ try:
154
158
  #从接口收取信息
155
159
  callback = await self.bot.recv()
156
160
  message = json.loads(callback)
@@ -160,25 +164,36 @@ class OneBot:
160
164
  try:
161
165
  if message["post_type"] != "meta_event" and self.bot != None:
162
166
  self.message_list.append(message)
167
+ if self.testMode: print("正在处理其他信息,缓存信息")
163
168
  #其他信息 => 识别
164
169
  except:
165
- if message == {}: break
170
+ if message == {}:
171
+ if self.testMode: print("空包识别")
172
+ break
166
173
  try:
174
+ if self.testMode: print("retcode识别")
167
175
  retcode = message["retcode"]
168
176
  break
169
177
  except:
170
- if self.testMode: print(f"{message}\n")
171
- #继续收取
172
- await asyncio.sleep(1)
178
+ if self.testMode:
179
+ print("其他信息识别:")
180
+ print(f"{message}\n")
173
181
  #非常规信息 => 强行返回
174
182
  except:
175
- if self.testMode: print(message)
183
+ if self.testMode:
184
+ print("非常规信息识别:")
185
+ print(f"{message}\n")
176
186
  break
177
- #识别完毕,返回
178
- if self.testMode: print(f"数据包返回: {message}\n")
179
- return message
180
- #处理失败
181
- except: return None
187
+ #异步报错
188
+ except RuntimeError: pass
189
+ #处理失败
190
+ except Exception as e: print(e)
191
+ #继续收取
192
+ await asyncio.sleep(1)
193
+ self.get_message = True
194
+ #识别完毕,返回
195
+ if self.testMode: print(f"数据包返回: {message}\n")
196
+ return message
182
197
  #调试模式开关
183
198
  async def test(self, testMode: bool = False):
184
199
  self.testMode = testMode
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OneBotConnecter
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Summary: 基于websocket(服务器正向)连接的onebot11通用python接口
5
5
  Author-email: Sugar51243 <1733682365@qq.com>
6
6
  License: MIT License
File without changes