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.
- {onebotconnecter-0.3.0/src/OneBotConnecter.egg-info → onebotconnecter-0.3.2}/PKG-INFO +1 -1
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/pyproject.toml +1 -1
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/src/OneBotConnecter/OneBot.py +42 -23
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2/src/OneBotConnecter.egg-info}/PKG-INFO +1 -1
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/LICENSE +0 -0
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/README.md +0 -0
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/setup.cfg +0 -0
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/src/OneBotConnecter/MessageType.py +0 -0
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/src/OneBotConnecter/__init__.py +0 -0
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/src/OneBotConnecter.egg-info/SOURCES.txt +0 -0
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/src/OneBotConnecter.egg-info/dependency_links.txt +0 -0
- {onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/src/OneBotConnecter.egg-info/top_level.txt +0 -0
|
@@ -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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
self.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
153
|
+
message = None
|
|
154
|
+
get_message = False
|
|
155
|
+
while True:
|
|
151
156
|
#因为处理可能会有延迟,需要识别从接口收取的信息
|
|
152
|
-
|
|
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 == {}:
|
|
165
|
-
|
|
166
|
-
|
|
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:
|
|
185
|
+
if self.testMode:
|
|
186
|
+
print("非常规信息识别:")
|
|
187
|
+
print(f"{message}\n")
|
|
172
188
|
break
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{onebotconnecter-0.3.0 → onebotconnecter-0.3.2}/src/OneBotConnecter.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|