(() => { var __webpack_modules__ = { 81: (module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__ = { 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"], nodes: __webpack_require__(761), commonts: ["又刷到你了", "看看我的作品", "来我主页转转"], sxhs: ["很高兴认识你", "常来常往"], zfhs: ["互粉", "回关", "关注", "互赞"], czyhGjzs: ["多少", "价格", "联系"], dqGjzs: ["安徽", "浙江", "江苏"] }; module.exports = __webpack_require__; }, 761: 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_" } } } }; module.exports = nodes; }, 954: (module, __unused_webpack_exports, __webpack_require__) => { var conf = __webpack_require__(81), utility = __webpack_require__(871), engine = __webpack_require__(557), douyin = { version: "", nodes: {}, init() { var info = utility.packageInfo(conf.packageName); return utility.isEmpty(info) ? (alert("请安装支持的抖音版本!"), !1) : conf.versions.includes(info.versionName) ? (this.version = info.versionName, this.nodes = conf.nodes[info.versionName] || {}, !0) : (alert("不支持 抖音(" + info.versionName + ")请安装支持的抖音版本!"), !1); }, execClose() { for (utility.inputHide(); ;) { var closeBtn = desc("关闭").visibleToUser().findOnce(); if (!closeBtn) break; closeBtn.click(), sleep(1e3); } }, execCancel() { for (; ;) { var closeBtn = id("cancel_btn").visibleToUser().findOnce(); if (!closeBtn) break; closeBtn.click(), sleep(1e3); } }, execBackOnce() { var backBtn = desc("返回").visibleToUser().findOnce(); return null !== backBtn && (backBtn.click(), sleep(500), !0); }, execBack() { for (; this.execBackOnce();) ; }, execLike() { var wdz = className("android.widget.LinearLayout").descStartsWith("未点赞").descEndsWith("按钮").visibleToUser().findOnce(); return !!wdz && (utility.toast("执行点赞"), wdz.click(), sleep(1e3), !0); }, execTxdz() { var txdz; desc("用户头像").visibleToUser().findOnce().click() && (sleep(500), txdz = className("android.widget.RelativeLayout").visibleToUser().findOnce(), sleep(500), txdz.click(), engine.sleepMs(1e3, 2e3), back(), sleep(1e3)); }, popupAndClose() { threads.start(function () { for (; ;) { var a; sleep(200), text("授权提示").exists() && text("同意授权").click(), sleep(200), text("休息一下吧").exists() && text("取消").click(), sleep(200), (text("很晚了,睡个好觉").exists() || text("早点睡觉吧").exists()) && text("取消").click(), sleep(200), text("朋友推荐").exists() && (a = desc("关闭").findOnce()) && a.click(), sleep(200), text("发现通讯录好友").exists() && text("取消").click(), sleep(200), text("个人信息保护指引").exists() && text("好的").click(), sleep(200), text("去商店评分").exists() && text("取消").click(), sleep(200), text("开启青少年模式").exists() && text("我知道了").click(), sleep(200), text("检测到更新").exists() && text("以后再说").click(), sleep(200), text("跳过广告").exists() && text("跳过广告").click(), sleep(200), text("下次").exists() && text("下次").click(), sleep(1e3); } }); }, getNode(path) { var tp, path = path.split("."); let node = this.nodes; for (tp of path) if (null === (node = node[tp] || null)) break; if (!node) { node = conf.nodes.all; for (let tp of path) if (null === (node = node[tp] || null)) break; } return node; }, isRecommend() { return null !== descContains("推荐").descEndsWith("按钮").descContains("已选中").visibleToUser().findOnce() || null !== descContains("精选").descEndsWith("按钮").descContains("已选中").visibleToUser().findOnce(); }, IsVideo() { var node = douyin.getNode("video.like"); return null !== node && null !== id(node.id).visibleToUser().findOnce() || null !== className("android.widget.LinearLayout").descContains("点赞").descEndsWith("按钮").visibleToUser().findOnce(); }, IsVideoDelay(ms) { return null !== className("android.widget.LinearLayout").descContains("点赞").descEndsWith("按钮").visibleToUser().findOne(ms); }, skipVideo() { return !this.IsVideo() && (utility.toast("跳过非视频或图集作品!"), sleep(500), engine.slide(), !0); }, IsFollow() { return null !== className("android.widget.Button").desc("关注").visibleToUser().findOnce(); }, execFollow() { var con = className("android.widget.Button").desc("关注").visibleToUser().findOnce(); return !!con && (utility.toast("执行关注"), con.click(), !0); }, sikpFollow() { return !this.IsFollow() && (utility.toast("跳过已关注用户"), sleep(500), engine.slide(), !0); }, IsLike() { return null !== className("android.widget.LinearLayout").descStartsWith("已点赞").descEndsWith("按钮").visibleToUser().findOnce(); }, sikpLike() { return !!this.IsLike() && (utility.toast("跳过已点赞视频"), sleep(500), engine.slide(), !0); }, 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]), (0 <= desc.indexOf("w") || 0 <= desc.indexOf("万")) && (num *= 1e4); } catch (e) { num = 0; } return num; }, IsAd() { return null !== textContains("广告").visibleToUser().findOnce(); }, sikpAp() { return !!this.IsAd() && (utility.toast("跳过忽略广告"), sleep(500), engine.slide(), !0); }, IsCommerce() { try { if (null !== textEndsWith("限时秒杀").visibleToUser().findOnce()) return !0; if (null !== textEndsWith("优惠团购").visibleToUser().findOnce()) return !0; } catch (e) { } return !1; }, sikpCommerce() { return !!this.IsCommerce() && (utility.toast("跳过商业视频!"), sleep(500), engine.slide(), !0); }, watchVideo(startTime, watchTime) { startTime = engine.getUnix() - startTime; 0 < (watchTime -= startTime = 60 < startTime ? 60 : startTime) ? (engine.sleep(watchTime), utility.toast("继续观看视频" + watchTime + "秒")) : 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 0 < num; }, 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(3e3); if (null === editText && (sleep(1e3), editText = className("android.widget.EditText").visibleToUser().findOne(2e3)), null === editText) utility.toast("没有识别到评论框"), sleep(500); else { isLike && (utility.toast("执行评论点赞"), sleep(1e3), (commentZanBtns = descStartsWith("赞").descEndsWith("未选中").visibleToUser().find()).forEach(el => { (el.clickable() ? el : el.parent()).click(), engine.sleepMs(500, 1e3); })); var hsLen = hs.length; if (!isComment || hsLen < 1) utility.toast("不执行评论"), sleep(500); else if (utility.toast("准备发表评论"), editText.click()) { if (sleep(1e3), setText(hs[random(0, hsLen - 1)]), engine.sleepMs(1e3, 3e3), pltp && null !== desc("插入图片").visibleToUser().findOne(3e3)) { desc("插入图片").visibleToUser().findOne().click() || utility.toast("没有成功点击到发布图片按钮"), sleep(2e3); let listBox = id("com.ss.android.ugc.aweme:id/content_container").visibleToUser().findOne(2e3); if (0 == (listBox = listBox.find(id("com.ss.android.ugc.aweme:id/root_view"))).length) return void alert("没有图片!", "手机相册里请先准备好图片!"); listBox[random(0, listBox.length - 1)].click() || (utility.toast("图片点击失败!"), back()), engine.sleepMs(1e3, 2e3); } let sendBtn = className("android.widget.ImageView").visibleToUser().desc("发送").findOne(5e3); if (null === (sendBtn = (sendBtn = sendBtn || className("android.widget.TextView").visibleToUser().text("发送").findOne(5e3)) || text("发送").findOne(5e3))) utility.toast("没有获取到发送按钮"), sleep(1e3); else { if (sendBtn.clickable()) { if (!sendBtn.click()) return utility.toast("没有成功点击发送按钮"), sleep(1e3), void this.execClose(); } else if (!sendBtn.parent().click()) return utility.toast("没有成功点击parent发送按钮"), sleep(1e3), void this.execClose(); utility.toast("评论完成"), null !== text("我也发一张").visibleToUser().findOne(5e3) && this.execBack(), engine.sleepMs(2e3, 5e3); } } else utility.toast("没有成功点击评论框"), sleep(500); } this.execClose(); } } catch (e) { console.log(e), utility.toast("评论操作失败"), sleep(500), this.execClose(); } }, isHome() { return null !== id(this.getNode("user.homeMark").id).visibleToUser().findOne(1e4); }, previewHome() { var head = id(this.getNode("index.headimg").id).visibleToUser().findOnce(); null !== head && head.click() && (utility.toast("访问用户首页"), this.isHome() ? (engine.sleep(2, 5), 1 == random(1, 3) && (engine.slide(), engine.sleep(2, 5))) : console.log("打开用户首页失败"), this.execBackOnce()); }, previewHomeTc() { let yhxb = 0; var head = id(this.getNode("index.headimg").id).visibleToUser().findOnce(); if (null !== head && head.click()) { if (utility.toast("访问用户首页"), this.isHome()) return engine.sleepMs(2e3, 3e3), null !== descStartsWith("男").visibleToUser().findOnce() && (yhxb = 1), null !== descStartsWith("女").visibleToUser().findOnce() && (yhxb = 2), this.execBackOnce(), yhxb; console.log("打开用户首页失败"), this.execBackOnce(); } }, getVideoDesc() { var vedioDesc = id(douyin.getNode("index.desc").id).visibleToUser().findOnce(); return null === vedioDesc ? "" : vedioDesc.text(); }, getVideoTitle() { var vedioTitle = id(douyin.getNode("index.title").id).visibleToUser().findOnce(); return null === vedioTitle ? "" : vedioTitle.text(); }, getVideoMark() { return this.getVideoDesc() + this.getVideoTitle(); } }; module.exports = douyin; }, 557: (module, __unused_webpack_exports, __webpack_require__) => { "undefined" == typeof __webpack_require__.g.ENV_CONF && (__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) { for (var xxy = [time], point = [], dx0 = { x: qx, y: qy }, dx1 = { x: random(qx - 100, qx + 100), y: random(qy, qy + 50) }, dx2 = { x: random(zx - 100, zx + 100), y: random(zy, zy + 50) }, dx3 = { x: zx, y: zy }, i = 0; i < 4; i++) eval("point.push(dx" + i + ")"); for (let i = 0; i < 1; i += .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) { return cx = 3 * (cp[1].x - cp[0].x), bx = 3 * (cp[2].x - cp[1].x) - cx, ax = cp[3].x - cp[0].x - cx - bx, cy = 3 * (cp[1].y - cp[0].y), by = 3 * (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 }).x = ax * tCubed + bx * tSquared + cx * t + cp[0].x, result.y = ay * tCubed + by * tSquared + cy * t + cp[0].y, result; }, shortSlide() { this.swipeEx(.5 * this.deviceWidth, .8 * this.deviceHeight, .5 * this.deviceWidth, .8 * this.deviceHeight - 500, 300); }, middleSlide() { this.swipeEx(.5 * this.deviceWidth, .8 * this.deviceHeight, .5 * this.deviceWidth, .5 * this.deviceHeight, 300); }, deSlide() { this.swipeEx(.5 * this.deviceWidth, .3 * this.deviceHeight, .5 * this.deviceWidth, this.deviceHeight, 300); }, bshortSlide() { this.swipeEx(.5 * this.deviceWidth, .8 * this.deviceHeight, .5 * this.deviceWidth, .8 * this.deviceHeight - 500, 300); }, slide() { this.swipeEx(.8 * this.deviceWidth, .7 * this.deviceHeight, .8 * this.deviceWidth, 0, random(300, 500)); }, fanslide() { this.swipeEx(.9 * this.deviceWidth, .5 * this.deviceHeight, .9 * this.deviceWidth, .01 * this.deviceHeight, 500); }, regionClick(region) { click(random(region[0], region[0] + region[2]), random(region[1], region[1] + region[3])); }, boundsClick(bounds) { var x = .2 * bounds.width(), y = .2 * bounds.height(); 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, max = 0; if (1 == argLen) min = arguments[0], max = arguments[0]; else { if (!(2 <= argLen)) return; min = arguments[0], max = arguments[1]; } min >= max ? sleep(min) : sleep(random(min, max)); }, sleep() { var argLen = arguments.length; let min = 0, max = 0; if (1 == argLen) min = arguments[0], max = arguments[0]; else { if (!(2 <= argLen)) return; min = arguments[0], max = arguments[1]; } min >= max ? sleep(1e3 * min) : sleep(1e3 * random(min, max)); }, getUnix() { return parseInt(Date.now() / 1e3); } }; }, 871: (module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__.g.floatyToastWindow === undefined && (__webpack_require__.g.floatyToastWindow = floaty.rawWindow(` `), floatyToastWindow.setTouchable(!1), floatyToastWindow.setSize(-1, -2), floatyToastWindow.setPosition(0, .75 * (ENV_CONF.screenHeight || device.height))), module.exports = { currentRunPackage(packageName) { return currentPackage() == conf.packageName || (app.launch(conf.packageName), !1); }, packageInfo(packageName) { try { return context.getPackageManager().getPackageInfo(packageName, 0); } catch (e) { return null; } }, checkVersion(packageName, versions) { var info = this.packageInfo(packageName); return this.isEmpty(info) ? (alert("请安装抖音!"), !1) : (packageName = app.getAppName(packageName), !!versions.includes(info.versionName) || (alert("不支持 " + packageName + "(" + info.versionName + "),请安装支持版本!"), !1)); }, isEmpty(value) { switch (typeof value) { case "undefined": return !0; case "string": if (0 == value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, "").length) return !0; break; case "boolean": if (value) break; return !0; case "number": if (0 === value || isNaN(value)) return !0; break; case "object": if (null !== value && 0 !== value.length) for (var i in value) return !1; return !0; } return !1; }, checkProbability(value, hdfs) { var temp = random(1, 99); return console.log(hdfs + "计算概率:" + temp + (temp < value ? "未超出" : "超出") + value), temp < value; }, strFindKeys(s, keys) { for (w of keys) if (-1 != s.indexOf(w)) 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; null != auto.windows[i]; i++) if (2 == auto.windows[i].type) return !0; return !1; }, inputHide() { for (; this.inputShow();) back(), sleep(1e3); }, 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(), index = str.indexOf(";"); return -1 === index ? "" : str.slice(0, index); } catch (error) { return ""; } }, compareVersion(version1, version2) { var arr1 = version1.split("."), arr2 = version2.split("."), length1 = arr1.length, length2 = arr2.length, minlength = Math.min(length1, length2); let i = 0; for (i; i < minlength; i++) { var a = parseInt(arr1[i]), 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 (0 != parseInt(arr1[j])) return 1; } else if (length1 < length2) for (let j = i; j < length2; j++) if (0 != parseInt(arr2[j])) return -1; return 0; } }; } }, __webpack_module_cache__ = {}; function __webpack_require__(moduleId) { var cachedModule = __webpack_module_cache__[moduleId]; return cachedModule !== undefined || (cachedModule = __webpack_module_cache__[moduleId] = { exports: {} }, __webpack_modules__[moduleId](cachedModule, cachedModule.exports, __webpack_require__)), cachedModule.exports; } (() => { __webpack_require__.g = function () { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")(); } catch (e) { if ("object" == typeof window) return window; } }(); })(); var __webpack_exports__ = {}; (() => { var conf = __webpack_require__(81), engine = __webpack_require__(557), utility = __webpack_require__(871), douyin = __webpack_require__(954), param = { yxgs: 30, czjg1: 3, czjg2: 6, gksj1: 5, gksj2: 10, fssl1: 0, fssl2: 1e4, tglv: !0, dz: 75, gz: 50, pl: 25, plhs: conf.commonts, pltp: !0 }, fshf = { init() { return !(!douyin.init() || ("undefined" != typeof ENV_CONF && Object.assign(param, ENV_CONF), 0 < param.pl && param.plhs.length < 1 ? (alert("请设置评论话术"), 1) : this.isUserList() ? (text("朋友推荐").visibleToUser().exists() && desc("关闭").visibleToUser().exists() && desc("关闭").click(), utility.toast("开始任务:粉丝回访"), engine.sleep(1), device.keepScreenDim(), douyin.popupAndClose(), 0) : (alert("请在 抖音消息界面—新朋友/粉丝 界面运行"), 1))); }, isUserList() { var tab = text("新朋友").visibleToUser().findOne(1e3), tabFs = id("com.ss.android.ugc.aweme:id/title_bar").text("粉丝").visibleToUser().findOne(1e3); return null !== tab || null !== tabFs; }, toUserList() { for (; ;) { if (engine.sleepMs(1e3, 1500), this.isUserList()) return; back(), sleep(1e3); } }, execUser() { if (engine.sleep(param.czjg1, param.czjg2), !douyin.isHome()) return utility.toast("进入主页失败"), !1; if (null !== text("私密账号").visibleToUser().findOnce() || null !== text("帐号已被封禁").visibleToUser().findOnce()) return utility.toast("私密或已封禁账号,跳过"), !1; if (param.tglv && null !== className("android.widget.TextView").visibleToUser().id(douyin.getNode("user.lanv").id).findOnce()) return utility.toast("蓝v用户,跳过!"), !1; let fansNum = 0; var fansNode = id(douyin.getNode("user.fansnum").id).visibleToUser().findOnce(); if (fansNode && (fansText = fansNode.text(), fansNum = parseFloat(fansText), 0 <= fansText.indexOf("w") || 0 <= fansText.indexOf("万")) && (fansNum *= 1e4), fansNum < param.fssl1 || fansNum > param.fssl2) return utility.toast("粉丝数量:" + fansNum + ",不在设定范围!"), !1; utility.checkProbability(param.gz, "关注") && (fansNode = id(douyin.getNode("user.followBtn").id).visibleToUser().findOnce()) && (utility.toast("执行关注!"), fansNode.click(), engine.sleepMs(500, 1e3), fansNode = desc("更多,已展开").visibleToUser().findOne(5e3)) && (fansNode.click(), engine.sleepMs(500, 1e3)); fansNode = textContains("作品").visibleToUser().findOnce(); let videoNum = 0; if (fansNode && (videoNum = parseInt(fansNode.text().replace(/[^0-9]/gi, ""))), console.log("作品数:" + videoNum), videoNum < 1 || isNaN(videoNum)) return utility.toast("该用户没有作品或非正常用户,跳过"), !1; var isZpdz = utility.checkProbability(param.dz, "点赞"), isPl = utility.checkProbability(param.pl, "评论"); if (isZpdz || isPl) { fansNode.selected() || (engine.boundsClick(fansNode.bounds()), engine.sleepMs(1e3, 2e3)), engine.shortSlide(); var fansNode = id("com.ss.android.ugc.aweme:id/container").visibleToUser().find(); if (!fansNode.empty()) { let video = fansNode[random(0, fansNode.length - 1)]; (video = video.findOne(className("android.view.View"))) && video.clickable() && video.click() && douyin.IsVideoDelay(5e3) ? (fansNode = random(param.gksj1, param.gksj2), utility.toast("观看视频:" + fansNode + " 秒"), engine.sleep(fansNode), isZpdz && douyin.execLike(), isPl && douyin.canComment() && douyin.sendComment(param.plhs, isPl, !1, param.pltp)) : utility.toast("打开视频失败!"); } } return !0; }, run() { if (this.init()) for (var runCount = 0, userContents = []; ;) { if (param.yxgs <= runCount) return device.cancelKeepingAwake(), void alert("恭喜任务完成!", "已回访用户数" + runCount); let listBox = className("androidx.recyclerview.widget.RecyclerView").visibleToUser().findOne(); if (!listBox) return void utility.toast("没有找到用户用户列表!"); var listBoxTop = listBox.bounds().top, childCount = listBox.childCount(); for (let i = 0; i < childCount; i++) { if (param.yxgs <= runCount) return device.cancelKeepingAwake(), void alert("恭喜任务完成!", "已回访用户数" + runCount); utility.toast("已执行用户 " + runCount + " 条,任务数" + param.yxgs + "."); var child = listBox.child(i); if (null != child && !(listBoxTop > child.bounds().top)) { var userInfo = child.findOne(className("android.widget.TextView")).text(); if (console.log(i, userInfo), !utility.isEmpty(userInfo) && !userContents.includes(userInfo)) { 20 <= userContents.length && userContents.shift(), userContents.push(userInfo); try { child.click(), this.execUser() && runCount++; } catch (error) { console.log("用户操作失败:", error); } if (engine.sleepMs(1e3, 2e3), this.toUserList(), !(listBox = className("androidx.recyclerview.widget.RecyclerView").visibleToUser().findOne())) return void utility.toast("没有找到用户用户列表!"); } } } if (!listBox.scrollForward()) break; console.log("============翻页==========="), engine.sleepMs(2e3, 3e3); } } }; try { fshf.run(); } catch (error) { utility.error(conf.packageName, error); } finally { engine.exit(); } })(); })();