/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 772: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const nodes = __webpack_require__(590); module.exports = { packageName: "com.ss.android.ugc.aweme", versions: ["26.0.0", "27.0.0", "28.0.0", "28.1.0", "28.2.0", "28.3.0", "28.4.0", "28.5.0", "28.6.0", "28.7.0", "28.8.0", "28.9.0", "29.0.0", "29.1.0","29.2.0","29.3.0"], commonts: ["又刷到你了", "看看我的作品", "来我主页转转"], sxhs: ["很高兴认识你", "常来常往"], zfhs: ["互粉", "回关", "关注", "互赞"], czyhGjzs: ["多少", "价格", "联系"], dqGjzs: ["安徽", "浙江", "江苏"], nodes: nodes, } /***/ }), /***/ 922: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const utility = __webpack_require__(580); const conf = __webpack_require__(772); const engine = __webpack_require__(312); var douyin = { version: "", nodes: {}, init() { var info = utility.packageInfo(conf.packageName); if (utility.isEmpty(info)) { alert("请安装支持的抖音版本!"); return false; } else if (conf.versions.includes(info.versionName)) { this.version = info.versionName; this.nodes = conf.nodes[info.versionName] || {}; return true; } else { alert("不支持 抖音(" + info.versionName + ")请安装支持的抖音版本!"); return false; } }, execClose() { for (utility.inputHide(); ;) { var closeBtn = desc("关闭").visibleToUser().findOnce(); if (!closeBtn) { break; } closeBtn.click(); sleep(1000); } }, execCancel() { while (true) { var closeBtn = id("cancel_btn").visibleToUser().findOnce(); if (!closeBtn) { break; } closeBtn.click(); sleep(1000); } }, execBackOnce() { var backBtn = desc("返回").visibleToUser().findOnce(); return backBtn !== null && (backBtn.click(), sleep(500), true); }, execBack() { while (this.execBackOnce()) ; }, execLike() { var wdz = className("android.widget.LinearLayout").descStartsWith("未点赞").descEndsWith("按钮").visibleToUser().findOnce(); return !!wdz && (utility.toast("执行点赞"), wdz.click(), sleep(1000), true); }, execTxdz() { var txdz; if (desc("用户头像").visibleToUser().findOnce().click()) { sleep(500); txdz = className("android.widget.RelativeLayout").visibleToUser().findOnce(); sleep(500); txdz.click(); engine.sleepMs(1000, 2000); back(); sleep(1000); } }, popupAndClose() { threads.start(function () { while (true) { var a; sleep(200); if (text("授权提示").exists()) { text("同意授权").click(); } sleep(200); if (text("休息一下吧").exists()) { text("取消").click(); } sleep(200); if (text("很晚了,睡个好觉").exists() || text("早点睡觉吧").exists()) { text("取消").click(); } sleep(200); if (text("朋友推荐").exists() && (a = desc("关闭").findOnce())) { a.click(); } sleep(200); if (text("发现通讯录好友").exists()) { text("取消").click(); } sleep(200); if (text("个人信息保护指引").exists()) { text("好的").click(); } sleep(200); if (text("去商店评分").exists()) { text("取消").click(); } sleep(200); if (text("开启青少年模式").exists()) { text("我知道了").click(); } sleep(200); if (text("检测到更新").exists()) { text("以后再说").click(); } sleep(200); if (text("跳过广告").exists()) { text("跳过广告").click(); } sleep(200); if (text("下次").exists()) { text("下次").click(); } sleep(1000); } }); }, getNode(path) { var tp; var path = path.split("."); let node = this.nodes; for (tp of path) { if ((node = node[tp] || null) === null) { break; } } if (!node) { node = conf.nodes.all; for (let tp of path) { if ((node = node[tp] || null) === null) { break; } } } return node; }, isRecommend() { return descContains("推荐").descEndsWith("按钮").descContains("已选中").visibleToUser().findOnce() !== null || descContains("精选").descEndsWith("按钮").descContains("已选中").visibleToUser().findOnce() !== null; }, IsVideo() { var node = douyin.getNode("video.like"); return node !== null && id(node.id).visibleToUser().findOnce() !== null || className("android.widget.LinearLayout").descContains("点赞").descEndsWith("按钮").visibleToUser().findOnce() !== null; }, IsVideoDelay(ms) { return className("android.widget.LinearLayout").descContains("点赞").descEndsWith("按钮").visibleToUser().findOne(ms) !== null; }, skipVideo() { return !this.IsVideo() && (utility.toast("跳过非视频或图集作品!"), sleep(500), engine.slide(), true); }, IsFollow() { return className("android.widget.Button").desc("关注").visibleToUser().findOnce() !== null; }, execFollow() { var con = className("android.widget.Button").desc("关注").visibleToUser().findOnce(); return !!con && (utility.toast("执行关注"), con.click(), true); }, sikpFollow() { return !this.IsFollow() && (utility.toast("跳过已关注用户"), sleep(500), engine.slide(), true); }, IsLike() { return className("android.widget.LinearLayout").descStartsWith("已点赞").descEndsWith("按钮").visibleToUser().findOnce() !== null; }, sikpLike() { return !!this.IsLike() && (utility.toast("跳过已点赞视频"), sleep(500), engine.slide(), true); }, getLikeNum() { let num = 0; try { var desc = className("android.widget.LinearLayout").descContains("点赞").descEndsWith("按钮").visibleToUser().findOnce().desc(); num = parseFloat(desc.match(/[0-9]+(\.[0-9]{0,2})?/g)[0]); if (desc.indexOf("w") >= 0 || desc.indexOf("万") >= 0) { num *= 10000; } } catch (e) { num = 0; } return num; }, IsAd() { return textContains("广告").visibleToUser().findOnce() !== null; }, sikpAp() { return !!this.IsAd() && (utility.toast("跳过忽略广告"), sleep(500), engine.slide(), true); }, IsCommerce() { try { if (textEndsWith("限时秒杀").visibleToUser().findOnce() !== null) { return true; } if (textEndsWith("优惠团购").visibleToUser().findOnce() !== null) { return true; } } catch (e) { } return false; }, sikpCommerce() { return !!this.IsCommerce() && (utility.toast("跳过商业视频!"), sleep(500), engine.slide(), true); }, watchVideo(startTime, watchTime) { startTime = engine.getUnix() - startTime; if ((watchTime -= startTime = startTime > 60 ? 60 : startTime) > 0) { console.log("观看时间:", watchTime); engine.sleep(watchTime); console.log("已观看时间:", watchTime); utility.toast("继续观看视频" + watchTime + "秒"); } else { utility.toast("已观看视频" + startTime + "秒"); } sleep(500); }, canComment() { let num = 0; try { var desc = className("android.widget.LinearLayout").descContains("评论").descEndsWith("按钮").visibleToUser().findOnce().desc(); num = parseFloat(desc.match(/[0-9]+(\.[0-9]{0,2})?/g)[0]); } catch (e) { num = 0; } return num > 0; }, sendComment(hs, isComment, isLike, pltp) { try { isComment = !!isComment || isComment === undefined; var plBtn = className("android.widget.LinearLayout").descStartsWith("评论").descEndsWith("按钮").visibleToUser().findOnce(); if (plBtn && plBtn.click()) { let editText = className("android.widget.EditText").visibleToUser().findOne(3000); if (editText === null) { sleep(1000); editText = className("android.widget.EditText").visibleToUser().findOne(2000); } if (editText === null) { utility.toast("没有识别到评论框"); sleep(500); } else { if (isLike) { utility.toast("执行评论点赞"); sleep(1000); (commentZanBtns = descStartsWith("赞").descEndsWith("未选中").visibleToUser().find()).forEach(el => { (el.clickable() ? el : el.parent()).click(); engine.sleepMs(500, 1000); }); } var hsLen = hs.length; if (!isComment || hsLen < 1) { utility.toast("不执行评论"); sleep(500); } else { utility.toast("准备发表评论"); if (editText.click()) { sleep(1000); setText(hs[random(0, hsLen - 1)]); engine.sleepMs(1000, 3000); if (pltp && desc("插入图片").visibleToUser().findOne(3000) !== null) { if (!desc("插入图片").visibleToUser().findOne().click()) { utility.toast("没有成功点击到发布图片按钮"); } sleep(2000); let listBox = id("com.ss.android.ugc.aweme:id/content_container").visibleToUser().findOne(2000); if ((listBox = listBox.find(id("com.ss.android.ugc.aweme:id/root_view"))).length == 0) { alert("没有图片!", "手机相册里请先准备好图片!"); return; } if (!listBox[random(0, listBox.length - 1)].click()) { utility.toast("图片点击失败!"); back(); } engine.sleepMs(1000, 2000); } let sendBtn = className("android.widget.ImageView").visibleToUser().desc("发送").findOne(5000); if ((sendBtn = (sendBtn = sendBtn || className("android.widget.TextView").visibleToUser().text("发送").findOne(5000)) || text("发送").findOne(5000)) === null) { utility.toast("没有获取到发送按钮"); sleep(1000); } else { if (sendBtn.clickable()) { if (!sendBtn.click()) { utility.toast("没有成功点击发送按钮"); sleep(1000); this.execClose(); return; } } else if (!sendBtn.parent().click()) { utility.toast("没有成功点击parent发送按钮"); sleep(1000); this.execClose(); return; } utility.toast("评论完成"); if (text("我也发一张").visibleToUser().findOne(5000) !== null) { this.execBack(); } engine.sleepMs(2000, 5000); } } else { utility.toast("没有成功点击评论框"); sleep(500); } } } this.execClose(); } } catch (e) { console.log(e); utility.toast("评论操作失败"); sleep(500); this.execClose(); } }, isHome() { return id(this.getNode("user.homeMark").id).visibleToUser().findOne(10000) !== null; }, previewHome() { var head = id(this.getNode("index.headimg").id).visibleToUser().findOnce(); if (head !== null && head.click()) { utility.toast("访问用户首页"); if (this.isHome()) { engine.sleep(2, 5); if (random(1, 3) == 1) { engine.slide(); engine.sleep(2, 5); } } else { console.log("打开用户首页失败"); } this.execBackOnce(); } }, previewHomeTc() { let yhxb = 0; var head = id(this.getNode("index.headimg").id).visibleToUser().findOnce(); if (head !== null && head.click()) { utility.toast("访问用户首页"); if (this.isHome()) { engine.sleepMs(2000, 3000); if (descStartsWith("男").visibleToUser().findOnce() !== null) { yhxb = 1; } if (descStartsWith("女").visibleToUser().findOnce() !== null) { yhxb = 2; } this.execBackOnce(); return yhxb; } console.log("打开用户首页失败"); this.execBackOnce(); } }, getVideoDesc() { var vedioDesc = id(douyin.getNode("index.desc").id).visibleToUser().findOnce(); if (vedioDesc === null) { return ""; } else { return vedioDesc.text(); } }, getVideoTitle() { var vedioTitle = id(douyin.getNode("index.title").id).visibleToUser().findOnce(); if (vedioTitle === null) { return ""; } else { return vedioTitle.text(); } }, getVideoMark() { return this.getVideoDesc() + this.getVideoTitle(); } }; module.exports = douyin; /***/ }), /***/ 312: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { if (__webpack_require__.g.ENV_CONF === "undefined") { __webpack_require__.g.ENV_CONF = {}; }else{ console.log("执行参数",__webpack_require__.g.ENV_CONF) } module.exports = { deviceWidth: ENV_CONF.screenWidth || device.width, deviceHeight: ENV_CONF.screenHeight || device.height, exit() { engines.stopAll(); exit(); }, swipeEx(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 + ")"); } for (let i = 0; i < 1; i += 0.08) { xxyy = [parseInt(this.bezier_curves(point, i).x), parseInt(this.bezier_curves(point, i).y)]; xxy.push(xxyy); } gesture.apply(null, xxy); }, bezier_curves(cp, t) { cx = (cp[1].x - cp[0].x) * 3; bx = (cp[2].x - cp[1].x) * 3 - cx; ax = cp[3].x - cp[0].x - cx - bx; cy = (cp[1].y - cp[0].y) * 3; by = (cp[2].y - cp[1].y) * 3 - cy; ay = cp[3].y - cp[0].y - cy - by; tSquared = t * t; tCubed = tSquared * t; (result = { x: 0, y: 0 }).x = ax * tCubed + bx * tSquared + cx * t + cp[0].x; result.y = ay * tCubed + by * tSquared + cy * t + cp[0].y; return result; }, shortSlide() { this.swipeEx(this.deviceWidth * 0.5, this.deviceHeight * 0.8, this.deviceWidth * 0.5, this.deviceHeight * 0.8 - 500, 300); }, middleSlide() { this.swipeEx(this.deviceWidth * 0.5, this.deviceHeight * 0.8, this.deviceWidth * 0.5, this.deviceHeight * 0.5, 300); }, deSlide() { this.swipeEx(this.deviceWidth * 0.5, this.deviceHeight * 0.3, this.deviceWidth * 0.5, this.deviceHeight, 300); }, bshortSlide() { this.swipeEx(this.deviceWidth * 0.5, this.deviceHeight * 0.8, this.deviceWidth * 0.5, this.deviceHeight * 0.8 - 500, 300); }, slide() { this.swipeEx(this.deviceWidth * 0.8, this.deviceHeight * 0.7, this.deviceWidth * 0.8, 0, random(300, 500)); }, fanslide() { this.swipeEx(this.deviceWidth * 0.9, this.deviceHeight * 0.5, this.deviceWidth * 0.9, this.deviceHeight * 0.01, 500); }, regionClick(region) { click(random(region[0], region[0] + region[2]), random(region[1], region[1] + region[3])); }, boundsClick(bounds) { var x = bounds.width() * 0.2; var y = bounds.height() * 0.2; bounds.left += x; bounds.right -= x; bounds.top += y; bounds.bottom -= y; click(random(bounds.left, bounds.right), random(bounds.top, bounds.bottom)); }, sleepMs() { var argLen = arguments.length; let min = 0; let max = 0; if (argLen == 1) { min = arguments[0]; max = arguments[0]; } else { if (argLen < 2) { return; } min = arguments[0]; max = arguments[1]; } if (min >= max) { sleep(min); } else { sleep(random(min, max)); } }, sleep() { var argLen = arguments.length; let min = 0; let max = 0; if (argLen == 1) { min = arguments[0]; max = arguments[0]; } else { if (argLen < 2) { return; } min = arguments[0]; max = arguments[1]; } if (min >= max) { sleep(min * 1000); } else { sleep(random(min, max) * 1000); } }, getUnix() { return parseInt(Date.now() / 1000); } }; /***/ }), /***/ 590: /***/ ((module) => { var nodes = { all: { index: { headimg: { id: "com.ss.android.ugc.aweme:id/user_avatar" }, desc: { id: "com.ss.android.ugc.aweme:id/desc" }, title: { id: "com.ss.android.ugc.aweme:id/title" }, searchInput: { id: "com.ss.android.ugc.aweme:id/et_search_kw" } } }, "26.0.0": { comment: { button: { id: "com.ss.android.ugc.aweme:id/dc7" }, zan: { id: "com.ss.android.ugc.aweme:id/er2" } }, video: { like: { id: "com.ss.android.ugc.aweme:id/er-" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/t5o" }, gznum: { id: "com.ss.android.ugc.aweme:id/w8o" }, fansnum: { id: "com.ss.android.ugc.aweme:id/w8s" }, username: { id: "com.ss.android.ugc.aweme:id/nsc" }, lanv: { id: "com.ss.android.ugc.aweme:id/w9h" }, followBtn: { id: "com.ss.android.ugc.aweme:id/po9" } }, live: { msglistbox: { id: "com.ss.android.ugc.aweme:id/mwq" }, userlistbox: { id: "com.ss.android.ugc.aweme:id/xzb" } } }, "27.0.0": { comment: { button: { id: "com.ss.android.ugc.aweme:id/dh7" }, zan: { id: "com.ss.android.ugc.aweme:id/eyg" } }, video: { like: { id: "com.ss.android.ugc.aweme:id/eyp" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/vkl" }, gznum: { id: "com.ss.android.ugc.aweme:id/yr5" }, fansnum: { id: "com.ss.android.ugc.aweme:id/yr9" }, username: { id: "com.ss.android.ugc.aweme:id/ohq" }, lanv: { id: "com.ss.android.ugc.aweme:id/ys7" }, followBtn: { id: "com.ss.android.ugc.aweme:id/qpd" } }, live: { msglistbox: { id: "com.ss.android.ugc.aweme:id/njx" }, userlistbox: { id: "com.ss.android.ugc.aweme:id/zkc" } } }, "27.3.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/e3z" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dms" }, zan: { id: "com.ss.android.ugc.aweme:id/e3p" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v0f" }, gznum: { id: "com.ss.android.ugc.aweme:id/y=3" }, fansnum: { id: "com.ss.android.ugc.aweme:id/y=7" }, username: { id: "com.ss.android.ugc.aweme:id/oth" }, lanv: { id: "com.ss.android.ugc.aweme:id/y_7" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q1y" } }, live: { msglistbox: { id: "com.ss.android.ugc.aweme:id/nu1" }, userlistbox: { id: "com.ss.android.ugc.aweme:id/z35" } } }, "27.4.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/e3=" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dm2" }, zan: { id: "com.ss.android.ugc.aweme:id/e30" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v0u" }, gznum: { id: "com.ss.android.ugc.aweme:id/y_h" }, fansnum: { id: "com.ss.android.ugc.aweme:id/y_l" }, username: { id: "com.ss.android.ugc.aweme:id/os-" }, lanv: { id: "com.ss.android.ugc.aweme:id/y-k" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q19" } }, live: { msglistbox: { id: "com.ss.android.ugc.aweme:id/nuw" }, userlistbox: { id: "com.ss.android.ugc.aweme:id/z4t" } } }, "27.5.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/e3+" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dnm" }, zan: { id: "com.ss.android.ugc.aweme:id/e33" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v1f" }, gznum: { id: "com.ss.android.ugc.aweme:id/y-e" }, fansnum: { id: "com.ss.android.ugc.aweme:id/y-i" }, username: { id: "com.ss.android.ugc.aweme:id/osz" }, lanv: { id: "com.ss.android.ugc.aweme:id/y+h" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q2n" } }, live: { msglistbox: { id: "com.ss.android.ugc.aweme:id/nuh" }, userlistbox: { id: "com.ss.android.ugc.aweme:id/z5o" } } }, "27.6.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/e5o" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dow" }, zan: { id: "com.ss.android.ugc.aweme:id/e5e" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v2+" }, gznum: { id: "com.ss.android.ugc.aweme:id/y+-" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zac" }, username: { id: "com.ss.android.ugc.aweme:id/ouo" }, lanv: { id: "com.ss.android.ugc.aweme:id/za+" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q4b" } }, live: { msglistbox: { id: "com.ss.android.ugc.aweme:id/nv8" }, userlistbox: { id: "com.ss.android.ugc.aweme:id/z7s" } } }, "27.7.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/exn" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/df+" }, zan: { id: "com.ss.android.ugc.aweme:id/exd" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v83" }, gznum: { id: "com.ss.android.ugc.aweme:id/zic" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zig" }, username: { id: "com.ss.android.ugc.aweme:id/ov4" }, lanv: { id: "com.ss.android.ugc.aweme:id/zjf" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q6o" } }, live: { msglistbox: { id: "com.ss.android.ugc.aweme:id/nsz" }, userlistbox: { id: "com.ss.android.ugc.aweme:id/0cc" } } }, "27.8.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/eyq" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dg_" }, zan: { id: "com.ss.android.ugc.aweme:id/eyg" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v_e" }, gznum: { id: "com.ss.android.ugc.aweme:id/zku" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zky" }, username: { id: "com.ss.android.ugc.aweme:id/oyz" }, lanv: { id: "com.ss.android.ugc.aweme:id/zlu" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q72" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0ew" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nwv" } } }, "27.9.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/ezh" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dhs" }, zan: { id: "com.ss.android.ugc.aweme:id/ey=" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/waf" }, gznum: { id: "com.ss.android.ugc.aweme:id/zn6" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zn=" }, username: { id: "com.ss.android.ugc.aweme:id/o0p" }, lanv: { id: "com.ss.android.ugc.aweme:id/zo7" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q97" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0h=" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nz9" } } }, "28.0.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/ezh" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dho" }, zan: { id: "com.ss.android.ugc.aweme:id/ey=" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/wcy" }, gznum: { id: "com.ss.android.ugc.aweme:id/zqq" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zqu" }, username: { id: "com.ss.android.ugc.aweme:id/o13" }, lanv: { id: "com.ss.android.ugc.aweme:id/zrr" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q_r" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0kz" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/n19" } } }, "28.1.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/ezy" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/dh0" }, zan: { id: "com.ss.android.ugc.aweme:id/ezo" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/wd8" }, gznum: { id: "com.ss.android.ugc.aweme:id/zrs" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zrw" }, username: { id: "com.ss.android.ugc.aweme:id/o2_" }, lanv: { id: "com.ss.android.ugc.aweme:id/zsu" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q-1" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0lw" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/n3u" } } }, "28.2.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/efs" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c1a" }, zan: { id: "com.ss.android.ugc.aweme:id/efi" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/vsx" }, gznum: { id: "com.ss.android.ugc.aweme:id/y6j" }, fansnum: { id: "com.ss.android.ugc.aweme:id/y6n" }, username: { id: "com.ss.android.ugc.aweme:id/oe9" }, lanv: { id: "com.ss.android.ugc.aweme:id/y7f" }, followBtn: { id: "com.ss.android.ugc.aweme:id/qod" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/zzu" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nbk" } } }, "28.3.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/egc" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c1r" }, zan: { id: "com.ss.android.ugc.aweme:id/ef6" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/vvo" }, gznum: { id: "com.ss.android.ugc.aweme:id/y9g" }, fansnum: { id: "com.ss.android.ugc.aweme:id/y9k" }, username: { id: "com.ss.android.ugc.aweme:id/og0" }, lanv: { id: "com.ss.android.ugc.aweme:id/y=c" }, followBtn: { id: "com.ss.android.ugc.aweme:id/qp-" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/z2s" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nc4" } } }, "28.4.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/ehq" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c2=" }, zan: { id: "com.ss.android.ugc.aweme:id/ehf" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v09" }, gznum: { id: "com.ss.android.ugc.aweme:id/zbf" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zbj" }, username: { id: "com.ss.android.ugc.aweme:id/old" }, lanv: { id: "com.ss.android.ugc.aweme:id/zcb" }, followBtn: { id: "com.ss.android.ugc.aweme:id/qu-" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/z9i" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/ng7" } } }, "28.5.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/eio" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c31" }, zan: { id: "com.ss.android.ugc.aweme:id/eid" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v3+" }, gznum: { id: "com.ss.android.ugc.aweme:id/zex" }, fansnum: { id: "com.ss.android.ugc.aweme:id/ze1" }, username: { id: "com.ss.android.ugc.aweme:id/on1" }, lanv: { id: "com.ss.android.ugc.aweme:id/zft" }, followBtn: { id: "com.ss.android.ugc.aweme:id/qx3" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/z-5" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nje" } } }, "28.6.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/ei-" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c4g" }, zan: { id: "com.ss.android.ugc.aweme:id/ei1" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v7c" }, gznum: { id: "com.ss.android.ugc.aweme:id/zh=" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zia" }, username: { id: "com.ss.android.ugc.aweme:id/op1" }, lanv: { id: "com.ss.android.ugc.aweme:id/zi7" }, followBtn: { id: "com.ss.android.ugc.aweme:id/qz9" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0ck" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nk-" } } }, "28.7.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/ejz" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c41" }, zan: { id: "com.ss.android.ugc.aweme:id/ejo" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v97" }, gznum: { id: "com.ss.android.ugc.aweme:id/zk=" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zla" }, username: { id: "com.ss.android.ugc.aweme:id/ory" }, lanv: { id: "com.ss.android.ugc.aweme:id/zl6" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q2d" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0fr" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nm6" } } }, "28.8.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/ekj" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c5g" }, zan: { id: "com.ss.android.ugc.aweme:id/ej-" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/v+_" }, gznum: { id: "com.ss.android.ugc.aweme:id/zph" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zpl" }, username: { id: "com.ss.android.ugc.aweme:id/ot-" }, lanv: { id: "com.ss.android.ugc.aweme:id/zqd" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q47" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0jz" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nor" } } }, "28.9.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/el2" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c6w" }, zan: { id: "com.ss.android.ugc.aweme:id/elr" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/wej" }, gznum: { id: "com.ss.android.ugc.aweme:id/zt8" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zt-" }, username: { id: "com.ss.android.ugc.aweme:id/owx" }, lanv: { id: "com.ss.android.ugc.aweme:id/zu4" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q7=" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0ol" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nrb" } } }, "29.0.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/el5" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c6v" }, zan: { id: "com.ss.android.ugc.aweme:id/elu" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/wgx" }, gznum: { id: "com.ss.android.ugc.aweme:id/zxf" }, fansnum: { id: "com.ss.android.ugc.aweme:id/zxj" }, username: { id: "com.ss.android.ugc.aweme:id/ox2" }, lanv: { id: "com.ss.android.ugc.aweme:id/zyb" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q9u" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0r0" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nrq" } } }, "29.1.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/emy" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c7i" }, zan: { id: "com.ss.android.ugc.aweme:id/eml" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/poo" }, gznum: { id: "com.ss.android.ugc.aweme:id/z1u" }, fansnum: { id: "com.ss.android.ugc.aweme:id/z1y" }, username: { id: "com.ss.android.ugc.aweme:id/o07" }, lanv: { id: "com.ss.android.ugc.aweme:id/z2q" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q-z" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0wc" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nv_" } } }, "29.2.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/emx" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c19" }, zan: { id: "com.ss.android.ugc.aweme:id/emk" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/wkf" }, gznum: { id: "com.ss.android.ugc.aweme:id/z1b" }, fansnum: { id: "com.ss.android.ugc.aweme:id/z1f" }, username: { id: "com.ss.android.ugc.aweme:id/o0y" }, lanv: { id: "com.ss.android.ugc.aweme:id/z1_" }, followBtn: { id: "com.ss.android.ugc.aweme:id/q-2" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0vz" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/nv1" } } }, "29.3.0": { video: { like: { id: "com.ss.android.ugc.aweme:id/en6" } }, comment: { button: { id: "com.ss.android.ugc.aweme:id/c3g" }, zan: { id: "com.ss.android.ugc.aweme:id/eni" } }, user: { homeMark: { id: "com.ss.android.ugc.aweme:id/wn4" }, gznum: { id: "com.ss.android.ugc.aweme:id/z5j" }, fansnum: { id: "com.ss.android.ugc.aweme:id/z5n" }, username: { id: "com.ss.android.ugc.aweme:id/o3b" }, lanv: { id: "com.ss.android.ugc.aweme:id/z6f" }, followBtn: { id: "com.ss.android.ugc.aweme:id/rbk" } }, live: { userlistbox: { id: "com.ss.android.ugc.aweme:id/0z9" }, msglistbox: { id: "com.ss.android.ugc.aweme:id/fu3" } } } }; module.exports = nodes; /***/ }), /***/ 580: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const {packageName} = __webpack_require__(772); if (__webpack_require__.g.floatyToastWindow === undefined) { __webpack_require__.g.floatyToastWindow = floaty.rawWindow(` `); floatyToastWindow.setTouchable(false); floatyToastWindow.setSize(-1, -2); floatyToastWindow.setPosition(0, (ENV_CONF.screenHeight || device.height) * 0.75); } module.exports = { currentRunPackage(packageName) { return currentPackage() == packageName || (app.launch(conf.packageName), false); }, packageInfo(packageName) { try { return context.getPackageManager().getPackageInfo(packageName, 0); } catch (e) { return null; } }, checkVersion(packageName, versions) { var info = this.packageInfo(packageName); if (this.isEmpty(info)) { alert("请安装抖音!"); return false; } else { packageName = app.getAppName(packageName); return !!versions.includes(info.versionName) || (alert("不支持 " + packageName + "(" + info.versionName + "),请安装支持版本!"), false); } }, isEmpty(value) { switch (typeof value) { case "undefined": return true; case "string": if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, "").length == 0) { return true; } break; case "boolean": if (value) { break; } return true; case "number": if (value === 0 || isNaN(value)) { return true; } break; case "object": if (value !== null && value.length !== 0) { for (var i in value) { return false; } } return true; } return false; }, checkProbability(value, hdfs) { var temp = random(1, 99); console.log(hdfs + "计算概率:" + temp + (temp < value ? "未超出" : "超出") + value); return temp < value; }, strFindKeys(s, keys) { for (w of keys) { if (s.indexOf(w) != -1) { return w; } } return ""; }, error(packageName, e) { if (e.fileName) { packageName = this.packageInfo(packageName); let versionName = "未知版本"; packageName = "版本号:" + (versionName = packageName && packageName.versionName ? packageName.versionName : versionName) + "\r\n"; packageName = (packageName = (packageName += "错误:" + e.toString() + "\r\n") + ("模块:" + e.fileName.replace(".js", "") + "\r\n")) + ("错误码:" + e.lineNumber + "\r\n") + "====================================\r\n"; files.write("/sdcard/error_bzy.log", packageName); } else { console.log("运行错误:", e.toString()); } }, inputShow() { for (var i = 0; auto.windows[i] != null; i++) { if (auto.windows[i].type == 2) { return true; } } return false; }, inputHide() { while (this.inputShow()) { back(); sleep(1000); } }, toast(msg) { ui.run(function () { console.log(msg); floatyToastWindow.text.setText(msg); floatyToastWindow.text.attr("visibility", "visible"); }); }, toastHide() { try { floatyToastWindow.text.attr("visibility", "invisible"); } catch (e) { } }, objectToStr(obj) { try { var str = obj.toString(); var index = str.indexOf(";"); if (index === -1) { return ""; } else { return str.slice(0, index); } } catch (error) { return ""; } }, compareVersion(version1, version2) { var arr1 = version1.split("."); var arr2 = version2.split("."); var length1 = arr1.length; var length2 = arr2.length; var minlength = Math.min(length1, length2); let i = 0; for (i; i < minlength; i++) { var a = parseInt(arr1[i]); var b = parseInt(arr2[i]); if (b < a) { return 1; } if (a < b) { return -1; } } if (length2 < length1) { for (let j = i; j < length1; j++) { if (parseInt(arr1[j]) != 0) { return 1; } } } else if (length1 < length2) { for (let j = i; j < length2; j++) { if (parseInt(arr2[j]) != 0) { return -1; } } } return 0; } }; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. (() => { const douyin = __webpack_require__(922); const conf = __webpack_require__(772); const engine = __webpack_require__(312); const utility = __webpack_require__(580); var param = { yxgs: 30, gksj1: 6, gksj2: 10, tggz: true, tgsy: true, dz: 25, gz: 10, pl: 70, pldz: 70, plhs: conf.commonts, pltp: true }; var spsx = { init() { return !!douyin.init() && !(typeof ENV_CONF != "undefined" && Object.assign(param, ENV_CONF), param.pl > 0 && param.plhs.length < 1 ? (alert("请设置评论话术"), 1) : douyin.IsVideo() ? (utility.toast("开始任务:视频筛选"), engine.sleep(1), device.keepScreenDim(), douyin.popupAndClose(), 0) : (alert("请在 搜索结果-视频 播放页运行"), 1)); }, run() { if (spsx.init()) { let prvDescText = ""; let repeatDesc = 0; let runCount = 0; while (true) { if (runCount >= param.yxgs) { device.cancelKeepingAwake(); alert("任务完成!"); return; } utility.toast("已观看 " + runCount + " 个有效视频,任务数" + param.yxgs); if (douyin.skipVideo()) { douyin.execClose(); } else if (!douyin.sikpAp()) { var useCommentLike; var descText = douyin.getVideoMark(); console.log(descText, prvDescText); if (prvDescText != "" && prvDescText === descText) { if (repeatDesc > 2) { alert("没有更多视频,任务结束!"); device.cancelKeepingAwake(); return; } repeatDesc++; } else { repeatDesc = 0; } prvDescText = descText; if (!douyin.sikpLike() && (!param.tggz || !douyin.sikpFollow()) && (!param.tgsy || !douyin.sikpCommerce())) { descText = engine.getUnix(); watchTime = random(param.gksj1, param.gksj2); douyin.watchVideo(descText, watchTime); if (utility.checkProbability(param.dz, "点赞")) { douyin.execLike(); engine.sleepMs(1000, 2500); } else { utility.toast("不点赞"); } if (utility.checkProbability(param.gz, "关注")) { douyin.execFollow(); engine.sleepMs(1000, 2500); } else { utility.toast("不关注"); } descText = utility.checkProbability(param.pl, "评论"); useCommentLike = utility.checkProbability(param.pldz, "评论点赞"); if ((descText || useCommentLike) && douyin.canComment()) { douyin.sendComment(param.plhs, descText, useCommentLike, param.pltp); } else { utility.toast("不评论"); } if (!douyin.IsVideo()) { douyin.execClose(); } engine.slide(); engine.sleep(1); runCount++; } } } } } }; try { spsx.run(); } catch (error) { utility.error(conf.packageName, error); } finally { engine.exit(); } })(); /******/ })() ;