Refine Python SDK

This commit is contained in:
Changhua 2022-08-20 20:48:04 +08:00
parent 79bdc0e8dd
commit 8b11077d09
2 changed files with 22 additions and 8 deletions

View File

@ -6,10 +6,7 @@ import wcferry as sdk
def main():
print(dir(sdk)) # 查看SDK支持的方法和属性
help(sdk.WxEnableRecvMsg) # 查看某方法的情况
help(sdk.WxMessage) # 查看消息结构
help(sdk.WxContact) # 查看通讯录结构
help(sdk) # 查看SDK支持的方法和属性
# 初始化SDK如果成功返回0否则失败
status = sdk.WxInitSDK()
@ -29,12 +26,23 @@ def main():
time.sleep(2)
print("发送文本消息......")
sdk.WxSendTextMsg("filehelper", "", "message from WeChatFerry...")
sdk.WxSendTextMsg("filehelper", "message from WeChatFerry...") # 往文件传输助手发消息
# sdk.WxSendTextMsg("xxxx@chatroom", "message from WeChatFerry...") # 往群里发消息(需要改成正确的 ID下同
# sdk.WxSendTextMsg("xxxx@chatroom", "message from WeChatFerry... @ ", "wxid_xxxxxxxxxxxx") # 往群里发消息,@某人
# sdk.WxSendTextMsg("xxxx@chatroom", "message from WeChatFerry... @ ", "notify@all") # 往群里发消息,@所有人
time.sleep(2)
print("发送图片消息......")
sdk.WxSendImageMsg("filehelper", "test.jpg")
dbs = sdk.WxGetDbNames()
for db in dbs:
print(db)
tables = sdk.WxGetDbTables(dbs[0])
for t in tables:
print(f"{t.table}\n{t.sql}\n\n")
# 接收消息。先定义消息处理回调
def OnTextMsg(msg: sdk.WxMessage):
s = "收到"
@ -44,7 +52,7 @@ def main():
return 0
msgType = WxMsgTypes.get(msg.type, '未知消息类型')
msgType = WxMsgTypes.get(msg.type, '未知类型')
nickName = contacts.get(msg.wxId, {'wxName': 'NoBody'}).wxName
if msg.source == 0:
s += f"来自好友[{nickName}]的{msgType}消息:"

View File

@ -29,7 +29,11 @@ PYBIND11_MODULE(wcferry, m)
.def_readonly("wxCountry", &WxContact::wxCountry)
.def_readonly("wxProvince", &WxContact::wxProvince)
.def_readonly("wxCity", &WxContact::wxCity)
.def_readonly("wxGender", &WxContact::wxGender);
.def_readonly("wxGender", &WxContact::wxGender);
py::class_<WxDbTable>(m, "WxDbTable")
.def_readonly("table", &WxDbTable::table)
.def_readonly("sql", &WxDbTable::sql);
m.def("WxInitSDK", &WxInitSDK, "Initiate SDK. Return 0 on successelse on failure.");
m.def("WxEnableRecvMsg", &WxEnableRecvMsgPy, "Enable message receiving and provide a callback", py::arg("onMsg"));
@ -37,7 +41,9 @@ PYBIND11_MODULE(wcferry, m)
m.def("WxSendTextMsg", &WxSendTextMsg, "Send text message.", py::arg("wxid"), py::arg("msg"), py::arg("atWxids")=L"");
m.def("WxSendImageMsg", &WxSendImageMsg, "Send image message.", py::arg("wxid"), py::arg("path"));
m.def("WxGetContacts", &WxGetContacts, py::return_value_policy::reference, "Get contact list.");
m.def("WxGetMsgTypes", &WxGetMsgTypes, py::return_value_policy::reference, "Get message types.");
m.def("WxGetMsgTypes", &WxGetMsgTypes, py::return_value_policy::reference, "Get message types.");
m.def("WxGetDbNames", &WxGetDbNames, py::return_value_policy::reference, "Get DB names.");
m.def("WxGetDbTables", &WxGetDbTables, py::return_value_policy::reference, "Get DB tables.", py::arg("db"));
#ifdef VERSION_INFO
m.attr("__version__") = VERSION_INFO;