WeChatFerry/App/App.py

71 lines
2.1 KiB
Python
Raw Normal View History

2021-02-12 23:21:57 +08:00
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import time
import wcferry as sdk
def main():
print(dir(sdk)) # 查看SDK支持的方法和属性
help(sdk.WxSetTextMsgCb) # 查看某方法的情况
help(sdk.WxMessage) # 查看消息结构
2021-08-28 08:33:24 +08:00
help(sdk.WxContact) # 查看通讯录结构
2021-02-12 23:21:57 +08:00
WxMsgTypes = sdk.WxGetMsgTypes() # 获取消息类型
print(WxMsgTypes) # 查看消息类型
# 初始化SDK如果成功返回0否则失败
status = sdk.WxInitSDK()
if status != 0:
print("初始化失败")
exit(-1)
print("初始化成功")
2021-08-28 08:33:24 +08:00
time.sleep(2)
print("打印通讯录......")
contacts = sdk.WxGetContacts()
for k, v in contacts.items():
print(k, v.wxCode, v.wxName, v.wxCountry, v.wxProvince, v.wxCity, v.wxGender)
2021-02-12 23:21:57 +08:00
time.sleep(2)
print("发送文本消息......")
sdk.WxSendTextMsg("filehelper", "", "message from WeChatFerry...")
2021-08-22 21:57:16 +08:00
time.sleep(2)
print("发送图片消息......")
sdk.WxSendImageMsg("filehelper", "test.jpg")
2021-02-12 23:21:57 +08:00
# 接收消息。先定义消息处理回调
def OnTextMsg(msg: sdk.WxMessage):
2021-08-28 08:33:24 +08:00
s = "收到"
2021-02-12 23:21:57 +08:00
if msg.self == 1: # 忽略自己发的消息
2021-08-28 08:33:24 +08:00
s += f"来自自己的消息"
print(f"\n{s}")
2021-02-12 23:21:57 +08:00
return 0
msgType = WxMsgTypes.get(msg.type, '未知消息类型')
2021-08-28 08:33:24 +08:00
nickName = contacts.get(msg.wxId, {'wxName': 'NoBody'}).wxName
2021-02-12 23:21:57 +08:00
if msg.source == 0:
2021-08-28 08:33:24 +08:00
s += f"来自好友[{nickName}]的{msgType}消息:"
2021-02-12 23:21:57 +08:00
else:
2021-08-28 08:33:24 +08:00
groupName = contacts.get(msg.roomId, {'wxName': 'Unknown'}).wxName
s += f"来自群[{groupName}]的[{nickName}]的{msgType}消息:"
2021-02-12 23:21:57 +08:00
s += f"\r\n{msg.content}"
if msg.type != 0x01:
s += f"\r\n{msg.xml}"
print(f"\n{s}")
return 0
print("Message: 接收通知中......")
sdk.WxSetTextMsgCb(OnTextMsg) # 设置回调,接收消息
while True:
time.sleep(1)
if __name__ == '__main__':
main()