错误::Can't find method
com.stardust.autojs.runtime.ScriptRuntime
.sleep(globals_.js#16)
是一个LiveMe自动私信粉丝的脚本
```javascript
function TangoMsgScriptMain() {
// 读取参数
let wordsID = files.read('./iw/ID.txt'); // 获取当前话术ID
let wordsStr = files.read('./iw/Words.txt'); // 获取私信内容
let wordsObj = JSON.parse(wordsStr);
let wordsList = [];
for (let key in wordsObj) {
if (Object.hasOwnProperty.call(wordsObj, key)) {
let element = wordsObj[key];
wordsList.push(element);
}
}
let countString = files.read('./iw/count.txt'); // 获取评论次数
let count = parseInt(countString); // 将count转成Number类型
// 读取私信记录 --> 先判断文件路径是否存在:若存在,则读取记录;若不存在,则创建文件
let msgRecordObj = {}; // 所有私信记录
let currentIDMsgRecordArr = []; // 当前话术ID对应的私信记录
if (files.exists('./iw/LiveMeRecord.txt')) {
let msgRecordTemp = files.read('./iw/LiveMeRecord.txt');
if (msgRecordTemp === '') {
msgRecordTemp = '{}';
}
msgRecordObj = JSON.parse(msgRecordTemp);
if (msgRecordObj.hasOwnProperty(wordsID)) {
currentIDMsgRecordArr = msgRecordObj[wordsID];
}
} else {
files.create("./iw/LiveMeRecord.txt");
}
// 打开LiveMe Pro
toastLog('打开LiveMe Pro');
launch('com.europe.live');
sleep(8000);
// 关闭弹窗
// let popup = id("check_in_close").findOne();
// if (popup) {
// toastLog('关闭广告弹窗');
// popup.click();
// sleep(3000);
// } else {
// 进入个人主页
toastLog('进入个人主页');
let profileClickMe = id("me_page").findOne().click();
sleep(3000);
// }
// 进入粉丝列表
toastLog('进入粉丝列表');
let profileClickFans = id("fans_tv_text").findOne().click();
sleep(3000);
// 进入推广列表
toastLog('进入推广列表');
let profileClickExtension = id("home_tab_title").className("android.widget.TextView").text("推薦").findOne().parent().parent().click();
sleep(3000);
// 已操作粉丝列表,包括不能发送私信的粉丝
let fansArr = [];
// 已操作粉丝数量,不包括不能发送私信的粉丝
let operatedNum = [];
// 记录上一个循环页面中最后一个粉丝的昵称
let lastFansName = '';
// 循环执行私信任务
while (operatedNum < count) {
// --- 获取当前页面的粉丝列表 ---
// 获取所有 id 为 com.europe.live:id/follow_list_root 的控件
let fansListFirst = id('com.europe.live:id/follow_name').find()
// let fansListFirst = className(android.view.ViewGroup).find()
// 获取当前页面的粉丝数量
let fansNum = fansListFirst.length;
toastLog('当前页面粉丝数:' + fansNum);
sleep(3000)
for (let i = 0; i < fansNum; i++) {
// --- 获取当前页面的粉丝列表 ---
// 获取所有 id 为 com.europe.live:id/follow_list_root 的控件
let fansList = id('com.europe.live:id/follow_name').find();
// 获取当前粉丝昵称控件
let currentFans = fansList[i];
// 获取当前粉丝昵称
let currentFansName = currentFans.text();
// 判断当前粉丝是否已经私信过
if (currentIDMsgRecordArr.indexOf(currentFansName) === -1 && fansArr.indexOf(currentFansName) === -1) {
toastLog('当前粉丝昵称:' + currentFansName);
sleep(2000);
// 进入当前粉丝个人主页
currentFans.parent().click();
sleep(3000);
let fansSendMsgPageBth = id("layout_message").findOne();
if (fansSendMsgPageBth) {
// 进入当前粉丝私信页面
toastLog('进入私信');
fansSendMsgPageBth.click();
sleep(3000);
// 提示用户
toastLog('当前执行第' + (operatedNum + 1) + '次操作');
sleep(2000);
// 开始私信
for (let k = 0; k < wordsList.length; k++) {
let msgArr = wordsList[k];
// 点击输入框
let editTexBtn = id("toolbox_et_message").findOne();
click(editTexBtn.bounds().centerX(), editTexBtn.bounds().centerY());
sleep(2000);
// 输入私信内容
setText(msgArr[random(0, msgArr.length - 1)]);
sleep(2000);
// 点击发送按钮
let sendBtn = id('toolbox_btn_send').findOne().click();
sleep(3000);
if (k !== wordsList.length - 1) {
// 间隔随机时间
sleep(random(5, 10) * 1000)
}
}
// operatedNum++;
operatedNum++;
// 提示用户
toastLog('私信成功');
sleep(2000);
if (operatedNum === count) {
i = fansNum;
}
// 返回收起小键盘 ************
backFun();
// 返回至粉丝个人主页
backFun();
} else {
toastLog('当前粉丝无法私信,正在跳过...');
sleep(2000);
}
// --- 后续操作 ---
// 1. 更新 fansArr 数组
toastLog('更新数组');
fansArr.push(currentFansName);
sleep(2000);
// 2.更新 msgRecordObj 对象
if (!msgRecordObj.hasOwnProperty(wordsID)) {
msgRecordObj[wordsID] = [];
}
toastLog('更新 msgRecordObj');
msgRecordObj[wordsID].push(currentFansName);
sleep(2000);
// 3. 将新的 msgRecordObj 对象写入文件中
toastLog('将新的 msgRecordObj 对象写入文件中')
files.write("./iw/TangoRecord.txt", JSON.stringify(msgRecordObj));
sleep(2000);
// 返回至粉丝列表
backFun();
}
}
toastLog('---下滑---');
swipe(device.width / 2, 3 * device.height / 4, device.width / 2, device.height / 4, 2000);
sleep(2000);
// 重新获取所有 id 为 com.europe.live:id/follow_list_root 的控件
let fansListCheck = id('com.europe.live:id/follow_name').find();
// 获取最后一个粉丝的昵称
let lastFansNameCheck = fansListCheck[fansListCheck.length - 1].text();
// 判断
if (lastFansName === lastFansNameCheck) {
toastLog('已私信所有粉丝,结束任务...');
sleep(2000);
break;
} else {
lastFansName = lastFansNameCheck
}
}
// 返回
backFun();
// 返回至首页
backFun();
// 返回CoolCloud
// launch('com.aidian.coolcloud');
// sleep(3000);
// 退出脚本 *********
exit();
}
function backFun() {
back();
sleep();
}
// 脚本入口函数
TangoMsgScriptMain();
```