2.5 pyautogui 实现微信自动回复

第四节:实战微信自动回复

课程目标

  • 学习如何通过pyautogui完成微信自动回复

课程内容

编码实现
import pyautogui as pg
import time
from pyautogui import ImageNotFoundException
import pyperclip as pc
import random
from cnocr import CnOcr
from langchain_community.llms.moonshot import Moonshot
import os
os.environ["MOONSHOT_API_KEY"] = "xxxx"
llm = Moonshot()
ocr = CnOcr()
emoji_paths = [
    r"imgs\1.png",
    r"imgs\2.png",
    r"imgs\3.png",
]
msg_strs = [
    "嗯",
    "挺好的",
    "好",
    "是的",
    "看起来很不错"
]
emotion_dict = {
    "你好":"你也好好呀!",
    "吃了吗":"吃了,你呢",
    "今天天气怎么样":"我这边天气很好!",
    "天气怎么样":"我这边天气很好!",
}
def check_new_msg():
    # 错误捕获
    try:
        new_msg_center = pg.locateCenterOnScreen("new_msg.png",confidence=0.9)
        pg.click(new_msg_center)
        return True
    except ImageNotFoundException:
        return False
def check_new_msg2():
    # 错误捕获
    try:
        new_msg_center = pg.locateCenterOnScreen("new_msg2.png",confidence=0.9)
        pg.click(new_msg_center)
        return True
    except ImageNotFoundException:
        return False
def set_my_msg(msg):
    # 查字典,怎么回复
    if msg in emotion_dict.keys():
        msg_str = emotion_dict[msg]
    else:
        msg_str  = random.choice(msg_strs) # 随机选择回复
    pg.hotkey("ctrl","a") # 全选
    pg.press("delete")
    pc.copy(msg_str)
    pg.hotkey("ctrl","v")
def set_my_msg_ai(msg):
    msg_str = llm(msg)
    pg.hotkey("ctrl","a") # 全选
    pg.press("delete")
    pc.copy(msg_str)
    pg.hotkey("ctrl","v")

def send():
    pg.hotkey("alt","s")
def set_my_emoji():
    emoji_path = random.choice(emoji_paths)
    pg.hotkey("alt","e")
    emoji_center = pg.locateCenterOnScreen(emoji_path,confidence=0.8)
    pg.click(emoji_center)
def get_text():
    rs = ocr.ocr("r_file.png")
    text = ""
    for r in rs:
        text+=r["text"]
    return text
def get_msg():
    file_center = pg.locateCenterOnScreen(r"file.png",confidence=0.8)
    pg.screenshot("r_file.png",(int(file_center.x),int(file_center.y)-76,500,50))
    msg = get_text()
    return msg
while True: # 一直监听新消息
    if check_new_msg() or check_new_msg2(): # 监听消息
        print("有新消息!")
        # 1. 识别消息
        msg = get_msg()
        print(msg)
        # 2. 回复消息
        set_my_msg(msg)
        # set_my_msg_ai(msg)
        # 3. 插入表情
        set_my_emoji()
        # 4. 确认回复
        send()
    else:
        print("无新消息!")
        time.sleep(0.5)

# 扩展:接入ai 大语言模型

测试与调试
  • 测试
    • 测试程序的各个功能是否正常工作。
  • 调试
    • 根据测试结果,调整和优化代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值