图灵微信机器人(群聊,个人均可)

/*Ps:
该微信机器人取 dubox 的"微信群聊机器人" 简单修改而成 源代码规dubox所有
感谢 dubox
*/

//console.show()
"auto";

//设置无障碍模式 fast为启用缓存
auto();

//暂时只支持群聊
toast("打开微信 我 界面");

/**

a4 : 聊天界面 时间控件 id
apt: 聊天列表页 聊天摘要
jg:聊天界面 头像
aec > ae2:聊天界面 聊天图片
jh : 聊天昵称
ji:
y:头像和消息的父级 一个消息块
aab : 聊天界面 输入框
hj: 聊天界面 标题栏
*/
//console.log(text('微信').find());
//console.log(id('aab').exists());
//console.log(id('aps').findOne());
//log(id('ji').findOnce(id('ji').find().size()-1).parent().children().findOne(id('jh')));

var pdmsg;
var iname;

while (1) {
while (!iname) {
if (iname == null) {
toastLog("匹配自己微信名称!\n请手动打开微信 我 的界面");
if (id("cdg").findOne(5000)) {
iname = id("cdg").findOne().getText();
log("自己名称: "+iname)
toastLog("匹配自己名称已完成!请打开需要机器人的界面!")
}
} else {break;}
}

var msg = getMsg();
if (msg != pdmsg) {
log('msg: ' + msg)
};
pdmsg = msg;
if (msg) {
sendMsg(ai(msg[1]));
} else {
sleep(1000); //没有新消息 等待1秒 这里可以根据情况调整
}
}

function getMsg() {

if (currentActivity() != 'com.tencent.mm.ui.LauncherUI') {
//不在聊天Activity

//先判断是否在微信中
if (currentActivity().search('com.tencent.mm') == -1) {
//当前 APP 不是微信
return false;
//app.launch("com.tencent.mm");
}
//不在聊天Activity ,则有可能是文字详情界面 点击任意区域回到聊天界面(点状态栏区域比较保险)
press(1, 1, 1);
sleep(100); //这个时间根据手机的响应速度可能要稍微调整 这里可以根据情况调整
}
if (!id('aab').exists()) {
//没有找到输入框则表示当前界面不是聊天窗口
return false;
}

//获取最后一条聊天消息
var ji_jh = id('ji').findOnce(id('ji').find().size() - 1).parent().children();

//头像desc
var kjj = id("jg").find();
var tx = kjj.get(kjj.size() - 1).contentDescription
if (tx == iname + '头像') return false;

//信息内容
var ji = ji_jh.findOne(id('ji'));

//微信的聊天文本不能直接获取到 这里模拟双击在文本详情界面获取内容
//获取文字区域 模拟双击
var last_ji_rect = ji.bounds();
console.log("寻找X: "+press(last_ji_rect.centerX()+random(-3,3), last_ji_rect.centerY()+random(-3,3), 1));
sleep(120); //双击间隔时间 这里可以根据情况调整
console.log("寻找Y: "+press(last_ji_rect.centerX()+random(-3,3), last_ji_rect.centerY()+random(-3,3), 1));

var afv = id('afv').findOne().text();
press(last_ji_rect.centerX(), last_ji_rect.centerY(), 1);
return [tx.replace(/头像/i,":"), afv];

}

function sendMsg(str) {
//设置输入框文本
id('aab').setText(str);

//获取标题栏区域并点击,解决发送按钮获取不到的问题
var hj = id('hj').findOne().bounds();
click(hj.centerX(), hj.centerY());

//点击发送
id('aah').click();
}

function ai(msg) {
var url = "http://www.tuling123.com/openapi/api";
id1 = "llmjk";
var res = http.post(url, {
key: "65458a5df537443b89b31f1c03202a80", //图灵
//key: "e0fcda33be9847c8b8534abe51b4b095", //唐嫣
// key: "b4438ca194064134afa28f686fbd04a5", //my图灵
info: msg,
userid: "1",
});
var html = res.body.string();
eval("b=" + html);
return b.text;
}

/*Ps:
该微信机器人 取dubox 微信群聊机器人 练到修改而成 源代码规dubox所有
感谢 dubox

*/

最后由 皓月 编辑

不需要打开 ‘我’ 界面 在聊天界面就可以获取到 ‘我’ 的信息,因为他们在一个 activity 里

  • 3
    帖子
  • 1049
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待