Appearance
事件处理
基本用法
PyWeWork 使用装饰器注册事件处理函数:
python
from pywework import WeWork, events
wework = WeWork("5.0.3.6005")
@wework.handle(events.TEXT_MESSAGE)
def on_text_message(bot: WeWork, event: dict):
print(f"收到消息: {event['data']['content']}")
wework.run()事件处理函数签名
所有事件处理函数接收两个参数:
python
def handler(bot: WeWork, event: dict):
passbot- WeWork 实例,可用于调用各种 APIevent- 事件数据字典,包含事件详情
事件数据结构
python
{
"type": 11041, # 事件类型
"client_id": 12345, # 客户端 ID
"data": {
"content": "Hello", # 具体数据(因事件类型而异)
...
}
}监听所有消息
使用 events.ALL_MESSAGE 可以监听所有类型的消息:
python
@wework.handle(events.ALL_MESSAGE)
def on_any_message(bot: WeWork, event: dict):
print(f"收到事件: type={event['type']}")多个处理函数
可以为同一事件注册多个处理函数:
python
@wework.handle(events.TEXT_MESSAGE)
def handler1(bot: WeWork, event: dict):
print("Handler 1")
@wework.handle(events.TEXT_MESSAGE)
def handler2(bot: WeWork, event: dict):
print("Handler 2")实用示例
自动回复
python
@wework.handle(events.TEXT_MESSAGE)
def auto_reply(bot: WeWork, event: dict):
conversation_id = event["data"]["conversation_id"]
content = event["data"]["content"]
if content == "你好":
bot.send_text(event["client_id"], conversation_id, "你好!有什么可以帮你的?")好友申请自动通过
python
@wework.handle(events.FRIEND_REQUEST_MESSAGE)
def auto_accept(bot: WeWork, event: dict):
bot.accept_friend_request(
event["client_id"],
event["data"]["user_id"],
event["data"]["corp_id"]
)群成员变动通知
python
@wework.handle(events.GROUP_MEMBER_INCREASE_MESSAGE)
def on_member_join(bot: WeWork, event: dict):
print(f"新成员加入群聊: {event['data']}")
@wework.handle(events.GROUP_MEMBER_DECREASE_MESSAGE)
def on_member_leave(bot: WeWork, event: dict):
print(f"成员退出群聊: {event['data']}")