第四节:实战微信自动回复
课程目标
课程内容
编码实现
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("有新消息!")
msg = get_msg()
print(msg)
set_my_msg(msg)
set_my_emoji()
send()
else:
print("无新消息!")
time.sleep(0.5)
测试与调试