简单说一下 autojs ,这是一个开源(https://github.com/hyb1996/Auto.js 看账号貌似是个96年的小朋友?)的利用 Android 的无障碍服务实现的自动操作软件。

-------------------18.2.22 凌晨更新----------------------

这次更新同时支持了群聊和普通聊天,并且加入了 face++ 的 人脸识别API 实现了【颜值测试】功能,增加了趣味性。。。

【颜值测试】效果截图:

-------------------------------------------------------------

上代码:

"auto";

//设置无障碍模式 fast为启用缓存

auto();

//请求截屏权限 因为增加了这个权限请求 启动脚本必须在 autojs APP界面 否则会有问题,主要是连电脑调试要注意

if(!images.requestScreenCapture()){

toast("请求截图失败");

exit();

}

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('y').findOnce(id('y').find().size()-1).child(2).findOne(id('ji')));

var wait = 0;

while(1){

try{

var msg = getMsg();

}catch(e){

var msg = 0;

}

log(msg);

if(msg){

if(msg[0] == 'text')

sendMsg(textAI(msg[1]));

else

sendMsg(imgAI(msg[1] ,msg[2]));

wait = 0;

}else{

sleep(1000); //没有新消息 等待1秒 ***这里可以根据情况调整***

wait += 1000;

//5秒点击一次 保持屏幕常亮

if(wait > 5000){

if(id('ji').exists())

id('ji').findOne().click();

wait = 0;

}

}

}

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() || !id('y').exists()){

//没有找到输入框则表示当前界面不是聊天窗口

return false;

}

var last_y = id('y').findOnce(id('y').find().size()-1)

if(last_y.childCount() != 2){

return false;

}

var ji = last_y.child(1).findOne(id('ji'));

if(ji){

return ['text' , getText(ji)];

}else {

var aec = last_y.child(1).findOne(id('aec'));

if(aec){

var jh = last_y.child(1).findOne(id('jh'));

if(jh){

var nickname = jh.text();

}else{

var nickname = last_y.child(0).findOne(id('jg')).contentDescription.replace('头像','');

}

return ['img' , getImg(aec) ,nickname];

}

}

return false;

}

function getImg(uiObj){

var img_rect = uiObj.bounds();

//点击图片查看大图

press(img_rect.centerX() ,img_rect.centerY(),1)

//var img = images.clip(captureScreen(), img_rect.left, img_rect.top, img_rect.width(), img_rect.height());

//log(img);

//images.save(img, "/sdcard/clip.png");

//等待动画完成

sleep(750);

//截屏并存到本地

captureScreen("/sdcard/clip.png");

//点击屏幕回到聊天界面

press(img_rect.centerX() ,img_rect.centerY(),1)

return "/sdcard/clip.png";

}

function getText(uiObj){

//微信的聊天文本不能直接获取到 这里模拟双击在文本详情界面获取内容

//获取文字区域 模拟双击

var last_ji_rect = uiObj.bounds();

press(last_ji_rect.centerX() ,last_ji_rect.centerY(),1);

sleep(40); //双击间隔时间 ***这里可以根据情况调整***

press(last_ji_rect.centerX() ,last_ji_rect.centerY(),1);

var afv = id('afv').findOne().text();

press(last_ji_rect.centerX() ,last_ji_rect.centerY(),1);

return afv;

}

function sendMsg(str){

//设置输入框文本

id('aab').setText(str);

//获取标题栏区域并点击,解决发送按钮获取不到的问题

var hj = id('hj').findOne().bounds();

click(hj.centerX(), hj.centerY());

//点击发送

id('aah').click();

}

