原始 apk: 保护生态apk

自助 激活码

技术选型

由于平台更新速度快,为了方便更新,维护,修复bug等。采用 autojs

软件源码

如果有任何问题欢迎交流。源码如下:

"ui";
storage = storages.create("界面配置");//初始化一个可以保存界面配置的文本 ,这里的文本名称为:界面配置
os = false;
ini()
恰恰ui()
function 恰恰ui() {ui.layout(<vertical bg="#B0E0E6" h="*" >;<ScrollView><vertical id="恰恰设置" alpha="1" bg="#B0E0E6" layout_gravity="left" w="*" ><text gravity="center" textColor="red" textSize="25sp" text="当前恰恰设置"></text><horizontal gravity="left" ><checkbox id="恰恰_主动招呼" text="主动打招呼" textSize="15sp" checked={相亲数据.get("恰恰_主动招呼", true) == false ? false : true} />;</horizontal><horizontal gravity="left" ><checkbox id="恰恰_话术招呼" text="发消息" textSize="15sp" checked={相亲数据.get("恰恰_话术招呼", true) == false ? false : true} />;<checkbox id="恰恰_视频招呼" text="打视频" textSize="15sp" checked={相亲数据.get("恰恰_视频招呼", false) == false ? false : true} />;<checkbox id="飘屏" text="飘屏" textSize="15sp" checked={相亲数据.get("飘屏", false) == false ? false : true} />;</horizontal><horizontal><text text="单个用户打招呼次数:" textStyle="bold" textSize="15" /><input id="恰恰_招呼次数" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_招呼次数", 1)}</input>;<text text="次" /></horizontal><horizontal gravity="left" ><checkbox id="恰恰_新消息" text="新消息智能聊天" textSize="15sp" checked={相亲数据.get("恰恰_新消息", true) == false ? false : true} />;<checkbox id="恰恰_接视频" text="自动接视频" textSize="15sp" checked={相亲数据.get("恰恰_接视频", false) == false ? false : true} />;</horizontal><horizontal><text text="自动打视频对方未接听挂断时间:" textStyle="bold" textSize="15" /><input id="挂断时间" hint="数字" textColor="#dd000000" >{相亲数据.get("挂断时间", 15)}</input>;<text text="秒" /></horizontal><horizontal><text text="发送等待时间:" textStyle="bold" textSize="15" /><input id="恰恰_发送等待" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_发送等待", 0)}</input>;<text text="秒" /></horizontal><horizontal><text text="发几个人后刷新一下:" textStyle="bold" textSize="15" /><input id="恰恰_私信数量" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_私信数量", 80)}</input>;<text text="人" /></horizontal><horizontal gravity="left" >;<text text="回复消息查找页数:" textStyle="bold" textSize="15" /><input id="查找页数" hint="数字" textColor="#dd000000" >{相亲数据.get("查找页数", 15)}</input>;<text text="页;" /></horizontal><horizontal><text text="处理新消息时允许时间:" textStyle="bold" textSize="15" /><input id="恰恰_消息空闲" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_消息空闲", 30)}</input>;<text text="秒" /></horizontal><checkbox id="日志显示" text="日志显示" textSize="18sp" checked={相亲数据.get("日志显示", true) == false ? false : true} />; <button id="返回键" text="返回" textSize="30sp" style="Widget.AppCompat.Button.Colored" w="*" />;<button id="恰恰_删除" text="删除用户数据" textSize="30sp" style="Widget.AppCompat.Button.Colored" w="*" />;<button id="开始恰恰" text="开始恰恰" textSize="40sp" style="Widget.AppCompat.Button.Colored" w="*" />;<button id="欢迎使用" text="欢迎使用" textSize="60sp" style="Widget.AppCompat.Button.Colored" w="*" />;</vertical></ScrollView></vertical>);ui.返回键.on("click", () => {back()});ui.恰恰_删除.on("click", () => {相亲数据.remove("恰恰_namemod")toastLog("删除用户招呼数据成功,现在将重新开始记录数据!")});ui.开始恰恰.on("click", () => {toastLog("启动中。点一次就可以哦")if (相亲数据.get("自定关键词话术")) {关键词话术 = 相亲数据.get("自定关键词话术").split("\r\n");} else if (相亲数据.get("关键词话术")) {关键词话术 = 相亲数据.get("关键词话术").split("\r\n");}if (相亲数据.get("自定通用话术")) {通用话术 = 相亲数据.get("自定通用话术")} else if (相亲数据.get("通用话术")) {通用话术 = 相亲数据.get("通用话术")}if (相亲数据.get("自定主动话术")) {主动话术 = 相亲数据.get("自定主动话术")} else if (相亲数据.get("主动话术")) {主动话术 = 相亲数据.get("主动话术")}当前app = getAppName("com.qiaqiachat.vip")if (getAppName("com.qiaqiachat.vip")) {当前app = getAppName("com.qiaqiachat.vip")} else {toastLog("您没有安装恰恰,脚本停止!")exit()}当前app版本 = 应用版本("com.qiaqiachat.vip")相亲数据.put("恰恰_主动招呼", true);相亲数据.put("恰恰_新消息", ui.恰恰_新消息.checked);相亲数据.put("恰恰_视频招呼", ui.恰恰_视频招呼.checked);相亲数据.put("恰恰_话术招呼", ui.恰恰_话术招呼.checked);相亲数据.put("飘屏", ui.飘屏.checked);相亲数据.put("恰恰_接视频", ui.恰恰_接视频.checked);相亲数据.put("恰恰_发送等待", ui.恰恰_发送等待.text());相亲数据.put("恰恰_消息空闲", ui.恰恰_消息空闲.text());相亲数据.put("恰恰_招呼次数", ui.恰恰_招呼次数.text());相亲数据.put("恰恰_私信数量", ui.恰恰_私信数量.text());相亲数据.put("挂断时间", ui.挂断时间.text());相亲数据.put("查找页数", ui.查找页数.text());相亲数据.put("日志显示", ui.日志显示.checked);// jihuomaCheck(cacheCode)huidiao = truesetTimeout(function () {if (huidiao == true) {threads.start(function () {home()悬浮窗()if (相亲数据.get("日志显示", true)) {日志显示()setInterval(() => {window.setSize(device.width, device.height / 4)window.setPosition(0, Math.round(1330 * h / 1920))window.setTouchable(false);}, 1000);}});threads.start(function () {main(当前app, 当前app版本)});}}, 1000);});}
//下拉框保存界面配置// function 存储数据2() {
//     storage.put("sp2", ui.sp2.getSelectedItemPosition());//保存id为 sp1 的下拉框选项 到界面配置文本
// }
/*
如果读取下拉框sp1 在界面配置文本中不等于 undefined 则 设置下拉框sp1的选中项为 读取下拉框sp1保存的值
*/
function main(应用名称, 版本号) {主线程 = threads.start(function () {home()// try {while (true) {log("xxxx")启动应用(当前app, 当前app版本)开始恰恰()}// } catch (error) {//     console.error("主线程,出现未知异常!")// }});// 检测线程 = threads.start(function () {//     while (true) {//         // try {//         前台检测(应用名称, 版本号)//         // } catch (error) {//         //     console.error("前台检测线程,出现未知异常!")//         // }//     }// });
}function 开始恰恰() {console.info("开始运行恰恰...");sleep(2000)var 招呼计数 = 0var 私信条数 = 0var lcs = 0var lcsx=0var 首次启动 = truevar x = device.width;var y = device.height;threads.start(function () {while (true) {xhkvideo()if (相亲数据.get("飘屏", true)) {if (id("gift_type_tv").text("充值").exists()) {var cz = id("gift_type_tv").text("充值").findOnce()if (cz) {console.info("点击充值");try {cz.parent().parent().click()sleep(1000)} catch (error) {console.info("点击充值...");}sleep(1000)}while (id("count_time_tv").exists() && id("head_iv").exists()) {if (相亲数据.get("恰恰_接视频", false)) {if (id("accept_tv").exists()) {if (cj = id("accept_tv").findOne(5000)) {try {console.info("接视频");cj.click();sleep(2000)} catch (error) {console.info("接视频...");}}var node = id("accept_tv").findOne(1000)if (node) {点击(node)sleep(2000)}}}console.info("通话中!");sleep(2000)}私信界面();恰恰返回首页();}}if (text("音乐").exists()&&text("恰恰").exists()||text("保护生态").exists()&&text("恰恰").exists()||id("search_box").exists()) {console.info("异常闪退");app.launchPackage("com.qiaqiachat.vip")sleep(5000)}if (id("accept_tv").exists()) {if (相亲数据.get("恰恰_接视频", false)) {if (id("accept_tv").exists()) {if (cj=id("accept_tv").findOne(5000)) {try {console.info("接视频");cj.click();sleep(2000)} catch (error) {console.info("接视频...");}}var node = id("accept_tv").findOne(1000)if (node) {点击(node)sleep(2000)}}}while (id("accept_tv").exists() || id("call_hang_up_tv").exists()) {sleep(2000)console.info("正在等待接通视频或正在视频通话中!");if (相亲数据.get("恰恰_接视频", false)) {if (id("accept_tv").exists()) {if (cj=id("accept_tv").findOne(5000)) {try {console.info("接视频");cj.click();sleep(2000)} catch (error) {console.info("接视频...");}}var node = id("accept_tv").findOne(1000)if (node) {点击(node)sleep(2000)}}}}是否检测 = true} while (id("count_time_tv").exists()&&id("head_iv").exists()) {if (相亲数据.get("恰恰_接视频", false)) {if (id("accept_tv").exists()) {if (cj=id("accept_tv").findOne(5000)) {try {console.info("接视频");cj.click();sleep(2000)} catch (error) {console.info("接视频...");}}var node = id("accept_tv").findOne(1000)if (node) {点击(node)sleep(2000)}}}console.info("通话中!");sleep(2000)}if (id("one_key_send_tv").text("一键群发").exists()) {if (cj = id("one_key_send_tv").text("一键群发").findOne(5000)) {try {console.info("一键群发");cj.click();sleep(2000)} catch (error) {console.info("一键群发...");}}}if (id("close_iv").depth(10).exists() && text("本次通话已结束").exists()) {if (cj=id("close_iv").depth(10).findOne(5000)) {try {console.info("关闭");cj.click();sleep(2000)} catch (error) {console.info("关闭...");}}}if (text("提交评论").id("btnScore").exists()) {log("通话结束")if (text("提交评论").id("btnScore").findOne(1000)) {back();sleep(1000)}}if (id("close_iv").exists() && id("one_key_send_tv").text("一键群发").exists()) {if (cj=id("close_iv").findOne(5000)) {try {console.info("关闭");cj.click();sleep(2000)} catch (error) {console.info("关闭...");}sleep(1000)var cj=id("close_iv").findOne(1000)if(cj){点击(cj)}console.info("关闭");sleep(2000)}}if (id("btnCancel").text("我知道了").exists()) {if (cj = id("btnCancel").text("我知道了").findOne(1000)) {try {console.info("我知道了");cj.click();sleep(2000)} catch (error) {console.info("我知道了。。。");}}}}});xhkvideo()if (相亲数据.get("恰恰_主动招呼", true)) {if (相亲数据.get("恰恰_话术招呼", true) || 相亲数据.get("恰恰_视频招呼", true)) {console.info("正在处理主动打招呼...");while (true) {恰恰返回首页();if (id("private_chat_tv").depth(16).visibleToUser(true).findOne(5000)) {console.info("在打招呼界面");xhkvideo()while (true) {xhkvideo()var nodes = id("private_chat_tv").depth(16).visibleToUser(true).find()if (!nodes.empty()) {console.info("共有男神" + nodes.size() + "个");for (var ii = 0; ii < nodes.length; ii++) {if (相亲数据.get("恰聊_新消息", true)) {console.info("检测新消息");huifuxiaoxi();}sleep(500);var user = id("private_chat_tv").depth(16).visibleToUser(true).find()if (!user.empty()) {var dangqian = user.size()log("第" + [ii + 1] + "个" + "现在有:" + dangqian + "个")if (ii >= dangqian) {console.info("人数超过");break;}var nan = id("private_chat_tv").depth(16).visibleToUser(true).findOnce()if (nan) {if (id("private_chat_tv").depth(16).visibleToUser(true).findOne(2000)) {try {log("点击第" + [ii + 1] + "个" + "现在有:" + dangqian + "个")user[ii].click()sleep(1000)} catch (error) {log("点击男神。。。。")}}} else {恰恰返回首页()}xhkvideo()私信条数 = 私信条数 + 1私信界面()聊天界面();恰恰返回();恰恰返回();while (true) {if (text("首页").findOne(5000) && text("消息").exists()||text("本次通话已结束").exists()) {console.info("首页界面确认");break;}if (text("音乐").exists()&&text("恰恰").exists()||text("保护生态").exists()&&text("恰恰").exists()||id("search_box").exists()) {console.info("异常闪退");app.launchPackage("com.qiaqiachat.vip")sleep(5000)}恰恰返回();}} else {xhkvideo()log("未在首页")}}} else {xhkvideo()console.info("未在首页界面");break;}swipe((device.width / 10) * 3, (device.height / 10) * 8, (device.width / 10) * 3, (device.height / 10) * 2, 1000)sleep(1000)swipe((device.width / 10) * 3, (device.height / 10) * 8, (device.width / 10) * 3, (device.height / 10) * 2, 1000)if (textStartsWith("正在加载").exists()) {console.info("正在加载。。");swipe((device.width / 10) * 3, (device.height / 10) * 8, (device.width / 10) * 3, (device.height / 10) * 0, 1000)sleep(5000)}lcs++if (私信条数 >= 相亲数据.get("恰恰_私信数量", 30)) {for (var ix = 0; ix < lcs + 4; ix++) {swipe((device.width / 10) * 3, (device.height / 10) * 3, (device.width / 10) * 3, (device.height / 10) * 10, 800)sleep(1000)console.info("已经达到设定的私信人数,返回刷新...");}sleep(3000)私信条数 = 0lcs = 0}}}}}//恰恰视频招呼}function 私信界面(){var sx = text("私信").depth(10).findOnce()if (sx) {console.info("点击私信");点击(sx)sleep(1000)聊天界面();}}function 聊天界面() {if (id("input_et").findOne(5000)) {xhkvideo()var name = id("middle_title").findOne(5000)if (name && name.text().indexOf("系统消息") == -1 && name.text().indexOf("在线客服") == -1 && name.text().indexOf("恰恰") == -1) {xhkvideo()console.info(name.text());if (idEndsWith("_head_iv").depth(11).findOne(1000)) {xhkvideo()do {var a = idEndsWith("_head_iv").depth(11).find()} while (a.length <= 0)var name_id = a[a.length - 1];if (name_id.bounds().centerX() < device.width / 2 && id("left_text_type_tv").exists()) {xhkvideo()do {var a = id("left_text_type_tv").find();} while (a.length <= 0)var 对方内容 = a[a.length - 1].text()var 回复内容 = 话术分析(对方内容, "被动")var 回复内容1 = 话术分析1(对方内容, "被动")if (id("input_et").findOne(5000)) {if (相亲数据.get('用自定义发送', false)) {id("input_et").findOne(5000).setText(String(回复内容1[1]))console.info("对方的内容:" + 对方内容 + ",现在使用自定义:" + 回复内容1[0] + "回复,回复内容:" + 回复内容1[1])} else {console.info("对方的内容:" + 对方内容 + ",现在使用:" + 回复内容[0] + "回复,回复内容:" + 回复内容[1])id("input_et").findOne(5000).setText(String(回复内容[1]))}sleep(1000)if (text("发送").id("send_tv").findOne(5000)) {if (cj = text("发送").id("send_tv").findOne(1000)) {点击(cj)}console.info("发送话术已完成");sleep(1000)}xhkvideo()}} else {if (xhkdate(name.text()) <= 相亲数据.get("恰恰_招呼次数", 1) - 1) {恰恰回复方式();} else {console.info("此用户打招呼次数已达到设置次数,本次不操作!");sleep(1000)}}} else {恰恰回复方式();}} else {console.info("难道碰上客服小姐姐了吗?");}}}function 恰恰回复方式() {if (相亲数据.get("恰恰_话术招呼", true)) {var 对方内容 = truevar 回复内容 = 话术分析(true, "主动")var 回复内容1 = 话术分析1(true, "主动")if (id("input_et").findOne(5000)) {if (相亲数据.get('用自定义发送', true)) {id("input_et").findOne(5000).setText(String(回复内容1[1]))console.info("对方的内容:" + 对方内容 + ",现在使用自定义:" + 回复内容1[0] + "回复,回复内容:" + 回复内容1[1])} else {console.info("对方的内容:" + 对方内容 + ",现在使用:" + 回复内容[0] + "回复,回复内容:" + 回复内容[1])id("input_et").findOne(5000).setText(String(回复内容[1]))}sleep(1000)if (text("发送").id("send_tv").findOne(5000)) {if (cj = text("发送").id("send_tv").findOne(1000)) {点击(cj)}console.info("发送话术已完成");sleep(1000)for (var 等待时间 = 相亲数据.get("恰恰_发送等待", 3); 等待时间 >= 0; 等待时间--) {sleep(1000)xhkvideo()console.info("发送完成等待" + 等待时间 + "秒后继续");}}}}if (相亲数据.get("恰恰_视频招呼", true)) {if (cj = id("video_tv").findOne(5000)) {try {log("点击视频")cj.click()sleep(2000);} catch (error) {log("点击视频。。。")}}if (text("您正在发起视频通话…").findOne(3000) && id("call_hang_up_tv").exists()) {sleep(500)console.info("正在等待对方接通视频!或者正在视频中a");for (var 等待时间 = 相亲数据.get("挂断时间", 15); 等待时间 >= 0; 等待时间--) {sleep(1000)console.info("等待对方接听" + 等待时间 + "秒后未接就挂断");if (!text("您正在发起视频通话…").findOne(3000) && !id("call_hang_up_tv").exists()) {break;}}if (text("您正在发起视频通话…").findOne(3000) && id("call_hang_up_tv").exists()) {if (id("call_hang_up_tv").exists()) {id("call_hang_up_tv").findOne(2000).click();sleep(1000);}}xhkvideo()sleep(1000)} else {console.info("对方设置了勿扰,给他发个消息吧");var 对方内容 = truevar 回复内容 = 话术分析(true, "主动")var 回复内容1 = 话术分析1(true, "主动")if (id("input_et").findOne(5000)) {if (相亲数据.get('用自定义发送', true)) {id("input_et").findOne(5000).setText(String(回复内容1[1]))console.info("对方的内容:" + 对方内容 + ",现在使用自定义:" + 回复内容1[0] + "回复,回复内容:" + 回复内容1[1])} else {console.info("对方的内容:" + 对方内容 + ",现在使用:" + 回复内容[0] + "回复,回复内容:" + 回复内容[1])id("input_et").findOne(5000).setText(String(回复内容[1]))}sleep(1000)if (text("发送").id("send_tv").findOne(5000)) {if (cj = text("发送").id("send_tv").findOne(1000)) {点击(cj)}console.info("发送话术已完成");sleep(1000)for (var 等待时间 = 相亲数据.get("恰恰_发送等待", 3); 等待时间 >= 0; 等待时间--) {sleep(1000)xhkvideo()console.info("发送完成等待" + 等待时间 + "秒后继续");}}}}}}function huifuxiaoxi() {var msg = falseif (id("red_count_tv").depth(10).findOne(100)) {if (Number(id("red_count_tv").depth(10).findOne(1000).text().replace("+", "")) >= 1) {msg = trueif(text("消息").id("message_tv").findOne(2000)){text("消息").id("message_tv").findOne(2000).click();console.info("点击消息");sleep(1000);}} else {msg = false}}if (msg&&text("首页").findOne(5000) && text("消息").exists()&& 相亲数据.get("恰恰_新消息", true)) {var 滑动 = falsevar 计时线程 = threads.start(function () {sleep(相亲数据.get("恰恰_消息空闲", 30) * 1000)});console.info("有新消息,正在处理新消息...");if (text("清空").findOne(5000) && text("消息").exists()) {console.info("在消息界面");var msg = falseif (id("red_count_tv").depth(10).findOne(100)) {if (Number(id("red_count_tv").depth(10).findOne(1000).text().replace("+", "")) >= 1) {msg = true} else {msg = false}}while (msg) {xhkvideo()sleep(1000)if (id("number_tv").depth(16).boundsInside(x * 0.05, y * 0.1, x-1, y * 0.93).exists()) {console.info("有新消息,正在处理新消息2...");if (cj = id("number_tv").depth(16).boundsInside(x * 0.05, y * 0.1, x-1, y * 0.93).findOne(1000)) {xhkvideo()click(cj.bounds().centerX() - 100, cj.bounds().centerY());console.info("点击消息红点");sleep(1000)}var nan = id("clear_tv").text("清空").visibleToUser(true).findOnce()if (nan) {sleep(1000)}私信条数 = 私信条数 + 1聊天界面();恰恰返回();恰恰返回();while (true) {if(text("消息").exists()&&text("首页").exists()||text("本次通话已结束").exists()){break;}恰恰返回();}var 计时线程 = threads.start(function () {sleep(相亲数据.get("恰恰_消息空闲", 30) * 1000)});} else {if (计时线程.isAlive() == false) {console.info("已达到设定的消息处理时间");恰恰返回首页();break}xhkvideo()if (滑动 == false) {if (恰恰Stopdingbu()) {xhkvideo()滑动 = true;xhkvideo()}} else {if (恰恰Stopdibu()) {xhkvideo()滑动 = false;xhkvideo()}}sleep(1000)}if (id("red_count_tv").depth(10).findOne(100)) {try {if (Number(id("red_count_tv").depth(10).findOne(1000).text().replace("+", "")) >= 1) {msg = trueconsole.info("还有消息");} else {msg = falseconsole.info("没有消息了");恰恰返回首页();}} catch (error) {console.info("还有消息....");}} else {msg = falseconsole.info("没有消息了");恰恰返回首页();}}}};}function 恰恰返回() {var dksd = 0if (text("首页").findOnce() &&text("消息").findOnce()) {dksd = 1}if (dksd == 0) {if (id("left_fl").findOnce() || id("left_image").findOnce()|| id("input_et").findOnce()|| id("one_back_iv").findOnce()||text("本次通话已结束").exists()) {console.info("返回");back()sleep(1000)}}}function 恰恰返回首页(){while (true) {if (相亲数据.get("恰恰_接视频", false)) {if (id("accept_tv").exists()) {if (cj=id("accept_tv").findOne(5000)) {try {console.info("点击接听");cj.click();sleep(1000);} catch (error) {console.info("点击接听....");}}var node = id("accept_tv").findOne(1000)if (node) {点击(node)sleep(2000)}}}if (text("首页").findOne(5000)&&text("消息").exists()) {sleep(1000)if (cj=id("home_tv").text("首页").findOnce()) {try {console.info("点击首页");cj.click();sleep(1000);} catch (error) {console.info("点击首页....");}}if (cj = id("iv_top").findOnce()) {try {toastLog("点击置顶")cj.click()sleep(1000);} catch (error) {console.info("点击首页....");}}if (id("male_user_tv").text("男生").visibleToUser(true).exists()) {if (cj = id("male_user_tv").text("男生").visibleToUser(true).findOne(1000)) {try {log("点击男神")cj.click()sleep(1000);} catch (error) {log("点击男神。。")}}}sleep(1000);break;};恰恰返回();}}function xhkvideo() {while (id("count_time_tv").exists()&&id("local_video_view").exists()) {console.info("通话中!");if (相亲数据.get("恰恰_接视频", false)) {if (id("accept_tv").exists()) {if (cj=id("accept_tv").findOne(5000)) {try {console.info("点击接听");cj.click();sleep(1000);} catch (error) {console.info("点击接听....");}}var node = id("accept_tv").findOne(1000)if (node) {点击(node)sleep(2000)}}}}if (相亲数据.get("恰恰_接视频", false)) {if (id("accept_tv").exists()) {if (cj=id("accept_tv").findOne(5000)) {try {console.info("点击接听");cj.click();sleep(1000);} catch (error) {console.info("点击接听....");}}var node = id("accept_tv").findOne(1000)if (node) {点击(node)sleep(2000)}}}if (相亲数据.get("飘屏", true)) {if (id("gift_type_tv").text("充值").visibleToUser(true).exists()) {var cz = id("gift_type_tv").text("充值").findOnce()if (cz) {console.info("点击充值");try {cz.parent().parent().click()sleep(1000)} catch (error) {console.info("点击充值...");}sleep(1000)}私信界面();恰恰返回首页();}}}function xhkdate(namemod) {if (!相亲数据.get("恰恰_namemod")) {相亲数据.put("恰恰_namemod", [["风粒子", 1]]);}var mod = 相亲数据.get("恰恰_namemod")for (var ia = 0; ia < mod.length; ia++) {if (mod[ia][0] == namemod) {if (mod[ia][1] >= 相亲数据.get("恰恰_招呼次数", 1)) {return mod[ia][1]} else {mod[ia][1]++相亲数据.put("恰恰_namemod", mod);return mod[ia][1] - 1}}}mod.push([namemod, 1])相亲数据.put("恰恰_namemod", mod);return 0}function 恰恰Stopdibu() {//恰恰到底xhkvideo()var z = id("nick_tv").depth(16).find()//名idif (!z.empty()) {if (!z.empty()) {var hdq = z[z.length - 1].getText()+"";console.info(hdq)}swipe((device.width / 10) * 3, (device.height / 10) * 8.5, (device.width / 10) * 3, (device.height / 10) * 0, 1000)sleep(500)var d = id("nick_tv").depth(16).find()//名字idif (!d.empty()) {var hdh = d[d.length - 1].getText()+"";console.info(hdh)}lcsx++if (lcsx >= 相亲数据.get("查找页数", 15)) {console.info("已达到您预设查找页数" + 相亲数据.get("查找页数", 15) + "现在往回翻页");for (let i = 0; i < Number(lcsx + 2); i++) {sleep(500)swipe(x / 2, y * 0.4, x / 2, y * 0.99, 500)sleep(500)}lcsx = 0return true;}if (hdq == hdh) {console.info("到底了")return true;} else {return false;}}}function 恰恰Stopdingbu() {//恰恰到顶xhkvideo()var z = id("nick_tv").depth(16).find()//名字idif (!z.empty()) {if (!z.empty()) {var hdq = z[0].getText()+"";console.info(hdq)}swipe((device.width / 10) * 3, (device.height / 10) * 3, (device.width / 10) * 3, (device.height / 10) * 10, 800)if(textContains("正在刷新").exists()){console.info("正在刷新")sleep(2000)}sleep(1000)var d = id("nick_tv").depth(16).find()//名字idif (!d.empty()) {var hdh = d[0].getText()+"";console.info(hdh)}if (hdq == hdh) {console.info("到顶了")return true;} else {return false;}}}
}
function json存值(prop, val) {str1 = 相亲数据.get("聊天数据", {})if (typeof val === "undefined") {delete str1[prop];} else {str1[prop] = val;相亲数据.put("聊天数据", str1);return str1}
}function 话术分析(内容, 类型) {if (内容 == true && 类型 != "主动" || 内容 == false && 类型 != "主动") {var a = 通用话术.split("\n")return ["通用话术", a[random(0, a.length - 1)]]} else if (类型 == "主动") {var a = 主动话术.split("\n")return ["主动话术", a[random(0, a.length - 1)]]}else {for (var i = 0; i < 关键词话术.length; i++) {if (关键词话术[i] != "undefined" && 关键词话术[i] != "") {var a = 关键词话术[i].split("--")if (内容.indexOf(a[0].replace(/\n/g, "")) > -1) {return ["关键词话术", a[random(1, a.length - 1)]]}}}var a = 通用话术.split("\n")return ["通用话术", a[random(0, a.length - 1)]]}
}function 话术分析1(内容, 类型) {if (内容 == true && 类型 != "主动" || 内容 == false && 类型 != "主动") {var a = 通用话术1.split("--")return ["通用话术1", a[random(0, a.length - 1)]]} else if (类型 == "主动") {var a = 主动发送.split("--")return ["主动发送", a[random(0, a.length - 1)]]}else {for (var i = 0; i < 主话术.length; i++) {if (主话术[i] != "undefined" && 主话术[i] != "") {var a = 主话术[i].split("--")if (内容.indexOf(a[0]) > -1) {return ["主话术", a[random(1, a.length - 1)]]}}}var a = 通用话术1.split("--")return ["通用话术1", a[random(0, a.length - 1)]]}
}function 随机滑动(y1, y2, time) {gesture(time, [random(500, 700), random(Math.round(y1 * h / 1920), Math.round(y1 * h / 1920) - 50)], [random(500, 700), h / 2], [random(500, 700), random(Math.round(y2 * h / 1920), Math.round(y2 * h / 1920) - 50)])
};function 启动应用(应用名称, 版本号) {while (true) {if (app.launchApp(应用名称)) {while (app.getPackageName(应用名称) != currentPackage()) {app.launchApp(应用名称)log("正在启动:" + 应用名称);sleep(2000);if (app.getPackageName(应用名称) == currentPackage()) {break}}log("成功启动:" + 应用名称);// while (应用版本(app.getPackageName(应用名称)) != 版本号) {//     toastLog(应用名称 + "版本不正确,请安装" + 版本号);//     sleep(2000);// }break} else {toastLog("没有安装:" + 应用名称 + ",请安装" + 应用名称 + 版本号);sleep(2000)}}
}function 应用版本(package_name) {let pkgs = context.getPackageManager().getInstalledPackages(0).toArray();for (let i in pkgs) {if (pkgs[i].packageName.toString() === package_name) return pkgs[i].versionName;}
}function 前台检测(应用名称) {是否检测 = truesleep(1000 * 30)while (true) {// var a = textMatches(/^[\s\S]*.*[^\s][\s\S]*$/).visibleToUser(true).find()// if (a) {//     var b = ""//     for (var i = 0; i <= a.length - 1; i++) {//         if (a[i].text().indexOf("秒") == -1 && a[i].text().indexOf(":") == -1 && a[i].text().indexOf("再按一次") == -1) {//             b = b + a[i].text()//         }//     }// }// sleep(1000 * 120)// var a = textMatches(/^[\s\S]*.*[^\s][\s\S]*$/).visibleToUser(true).find()// if (a) {//     var b1 = ""//     for (var i = 0; i <= a.length - 1; i++) {//         if (a[i].text().indexOf("秒") == -1 && a[i].text().indexOf(":") == -1 && a[i].text().indexOf("再按一次") == -1) {//             b1 = b1 + a[i].text()//         }//     }// }// sleep(1000 * 120)// var a = textMatches(/^[\s\S]*.*[^\s][\s\S]*$/).visibleToUser(true).find()// if (a) {//     var b2 = ""//     for (var i = 0; i <= a.length - 1; i++) {//         if (a[i].text().indexOf("秒") == -1 && a[i].text().indexOf(":") == -1 && a[i].text().indexOf("再按一次") == -1) {//             b2 = b2 + a[i].text()//         }//     }// }if (是否检测 == true) {if (currentPackage() != app.getPackageName(应用名称) || 主线程.isAlive() == false) {home()toastLog("当前app:" + 应用名称 + "运行异常,已重启运行!")主线程.interrupt()是否检测 = true主线程 = threads.start(function () {home()try {启动应用(当前app, 当前app版本)开始恰恰()} catch (error) {console.error("主线程,出现未知异常!")}});} else {log("脚本运行中!")sleep(30000)}}}
}function 悬浮窗() {幕布()悬浮窗 = floaty.window(<horizontal id="horizontal" margin="5dp" gravity="center"><button id="启动停止" width="40" height="40" margin="1dp" bg="#4FFF74" textSize="16sp" text="停止" textColor="#780EF1" /><button id="退出" width="40" height="40" margin="1dp" bg="#4FFF74" textSize="16sp" text="退出" textColor="#780EF1" /><button id="设置" width="40" height="40" margin="1dp" bg="#4FFF74" textSize="16sp" text="幕布" textColor="#780EF1" /></horizontal>);全局_显示悬浮窗按钮 = 悬浮窗悬浮窗.setPosition(device.width / 3, -50)悬浮窗.setSize(-2, -2)悬浮窗.exitOnClose();setInterval(() => { }, 1000);var 启动停止_x = 0, 启动停止_y = 0, 退出_x, 退出_y;var 启动停止_windowX, 启动停止_windowY, 退出_windowX, 退出_windowY;悬浮窗.启动停止.setOnTouchListener(function (view, event) {switch (event.getAction()) {case event.ACTION_DOWN:启动停止_x = event.getRawX();启动停止_y = event.getRawY();启动停止_windowX = 悬浮窗.getX();启动停止_windowY = 悬浮窗.getY();return true;case event.ACTION_MOVE://移动手指时调整悬浮窗位置悬浮窗.setPosition(启动停止_windowX + (event.getRawX() - 启动停止_x),启动停止_windowY + (event.getRawY() - 启动停止_y));return true;case event.ACTION_UP://手指弹起时如果偏移很小则判断为点击if (Math.abs(event.getRawY() - 启动停止_y) < 5 && Math.abs(event.getRawX() - 启动停止_x) < 5) {if (悬浮窗.启动停止.getText() == '启动') {悬浮窗.启动停止.setText('停止');主线程 = threads.start(function () {while (true) {启动应用(当前app, 当前app版本)if (当前app == getAppName("com.qiaqiachat.vip")) {开始恰恰()}}});// if (相亲数据.get("前台检测x", true)) {//     toastLog("您当前开启前台检测,出现异常会自动重新开始")//     检测线程 = threads.start(function () {//         前台检测(当前app, 当前app版本)//     });// }toastLog("我又启动了")} else {悬浮窗.启动停止.setText('启动');toastLog("停止脚本")threads.shutDownAll()}}return true;}return true;});//监听退出按钮消息//悬浮窗.退出.setOnTouchListener(function (view, event) {switch (event.getAction()) {case event.ACTION_DOWN:退出_x = event.getRawX();退出_y = event.getRawY();退出_windowX = 悬浮窗.getX();退出_windowY = 悬浮窗.getY();return true;case event.ACTION_MOVE://移动手指时调整悬浮窗位置悬浮窗.setPosition(退出_windowX + (event.getRawX() - 退出_x),退出_windowY + (event.getRawY() - 退出_y));return true;case event.ACTION_UP://手指弹起时如果偏移很小则判断为点击if (Math.abs(event.getRawY() - 退出_y) < 5 && Math.abs(event.getRawX() - 退出_x) < 5) {toast("程序已退出")悬浮窗.close()engines.stopAll()}return true;}return true;});悬浮窗.设置.setOnTouchListener(function (view, event) {switch (event.getAction()) {case event.ACTION_DOWN:退出_x = event.getRawX();退出_y = event.getRawY();退出_windowX = 悬浮窗.getX();退出_windowY = 悬浮窗.getY();return true;case event.ACTION_MOVE://移动手指时调整悬浮窗位置悬浮窗.setPosition(退出_windowX + (event.getRawX() - 退出_x),退出_windowY + (event.getRawY() - 退出_y));return true;case event.ACTION_UP://手指弹起时如果偏移很小则判断为点击if (Math.abs(event.getRawY() - 退出_y) < 5 && Math.abs(event.getRawX() - 退出_x) < 5) {if (os == false) {dw = device.width; dh = device.height / 2; os = true} else {dw = 0; dh = 0; os = false}setInterval(() => {win.setSize(dw, dh)win.setPosition(0, 1)win.setTouchable(false);}, 1000);}return true;}return true;});悬浮窗///
}function 幕布() {// var os = falsewin = floaty.rawWindow(<vertical id="wins" alpha="1" gravity="center" visibility="visible" bg="#4CAF50" >{/* <text gravity="center" id="tttt" text="脚本运行日志" textSize="15sp" textColor="white" /> */}<com.stardust.autojs.core.console.ConsoleView id="console" h="*" /></vertical  >);ui.run(() => {// win.console.setConsole(runtime.console);win.input_container.setVisibility(android.view.View.GONE);});}function ini() {相亲数据 = storages.create("相亲数据");if (相亲数据.get("自定主动话术")) {主动话术 = 相亲数据.get("自定主动话术", "")} else {主动话术 = 相亲数据.get("主动话术", "出现错误,请重启软件重新加载!")}if (相亲数据.get("自定通用话术")) {通用话术 = 相亲数据.get("自定通用话术", "")} else {通用话术 = 相亲数据.get("通用话术", "出现错误,请重启软件重新加载!")}if (相亲数据.get("自定关键词话术")) {关键词话术 = 相亲数据.get("自定关键词话术", "")} else {关键词话术 = 相亲数据.get("关键词话术", "出现错误,请重启软件重新加载!")}// // if (files.copy("./主话术.txt", "/sdcard/主话术.txt")) {if (files.exists("/sdcard/主话术.txt")) {var 文本话术 = files.read("/sdcard/主话术.txt", encoding = "utf-8")主话术 = 文本话术.split("\r\n");} else {while (!files.copy("./主话术.txt", "/sdcard/主话术.txt")) {toast("没有在手机根目录下找到主话术.txt文件,请确认话术文件存在");sleep(2000)}}// // }// // if (files.copy("./通用话术.txt", "/sdcard/通用话术.txt")) {if (files.exists("/sdcard/通用话术.txt")) {var 文本话术 = files.read("/sdcard/通用话术.txt", encoding = "utf-8")通用话术1 = 文本话术} else {while (!files.copy("./通用话术.txt", "/sdcard/通用话术.txt")) {toast("没有在手机根目录下找到通用话术.txt文件,请确认话术文件存在");sleep(2000)}}// // }// // if (files.copy("./主动发送.txt", "/sdcard/主动发送.txt")) {if (files.exists("/sdcard/主动发送.txt")) {var 文本话术 = files.read("/sdcard/主动发送.txt", encoding = "utf-8")主动发送 = 文本话术} else {while (!files.copy("./主动发送.txt", "/sdcard/主动发送.txt")) {toast("没有在手机根目录下找到主动发送.txt文件,请确认话术文件存在");sleep(2000)}}// // }h = device.heightw = device.width// device.keepScreenDimthreads.start(function () {auto.waitFor();});
}function 日志显示(){window = floaty.rawWindow(<vertical id="win" gravity="center" visibility="visible" bg="#60000000" >{/* <text gravity="center" id="tttt" text="脚本运行日志" textSize="0sp" textColor="#f44336" /> */}<com.stardust.autojs.core.console.ConsoleView id="console" h="*" /></vertical  >);let c = new android.util.SparseArray();let Log = android.util.Log;c.put(Log.VERBOSE, new java.lang.Integer(colors.parseColor("#00FFD7")));c.put(Log.DEBUG, new java.lang.Integer(colors.parseColor("#00FFD7")));c.put(Log.INFO, new java.lang.Integer(colors.parseColor("#ff64dd17")));c.put(Log.WARN, new java.lang.Integer(colors.parseColor("#ff2962ff")));c.put(Log.ERROR, new java.lang.Integer(colors.parseColor("#ffd50000")));c.put(Log.ASSERT, new java.lang.Integer(colors.parseColor("#ffff534e")));window.console.setColors(c);ui.run(() => {window.console.setConsole(runtime.console);window.input_container.setVisibility(android.view.View.GONE);});
}function 点击(节点) {var nodex = 节点.bounds().centerX()var nodey = 节点.bounds().centerY()if (nodex > 0 && nodey > 0) {click(nodex, nodey)}
}
function 随机滑动(y1, y2, time) {h = device.heightw = device.widthgesture(time, [random(300, 500), random(Math.round(y1 * h / 1920), Math.round(y1 * h / 1920) - 50)], [random(300, 600), h / 2], [random(300, 600), random(Math.round(y2 * h / 1920), Math.round(y2 * h / 1920) - 50)])
};//滑动功能函数
function bezier_curves(cp, t) {cx = 3.0 * (cp[1].x - cp[0].x);bx = 3.0 * (cp[2].x - cp[1].x) - cx;ax = cp[3].x - cp[0].x - cx - bx;cy = 3.0 * (cp[1].y - cp[0].y);by = 3.0 * (cp[2].y - cp[1].y) - cy;ay = cp[3].y - cp[0].y - cy - by;tSquared = t * t;tCubed = tSquared * t;result = {"x": 0,"y": 0};result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;return result;
};//仿真随机带曲线滑动
//qx, qy, zx, zy, time 代表起点x,起点y,终点x,终点y,过程耗时单位毫秒
function sml_move(qx, qy, zx, zy, time) {var xxy = [time];var point = [];var dx0 = {"x": qx,"y": qy};var dx1 = {"x": random(qx - 100, qx + 100),"y": random(qy, qy + 50)};var dx2 = {"x": random(zx - 100, zx + 100),"y": random(zy, zy + 50),};var dx3 = {"x": zx,"y": zy};for (var i = 0; i < 4; i++) {eval("point.push(dx" + i + ")");};// log(point[3].x)for (let i = 0; i < 1; i += 0.08) {xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]xxy.push(xxyy);}// log(xxy);gesture.apply(null, xxy);log("有问题联系: wx_zhibo8888")
};

平台

以上代码为自行编写 ,如果需要打包。采用autojs pro,将代码内容复制到autojs 中,即可直接运行

安装方式

  • 下载apk
  • 将 apk 通过数据线复制到手机中
  • 打开手机文件管理器,找打刚才复制在手机中的目录
  • 点击apk,进行安装

使用方式

安装apk后,点击apk 图标即可启动软件

  • 启动软件
  • 如果有授权弹窗,点击允许即可
  • 然后在搜索框中,输入需要一对一聊天的平台
  • 点击搜索选项

如果提示要求开启无障碍权限。点击确定后,你需要找到软件对应的无障碍服务,并点击开启

保护生态 高山流水 直播伴侣 一对一引流互动脚本 源码相关推荐

  1. 【2022修复版】社群扫码进群活码引流完整运营源码/带视频搭建教程

    搭建环境 1.环境Nginx MySQL 5.6 php7.2 php7.2安装扩展fileinfo redis Swoole sg11 服务器需要安装linux的系统, 安装上宝塔,在配置这些环境就 ...

  2. 软件导航页源码+可封装APP/下载软件引流整站源码

    正文: 完整标题: 源码介绍: APP软件应用下载导航网站源码/APP分享下载页引流导航网站源码带后台版 这款源码 安装非常便捷干净,源码只有十几MB 只需要上传源码修改数据库连接信息即可使用. 后台 ...

  3. 社群扫码进群活码引流完整运营源码/对接免签约支付接口/推广正常绑定下级

    简介: 搭建环境 1.环境Nginx MySQL 5.6 php7.2 php7.2安装扩展fileinfo redis Swoole sg11 服务器需要安装linux的系统, 安装上宝塔,在配置这 ...

  4. 【2022修复版】社群扫码进群活码引流完整运营源码/对接免签约支付接口/推广正常绑定下级/带视频搭建教程

    源码简介 搭建环境 1.环境Nginx MySQL 5.6 php7.2 php7.2安装扩展fileinfo redis Swoole sg11 服务器需要安装linux的系统, 安装上宝塔,在配置 ...

  5. qq群活动引流php网站源码,QQ群自动私聊引流群发信息器源码

    1.手动打开群界面. 2.点开群名称,在弹出的页面中点成员,然后拉动右边的滚动条,直到管理员都被掩盖. 3.在软件中增加消息设置. 4.设置发送个数及时间,点击开始工作. 数据 = #常量_发送QQ消 ...

  6. NDK 直播推流与引流

    该文章首发于微信公众号"字节流动". 本博客 NDK 开发系列文章: NDK 编译的三种方式 NDK 开发中引入第三方静态库和动态库 NDK 开发中 Native 与 Java 交 ...

  7. 在直播平台搭建平台中,购物源码开发公司的直播间搭建该如何选择流媒体直播系统传输协议

    2019年直播行业面临着来势汹汹的短视频挑战,但在垂直细分领域,网络直播平台依旧有着难以企及的位置.如今,直播平台搭建的势头依旧没有减弱,只是更多的人想要将直播平台与更多的行业相结合.对于直播平台搭建 ...

  8. html直播动画,HTML5 直播疯狂点赞动画实现代码 附源码

    直播有一个很重要的互动: 为了烘托直播间的氛围,直播相对于普通视频或者文本内容,点赞通常有两个特殊需求: 点赞动作无限次,引导用户疯狂点赞 直播间的所有疯狂点赞,都需要在所有用户界面都 我们先来看效果 ...

  9. 儒猿秒杀季!微服务限流熔断技术源码剖析与架构设计

    疯狂秒杀季:49元秒杀 原价 299元 的 <微服务限流熔断技术源码剖析与架构设计课> 今天 上午11点,仅 52 套,先到先得! === 课程背景 === 成为一名架构师几乎是每个程序员 ...

  10. 疯狂html附源码,科技常识:HTML5 直播疯狂点赞动画实现代码 附源码

    今天小编跟大家讲解下有关HTML5 直播疯狂点赞动画实现代码 附源码 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关HTML5 直播疯狂点赞动画实现代码 附源码 的相关资料,希望小伙伴们看 ...

最新文章

  1. oracle元字符,oracle中正则表达式的基本元字符
  2. tp3.2 连接两个数据库
  3. pytorch基本数学运算:加法 减法 乘法 除法 指数 对数 绝对值
  4. RMAN的设置引起删除归档日志无法删除的错误
  5. 51单片机—串口通信
  6. 智能车复工日记【N】:图像处理——环岛debug记录(持续更新)
  7. 雷林鹏分享:PHP If...Else 语句
  8. 组件开发之Asp.net服务器控件Collection[集合]属性的设计时支持--编辑、保存
  9. OpenCasCade——将鼠标点的位置转换为基于OCC三维坐标系中在某一面上的坐标
  10. 小鸡模拟器android怎么玩,小鸡模拟器使用常见问题解决办法_模拟器使用FAQ_3DM手游...
  11. Couchbase使用入门
  12. 逻辑回归算法原理MATLAB,逻辑回归算法(MATLAB)
  13. NiFi+Kylo安装部署
  14. 模拟电子电路(1)——概论
  15. [LeetCode] 面试题 02.07. 链表相交
  16. 安卓开发自学教程,Android研发岗必问30+道高级面试题
  17. 物流行业大数据分析:数据驱动物流运营效率提升
  18. mysql查询第一行
  19. 微信号开通检测软件选择需谨慎
  20. Ubuntu12.04 64位安装qq

热门文章

  1. PHP 公众号文章 转 pdf,使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)...
  2. java嵌入式软件开发工程师_嵌入式软件工程师笔试题
  3. java new string编码_Java String 类型编码转换
  4. 在线检查错别字校对软件 | 推荐
  5. 聊聊mac系统的 secoclient和iTerm2
  6. 反编译exe文件并替换图片资源
  7. jde 动态添加筛选条件的注意事项
  8. ShowModalDialog数据缓存的清除方法
  9. BP神经网络预测matlab程序销售量预测
  10. C语言的32个关键字怎么背,C语言32个关键字,精心整理带中文翻译