From 8fc25929268e451e057cd53beeceb0873c6b524f Mon Sep 17 00:00:00 2001 From: evilbeast Date: Tue, 30 Aug 2022 16:10:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Ecmd=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/close_log1.py | 34 +++++++++++++++++++++++++++ examples/close_log2.py | 33 ++++++++++++++++++++++++++ examples/cmd_close_event.py | 47 +++++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 examples/close_log1.py create mode 100644 examples/close_log2.py create mode 100644 examples/cmd_close_event.py diff --git a/examples/close_log1.py b/examples/close_log1.py new file mode 100644 index 0000000..e809e97 --- /dev/null +++ b/examples/close_log1.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +import os +import sys +import time +os.environ['NTCHAT_LOG'] = "ERROR" + +import ntchat + +wechat = ntchat.WeChat() + +# 打开pc微信, smart: 是否管理已经登录的微信 +wechat.open(smart=True) + + +# 注册消息回调 +@wechat.msg_register(ntchat.MT_RECV_TEXT_MSG) +def on_recv_text_msg(wechat_instance: ntchat.WeChat, message): + data = message["data"] + from_wxid = data["from_wxid"] + self_wxid = wechat_instance.get_login_info()["wxid"] + room_wxid = data["room_wxid"] + + # 判断消息不是自己发的并且不是群消息时,回复对方 + if from_wxid != self_wxid and not room_wxid: + wechat_instance.send_text(to_wxid=from_wxid, content=f"你发送的消息是: {data['msg']}") + + +# 以下是为了让程序不结束,如果有用于PyQt等有主循环消息的框架,可以去除下面代码 +try: + while True: + time.sleep(0.5) +except KeyboardInterrupt: + ntchat.exit_() + sys.exit() diff --git a/examples/close_log2.py b/examples/close_log2.py new file mode 100644 index 0000000..ce4381e --- /dev/null +++ b/examples/close_log2.py @@ -0,0 +1,33 @@ +import sys +import time +import logging +logging.disable(logging.INFO) + +import ntchat + +wechat = ntchat.WeChat() + +# 打开pc微信, smart: 是否管理已经登录的微信 +wechat.open(smart=True) + + +# 注册消息回调 +@wechat.msg_register(ntchat.MT_RECV_TEXT_MSG) +def on_recv_text_msg(wechat_instance: ntchat.WeChat, message): + data = message["data"] + from_wxid = data["from_wxid"] + self_wxid = wechat_instance.get_login_info()["wxid"] + room_wxid = data["room_wxid"] + + # 判断消息不是自己发的并且不是群消息时,回复对方 + if from_wxid != self_wxid and not room_wxid: + wechat_instance.send_text(to_wxid=from_wxid, content=f"你发送的消息是: {data['msg']}") + + +# 以下是为了让程序不结束,如果有用于PyQt等有主循环消息的框架,可以去除下面代码 +try: + while True: + time.sleep(0.5) +except KeyboardInterrupt: + ntchat.exit_() + sys.exit() diff --git a/examples/cmd_close_event.py b/examples/cmd_close_event.py new file mode 100644 index 0000000..14d8d28 --- /dev/null +++ b/examples/cmd_close_event.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +import sys +import time +import ntchat +try: + import win32api +except ImportError: + print("Error: this example require pywin32, use `pip install pywin32` install") + sys.exit() + +wechat = ntchat.WeChat() + +# 打开pc微信, smart: 是否管理已经登录的微信 +wechat.open(smart=True) + + +# 注册消息回调 +@wechat.msg_register(ntchat.MT_RECV_TEXT_MSG) +def on_recv_text_msg(wechat_instance: ntchat.WeChat, message): + data = message["data"] + from_wxid = data["from_wxid"] + self_wxid = wechat_instance.get_login_info()["wxid"] + + # 判断消息不是自己发的,并回复对方 + if from_wxid != self_wxid: + wechat_instance.send_text(to_wxid=from_wxid, content=f"你发送的消息是: {data['msg']}") + + +def exit_application(): + ntchat.exit_() + sys.exit() + + +def on_exit(sig, func=None): + exit_application() + + +# 当关闭cmd窗口时 +win32api.SetConsoleCtrlHandler(on_exit, True) + +# 以下是为了让程序不结束,如果有用于PyQt等有主循环消息的框架,可以去除下面代码 +try: + while True: + time.sleep(0.5) +# 当Ctrl+C结束程序时 +except KeyboardInterrupt: + exit_application()