function imgAI(img_path ,nickname){

var res = http.postMultipart(

'https://api-cn.faceplusplus.com/facepp/v3/detect',

{

api_key: "你的 key",

api_secret:' 你的 secret',

return_attributes:'gender,age,smiling,headpose,facequality,blur,eyestatus,emotion,ethnicity,beauty,mouthstatus,eyegaze,skinstatus',

image_file: open(img_path)

});

var jsn = res.body.json();

//log(jsn);

if(typeof jsn.faces == 'undefined')

return 'API 错误。。。';

var face = jsn.faces;

if(!face.length){

str = '抱歉!这可能不是一个人!\n';

}else{

var str = '';

if(face.length > 1)

str += '这可能不是一个人,但我一次只能检测一张脸,至于是哪张脸你要猜猜看了...[\调皮]\n\n';

face = face[0].attributes;

//基本信息

str += '基本信息:\n ';

str += face.gender.value == 'Male'?' 男 ':' 女 ';

str += face.age.value + '岁 ';

if(face.ethnicity.value == 'Asian')

str += '黄种人\n';

else if(face.ethnicity.value == 'White')

str += '白人\n';

else

str += '黑人\n';

//面部表情

var emotions = {anger:'愤怒',

disgust:'厌恶',

fear:'恐惧',

happiness:'高兴',

neutral:'平静',

sadness:'伤心',

surprise:'惊讶'};

var emotion = {e80:0,e40:[]};

for(var i in face.emotion){

if(face.emotion[i] > 80){

emotion.e80 = i;

break;

}

if(face.emotion[i] > 40){

emotion.e40.push(i);

}

}

str += '表  情:\n ';

if(emotion.e80){

str += '非常'+ emotions[emotion.e80] ;

}else if(emotion.e40.length == 2){

str += emotion.e40[0] > emotion.e40[1] ? emotions[emotion.e40[0]]+'中带着'+emotions[emotion.e40[1]] : emotions[emotion.e40[1]]+'中带着'+emotions[emotion.e40[0]];

}else if(emotion.e40.length == 1){

str += emotions[emotion.e40[0]];

}else{

str += '五味杂陈';

}

str += '\n';

//皮肤状况

str += '皮肤状况:\n';

str += ' 黑眼圈:'+parseInt(face.skinstatus.dark_circle)+'%\n';

str += ' 青春痘:'+parseInt(face.skinstatus.acne)+'%\n';

str += ' 色 斑:'+parseInt(face.skinstatus.stain)+'%\n';

//颜值

str += '颜  值:\n';

str += ' 在大部分男性眼中:'+parseInt(face.beauty.male_score) +'分\n';

str += ' 在大部分女性眼中:'+parseInt(face.beauty.female_score) +'分\n';

}

str += '\n(测试结果和照片清晰度及拍摄角度等因素有关,如对本次结果不满意可发送新的照片进行测试,测试结果不代表本人观点!)';

return '@'+nickname+' 欢迎使用【颜值测试】功能,您的测试结果如下:\n\n'+ str;

}

function textAI(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;

}

目前只支持群聊,实现方案可能也不是最好的,一些参数可能需要根据手机的情况做些调整。。。

里面的图灵机器人直接引用了论坛里

