WeChatFerry/clients/python/test.py

89 lines
2.8 KiB
Python
Raw Normal View History

2022-10-16 16:50:22 +08:00
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import logging
2023-11-26 19:40:09 +08:00
from queue import Empty
2023-02-27 23:36:17 +08:00
from threading import Thread
2023-03-01 04:03:53 +08:00
from time import sleep
2022-10-16 16:50:22 +08:00
2022-10-19 18:46:27 +08:00
from wcferry import Wcf
2022-10-16 16:50:22 +08:00
2023-11-26 19:40:09 +08:00
logging.basicConfig(level='DEBUG', format="%(asctime)s [%(levelname)s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
2023-02-27 23:36:17 +08:00
LOG = logging.getLogger("Demo")
def process_msg(wcf: Wcf):
"""处理接收到的消息"""
while wcf.is_receiving_msg():
try:
msg = wcf.get_msg()
2023-11-26 19:40:09 +08:00
LOG.info(msg) # 简单打印
except Empty:
continue # Empty message
2023-02-27 23:36:17 +08:00
except Exception as e:
2023-11-26 19:40:09 +08:00
LOG.error(f"Receiving message error: {e}")
2023-02-27 23:36:17 +08:00
2022-10-16 16:50:22 +08:00
def main():
2023-02-25 21:58:00 +08:00
LOG.info("Start demo...")
2023-11-26 23:14:47 +08:00
wcf = Wcf(debug=True) # 默认连接本地服务
2022-10-16 16:50:22 +08:00
2023-03-01 04:03:53 +08:00
sleep(5) # 等微信加载好,以免信息显示异常
2023-02-27 23:36:17 +08:00
LOG.info(f"已经登录: {True if wcf.is_login() else False}")
LOG.info(f"wxid: {wcf.get_self_wxid()}")
# 允许接收消息
# wcf.enable_recv_msg(LOG.info) # deprecated
2023-02-27 23:45:39 +08:00
# 允许接收消息
2023-07-16 19:42:45 +08:00
wcf.enable_receiving_msg(pyq=True) # 同时允许接收朋友圈消息
2023-02-27 23:36:17 +08:00
Thread(target=process_msg, name="GetMessage", args=(wcf,), daemon=True).start()
2022-10-16 16:50:22 +08:00
2023-02-27 23:36:17 +08:00
# wcf.disable_recv_msg() # 当需要停止接收消息时调用
2023-07-13 23:49:12 +08:00
sleep(5)
2022-10-16 16:50:22 +08:00
ret = wcf.send_text("Hello world.", "filehelper")
2023-02-25 21:58:00 +08:00
LOG.info(f"send_text: {ret}")
2022-10-16 16:50:22 +08:00
2023-07-13 23:49:12 +08:00
sleep(5)
2023-08-01 23:35:36 +08:00
# 需要确保图片路径正确,建议使用绝对路径(使用双斜杠\\
ret = wcf.send_image("https://raw.githubusercontent.com/lich0821/WeChatFerry/master/assets/QR.jpeg", "filehelper")
2023-02-25 21:58:00 +08:00
LOG.info(f"send_image: {ret}")
2022-10-16 16:50:22 +08:00
2023-07-13 23:49:12 +08:00
sleep(5)
2023-08-01 23:35:36 +08:00
# 需要确保文件路径正确,建议使用绝对路径(使用双斜杠\\
ret = wcf.send_file("https://raw.githubusercontent.com/lich0821/WeChatFerry/master/README.MD", "filehelper")
2023-03-14 22:15:22 +08:00
LOG.info(f"send_file: {ret}")
2023-07-13 23:49:12 +08:00
sleep(5)
2023-02-25 21:58:00 +08:00
LOG.info(f"Message types:\n{wcf.get_msg_types()}")
LOG.info(f"Contacts:\n{wcf.get_contacts()}")
2022-10-16 16:50:22 +08:00
2023-07-13 23:49:12 +08:00
sleep(5)
2023-02-25 21:58:00 +08:00
LOG.info(f"DBs:\n{wcf.get_dbs()}")
LOG.info(f"Tables:\n{wcf.get_tables('db')}")
LOG.info(f"Results:\n{wcf.query_sql('MicroMsg.db', 'SELECT * FROM Contact LIMIT 1;')}")
2022-10-16 16:50:22 +08:00
2023-02-28 20:14:22 +08:00
# 需要真正的 V3、V4 信息
# wcf.accept_new_friend("v3", "v4")
2023-07-13 23:49:12 +08:00
# 添加群成员,填写正确的群 ID 和成员 wxid
2023-02-28 20:14:22 +08:00
# ret = wcf.add_chatroom_members("chatroom id", "wxid1,wxid2,wxid3,...")
# LOG.info(f"add_chatroom_members: {ret}")
2022-10-16 16:50:22 +08:00
2023-07-13 23:49:12 +08:00
# 删除群成员,填写正确的群 ID 和成员 wxid
# ret = wcf.del_chatroom_members("chatroom id", "wxid1,wxid2,wxid3,...")
# LOG.info(f"add_chatroom_members: {ret}")
2023-07-16 19:42:45 +08:00
sleep(5)
wcf.refresh_pyq(0) # 刷新朋友圈第一页
# wcf.refresh_pyq(id) # 从 id 开始刷新朋友圈
2023-11-26 19:40:09 +08:00
return wcf
2022-10-16 16:50:22 +08:00
if __name__ == "__main__":
2023-11-26 19:40:09 +08:00
wcf = main()
# 一直运行
wcf.keep_running()