前言

  • 2022年新年写的拜年消息自动回复,举一反三,替换关键字和回复内容,就可以用到其他应用场景。
  • 之前发现微信升级后有些id可能会发生改变,在代码里已经标注要抓取哪个元素的id,出问题时确认一下id是否已改变。

整体思路

  1. 在微信首页监听,抓取新消息,即头像上有右上角的红圈1出现
  2. 点击进聊天界面,根据关键词判断有无拜年消息
  3. 有拜年消息则随机选一条内置拜年消息回复,无则直接退出

关键字

找到这些关键字,便判断为拜年短信

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();