autojs读取文字_初探 Autojs ,写了个简单的微信群聊机器人(02.22新增了 face++的人脸识别 API )...相关推荐

  1. 如何用C语言写出一个微信群聊机器人

    要用 C 语言写出一个微信群聊机器人,您需要先了解微信群聊的相关信息和 C 语言的编程知识. 首先,微信群聊是通过微信服务器进行通信的,因此您需要了解如何通过网络协议与微信服务器进行通信.微信群聊使用 ...

  2. delphi 企业微信消息机器人_企业微信—群聊机器人

    在企业微信群聊机器人接口对接天气API使用过程中,遇到 过一个问题,就是对于嵌套json数据如何进行嵌套的| 一:"msgtype": "text", curl ...

  3. python写qq群机器人怎么弄_python打造自由DIY 群聊机器人

    本文首发于简书DIY 微信群聊机器人​www.jianshu.com 前言 这几天我的一个小伙伴问我能不能给 Ta 做一个配置灵活的微信群聊天机器人,之前了解过 itchat 库的使用,我就爽快的答应 ...

  4. cdr 表格自动填充文字_微信群聊上线接龙表格功能,老师一族的福音来了?

    最近微信上线了一个新功能,群聊接龙表格,也就是仅针对群聊开放的功能.当对方发来接龙表格时,会出现一个"查看接龙"的提示,用户点击进入后,可添加相关信息. 经测试,该功能首先上线于i ...

  5. python爬取微信群聊内容_再不学Python 你就被同龄人甩开了吗?

    原创: 潘懿锟 唐佩瑶 清华大学(分数线,专业设置)清新时报 记者 | 潘懿锟 唐佩瑶 "会Python的人,工作都不会太差.追上同龄人,就趁现在!" 或许你已经对微信的广告推送感 ...

  6. autojs读取文字_Auto.js小白详细代码分析教程-如何阅读本文档 - Documentation

    本文档为Auto.js的文档,解释了Auto.js各个模块的API的使用方法.作用和例子. 文档借助Node.js的文档构建工具生成,并在github上开源(https://github.com/hy ...

  7. html5语音读取文字_文字识别神器最新版-文字识别神器安卓版下载

    文字识别神器app是一款非常好用的多功能手机识别软件,通过这款软件可以有效的提高我们的工作效率.软件功能十分强大可以轻松读取任何文本内容,还可以将语音内容一键转化为文本内容.一键添加图片和收藏文档非常 ...

  8. html5语音读取文字_[电脑] 推荐一款文字转语音的免费软件!

    受到再大的打击,只要生命还在,请相信每天的太阳都是新的. Hello,大家好,我是BoBo 一个喜欢做公众号,但是做的又有点糙的非科班小编. 这里没有华丽的排版,也没有长长的套路,有的只是一颗真心,喜 ...

  9. html5语音读取文字_随时查,随时读,随时记--汉王e典扫描翻译笔A20T语音版

    自上一次接触翻译设备,想来已经差不多要20个年头了.回想起学生时代基本人手一本的电子词典,不禁感触良多.经过我手的电子词典至少有三本以上.那些年绝对是电子词典的黄金年代,电子词典也从最早的按键式的,发 ...

最新文章

  1. 强制类型转换(Java)
  2. 旷视科创板IPO过会:拟募资60.18亿元,阿里系为最大股东
  3. [并发编程]并发编程第二篇:利用并发编程,实现计算大量数据的和
  4. TensorFlow学习笔记之五(卷积神经网络)
  5. JVM笔记详解之垃圾回收器
  6. sql注入语句示例大全_SQL Order By语句:示例语法
  7. Database2Sharp重要更新之完善EnterpriseLibrary架构代码
  8. FFT节省资源的思路
  9. git不区分文件名大小写这种坑当然要跳出来
  10. ubuntu 安装GPU黑屏 修改GRUB_手把手教你Windows+Linux双系统的安装与卸载
  11. 深入剖析 redis 主从复制
  12. SQL Server 2008 索引超出了数组界限
  13. Vue检测web端和移动端,并强制手机横屏
  14. html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码
  15. 数电逻辑门方框中各符号所含意义(全)
  16. 7-15 福到了 c语言,7-7 福到了 (15分)
  17. mysql 字符串截取,拼接
  18. 【汇编语言】快速理解什么是寻址,什么是寻址方式
  19. 算法设计与分析 二叉树
  20. 二极管原理及相关特性

热门文章

  1. 代码整洁之道 clean code
  2. HTML5和CSS3开发第一章课后作业
  3. 牧牛区块链研究院,区块链赋能大消费行业
  4. 无限法则服务器选择吗,Switch OLED来了 周边如何选
  5. html贝塞尔曲线爱心,史上最全的贝塞尔曲线(Bezier)全解(三):贝塞尔曲线实现满屏爱心...
  6. Android进recovery模式后自动重启
  7. jQuery实现飞机大战小游戏
  8. 一站式全生态NFT链游ISLANDSWAP
  9. 一些WOW的精华帖子。
  10. 10. 100ASK_V853-PRO开发板支持录音和播放音频