Python
Timeout装饰器
timeout装饰器实现了超时回调的功能
1 | |
应用样例(active_message):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30async def call_back():
global message_package
message, group_id, user_id = message_package['message'], message_package['group_id'], message_package['user_id']
message_package = {
"message": "",
"group_id": "",
"user_id": ""
}
await message_reply(message, group_id, user_id)@Timeout(wait=10, on_timeout=call_back)
async def active_message(message, group_id, user_id):
global message_package
message_package['message'] += f"{message}\n"
message_package['group_id'] = str(group_id)
message_package['user_id'] = str(user_id)async def group_handle(message, group_id, user_id):
if message == "开启对话":
return await start_conversation(group_id, user_id)
elif message == "停止对话":
return await stop_conversation(group_id, user_id)
elif message == "遗忘对话":
return await forget_conversation(group_id, user_id)
elif message == "重启对话":
return await restart_conversation(group_id, user_id)
elif user_id in active_conversations:
await active_message(message, group_id, user_id)
else:
return "对话未开启,请输入'开启对话'以开始聊天。"
Record装饰器
record装饰器实现了记录消息到db数据库的功能
1 | |
message_objects消息格式样例如下:
1 | |
应用样例:
1 | |
Driver装饰器
driver装饰器用于插件启动前,停止前函数调用声明
1 | |
调用样例:
1 | |
被on_startup标记的函数会在bot启动前(插件载入阶段)进行调用
被on_shutdown标记的函数会在bot停止前(插件停止阶段)进行调用


























