前言
- 2022年新年写的拜年消息自动回复,举一反三,替换关键字和回复内容,就可以用到其他应用场景。
- 之前发现微信升级后有些id可能会发生改变,在代码里已经标注要抓取哪个元素的id,出问题时确认一下id是否已改变。
整体思路
- 在微信首页监听,抓取新消息,即头像上有右上角的红圈1出现
- 点击进聊天界面,根据关键词判断有无拜年消息
- 有拜年消息则随机选一条内置拜年消息回复,无则直接退出
关键字
找到这些关键字,便判断为拜年短信
contact.search(/新年|如意|拜年|2022|快乐|虎|新春|除夕|健康|发财|祝|恭/)
回复内容
建一个数组,存放回复的拜年消息集合,数量内容自定义
var wish1 = "谢谢!也祝你新年快乐,虎年大吉!";
var wish2 = "谢谢!也愿你新年快乐!衷心祝福你和家人幸福安康!新的一年一切顺利!";
var wish3 = "谢谢!虎年2022也愿君好运,岁岁平安,年年如意,幸福快乐,心想事成,吉星高照!";
var wish4 = "谢谢!也祝你岁岁年年,万喜万般宜。";
var wish5 = "谢谢!新春佳节好运到,福禄寿星进门来!也祝你好运连连,事事如意!";
var wish6 = "谢谢!也祝你新的一年幸福安康,福运无疆。";
var wishes = [wish1, wish2, wish3, wish4, wish5, wish6]
代码
auto.waitFor()
console.show();
log("新年自动回复");
var JUDGE_TIME = 0;
// 自定义消息集合,随机挑选其中一条回复
var wish1 = "谢谢!也祝你新年快乐,虎年大吉!";
var wish2 = "谢谢!也愿你新年快乐!衷心祝福你和家人幸福安康!新的一年一切顺利!";
var wish3 = "谢谢!虎年2022也愿君好运,岁岁平安,年年如意,幸福快乐,心想事成,吉星高照!";
var wish4 = "谢谢!也祝你岁岁年年,万喜万般宜。";
var wish5 = "谢谢!新春佳节好运到,福禄寿星进门来!也祝你好运连连,事事如意!";
var wish6 = "谢谢!也祝你新的一年幸福安康,福运无疆。";
var wishes = [wish1, wish2, wish3, wish4, wish5, wish6]
var send_loca = "init";
var interval;
// 子线程开启计时
threads.start(function () {
if (interval == null) {
// 启动定时器前,将计数器归为0
JUDGE_TIME = 0;
toast("开启定时器");
interval = setInterval(function () {
JUDGE_TIME = JUDGE_TIME + 1;
}, 1000);
}
});
while(true){
if(JUDGE_TIME >= 10){
JUDGE_TIME = 0;
console.verbose("脚本运行中。。。");
}
id("gkw").waitFor();
id("gkw").findOne().children().forEach(child => {// id:框架ListView
var target = child.findOne(id("kn6"));// 收到新消息标志,id:右上角红色的1
if (target) {
child.click();
start();// 自定义判断函数
sleep(100);
id("fz").findOne().click();// 退回微信首页,id:返回
}
});
}
function start(){
id("b79").waitFor();
var messages = new Array();//消息集合数组
id("b79").findOne().children().forEach(child => {// id:框架ListView
var target = child.findOne(id("b4b"));// 找消息,id:新消息
if(target){
messages.push(target);
}
});
var contact = messages[messages.length - 1].text();
if(contact.search(/新年|如意|拜年|2022|快乐|虎|新春|除夕|健康|发财|祝|恭/) >= 0){
var send_edit = id("b4a").findOne();// 获取输入框
if(send_loca){
send_loca = id("b3q").findOne().bounds();//获取右下角加号键的位置,用于作为发送按钮的位置
}
send_edit.click();//点击输入框
var n = Math.floor(Math.random()*5);
send_edit.setText(wishes[n]);//输入回复内容
sleep(100);
click(send_loca.centerX(),send_loca.centerY());//点击发送
log("消息回复成功!")
}
else{log("未找到拜年消息!")}
}
exit();