查看: 816|回复: 3

某东某宝双十一autoJS代码!-更新至2021.10.27

[复制链接]
发表于 2022-10-27 10:21 | 显示全部楼层 |阅读模式
非法程序、 2022-10-27 10:21 816 3 显示全部楼层
免责声明
本分享,只是分享代码,若原作者有联系方式等违背本版的问题,均与我无关!
原作者可能在代码中加入了自己的链接,请审慎鉴别原作者app,避免上当受骗
作者:一颗小星星、CZJ2369、未知等人。
链接:自己找



重要说明

请不要使用python等一切已做好exe的脚本做618活动。
AutoJS最多让你没有收益,你只要关闭AutoJS,还能继续活动,还能获得积分。
用脚本的话,大概率会提示“活动火爆”,直接导致你本次活动再也无法获得积分。
这也是我为何一直坚持(尽管Github有更方便好用的脚本)分享AutoJS的原因。

若提示一堆英文代码,请检查是否开启无障碍和悬浮球。
若在运行过程中发现bug,请等待更新。或想办法手动一部分任务继续。

→→→某宝似乎加强了检测,如果看到获得100金币、请关闭无障碍和AutoJS手动吧~


更新

--------------
20221027-
之前帖子不知道为何审核没过,好几个作者的,自己试吧。。。

本文作者的选择:IQOO NEO5-某东(一颗小星星)、某宝(未知一)。

全部: 全部.zip (20.09 KB, 下载次数: 26)
京东
  1. /**
  2. * JD221111
  3. *
  4. * Author: czj
  5. * Versions: 1.0.3
  6. * Github: https://czj2369
  7. */
  8. // 任务序号
  9. var TASK_ID = 0;
  10. const appPackageName = "com.jingdong.app.mall";
  11. // 干扰选项
  12. const INTERFERE_TASK_LIST = ['预约抽红包', '立即抽奖', '继续环游', '恭喜获得奖励']
  13. // 忽略任务
  14. const IGNORE_TASK_LIST = ['授权信息', '确认授权', '下单再得'];
  15. const BACK_LIST = ['获得8000金币', '获得7000金币', '获得4000金币', '获得3000金币'];
  16. // 判断停留时间
  17. var JUDGE_TIME = 0;
  18. // 定时器
  19. var interval;
  20. // 任务进行中标记
  21. var task_process = true;
  22. // 是否为品牌墙任务
  23. var is_pp = false;
  24. // 是否领取奖励
  25. var is_get_reward = false;
  26. init();
  27. function init() {
  28.     console.log("项目地址:https://czj2369");
  29.     console.log("音量上键结束脚本运行");
  30.     console.log("如果程序无法自动进入活动页,请手动进入!")
  31.     console.log("如果程序太久没有动静(半分钟内),请结束脚本之后,重新启动脚本!")
  32.     // 子线程监听音量上键按下
  33.     threads.start(function () {
  34.         events.setKeyInterceptionEnabled("volume_up", true);
  35.         //启用按键监听
  36.         events.observeKey();
  37.         //监听音量上键按下
  38.         events.onKeyDown("volume_up", function (event) {
  39.             console.log("脚本退出!")
  40.             exit();
  41.         });
  42.     });
  43.     // 子线程开启计时
  44.     threads.start(function () {
  45.         if (interval == null) {
  46.             // 开启计时器,进行卡顿计时
  47.             // 启动定时器前,将计数器归为0
  48.             JUDGE_TIME = 0;
  49.             console.log("开启定时器");
  50.             interval = setInterval(function () {
  51.                 JUDGE_TIME = JUDGE_TIME + 1;
  52.                 //console.log("停留时间计时:", JUDGE_TIME);
  53.                 recoverApp();
  54.             }, 1000);
  55.         }
  56.     });

  57.     console.log("当前手机分辨率", device.width, device.height)
  58.     // 设置分辨率
  59.     setScreenMetrics(1090, 1920);
  60.     console.log("设置手机脚本分辨率", 1090, 1920)
  61.     auto.waitFor();
  62.     auto.setMode("normal");

  63.     console.show();
  64.     // 启动京东
  65.     app.launch(appPackageName);

  66.     // 启动任务
  67.     while (true) {
  68.         task_process = clikcFinish();
  69.         enterActivity();
  70.         while (task_process) {
  71.             execTask();
  72.         }
  73.     }

  74. }

  75. /**
  76. * 进入活动界面
  77. */
  78. function enterActivity() {
  79.     if (desc("浮层活动").exists() && text("购物车").exists()) {
  80.         const rect = desc("浮层活动").findOne().bounds();
  81.         click(rect.centerX(), rect.centerY());
  82.         sleep(500)
  83.         click(rect.centerX(), rect.centerY());
  84.         // 计时器重置
  85.         JUDGE_TIME = 0;
  86.     }
  87.     if (textContains("距离下次抽到分红").exists() && !text("做任务 赚金币").exists()) {
  88.         console.log("点击做任务")
  89.         clickCenterXY(855, 1893, 1035, 1920);
  90.         sleep(2000);
  91.         clickCenterXY(855, 1893, 1035, 1920);
  92.         // 计时器重置
  93.         JUDGE_TIME = 0;
  94.     }
  95. }

  96. /**
  97. *
  98. * @returns 点击去完成
  99. */
  100. function clikcFinish() {

  101.     for (var i = 0; i < INTERFERE_TASK_LIST.length; i++) {
  102.         if (text(INTERFERE_TASK_LIST[i]).exists()) {
  103.             back();
  104.             sleep(1000);
  105.             break;
  106.         }
  107.     }

  108.     if (textContains("去打卡").exists()) {
  109.         const daka = textContains("去打卡").findOne().bounds();
  110.         click(daka.centerX(), daka.centerY());
  111.     }


  112.     if (text("当前进度:10/10").exists() && !is_get_reward) {
  113.         clickCenterXY(516, 648, 606, 684);
  114.         clickCenterXY(705, 648, 792, 684);
  115.         clickCenterXY(891, 648, 981, 684);
  116.         is_get_reward = true;
  117.     }

  118.     const button = text("去完成").find()[TASK_ID];
  119.     if (button != undefined) {
  120.         const rect = button.bounds()
  121.         const parentButton = button.parent();
  122.         for (var i = 0; i < parentButton.childCount(); i++) {
  123.             var b = parentButton.children()[i].bounds();
  124.             if (rect.centerX() == b.centerX() && rect.centerY() == b.centerY()) {
  125.                 const info = parentButton.children()[i - 1];
  126.                 console.log("当前任务:", info.children()[1].text());
  127.                 if (info.children()[1].text().indexOf("浏览5个品牌墙店铺") >= 0) {
  128.                     is_pp = true;
  129.                 }

  130.             }
  131.         }
  132.         //sleep(2000);
  133.         if (click(rect.centerX(), rect.centerY())) {
  134.             console.log("点击去完成");
  135.             // 计时器重置
  136.             JUDGE_TIME = 0;
  137.             sleep(3000);
  138.             return true;
  139.         }
  140.     }
  141.     return false;
  142. }

  143. /**
  144. * 执行任务
  145. *
  146. * @returns
  147. */
  148. function execTask() {
  149.     // 判断任务序号是否需要自增
  150.     judgeAddTaskId();

  151.     // 滑动任务
  152.     swipeTask();

  153.     // 浏览商品任务
  154.     viewProduct();

  155.     // 加购任务
  156.     addCarTask();

  157.     // 种草城任务
  158.     viewBrankTask();

  159.     // 浏览品牌商店任务
  160.     viewBrankShopTask();

  161. }

  162. /**
  163. * 判断任务序号是否需要自增
  164. */
  165. function judgeAddTaskId() {
  166.     for (var j = 0; j < IGNORE_TASK_LIST.length; j++) {
  167.         if (textContains(IGNORE_TASK_LIST[j]).exists()) {
  168.             TASK_ID++;
  169.             if (TASK_ID >= 3) {
  170.                 TASK_ID = 0;
  171.             }
  172.             console.log("任务序号自增:", TASK_ID)
  173.             back();
  174.             sleep(1000);
  175.             // 计时器重置
  176.             JUDGE_TIME = 0;
  177.             task_process = false;
  178.             break;
  179.         }
  180.     }
  181. }

  182. /**
  183. * 滑动任务
  184. */
  185. function swipeTask() {
  186.     if (textContains("滑动浏览").exists() && !text("去完成").exists()) {
  187.         if (swipe(971, 1610, 989, 1135, 300)) {
  188.             // 计时器重置
  189.             JUDGE_TIME = 0;
  190.             for (var i = 0; i < BACK_LIST.length; i++) {
  191.                 if (text(BACK_LIST[i]).exists()) {
  192.                     isReturn = true;
  193.                     back();
  194.                     task_process = false;
  195.                     // 计时器重置
  196.                     JUDGE_TIME = 0;
  197.                     sleep(2000);
  198.                     break;
  199.                 }
  200.             }
  201.         }
  202.     }
  203. }

  204. /**
  205. * 浏览商品任务
  206. */
  207. function viewProduct() {
  208.     if (text("当前页点击浏览4个商品领金币5000金币").exists()) {
  209.         console.log("浏览4个商品任务");
  210.         const list = textContains("¥").find();
  211.         const ret = list[0].bounds();
  212.         if (click(ret.centerX(), ret.centerY())) {
  213.             sleep(2000);
  214.             while (text("购物车").exists()) {
  215.                 sleep(2000);
  216.                 back();
  217.                 break;
  218.             }
  219.             sleep(2000);
  220.         }
  221.         back();
  222.         // 计时器重置
  223.         JUDGE_TIME = 0;
  224.         task_process = false;
  225.         sleep(2000);
  226.     }
  227. }

  228. /**
  229. * 加购任务
  230. */
  231. function addCarTask() {
  232.     if (text("当前页浏览加购4个商品领4000金币").exists()) {
  233.         console.log("浏览4个商品任务");
  234.         if (clickCenterXY(315, 1098, 501, 1182)) {
  235.             sleep(2000);
  236.             while (text("购物车").exists()) {
  237.                 sleep(2000);
  238.                 back();
  239.                 break;
  240.             }
  241.             sleep(2000);
  242.         }
  243.         back();
  244.         // 计时器重置
  245.         JUDGE_TIME = 0;
  246.         task_process = false;
  247.         sleep(2000);
  248.     }
  249. }

  250. /**
  251. * 浏览品牌商店任务
  252. */
  253. function viewBrankShopTask() {
  254.     if (is_pp) {
  255.         clickCenterXY(63, 867, 240, 957);
  256.         sleep(2000);
  257.         back();
  258.         sleep(2000);
  259.         clickCenterXY(324, 867, 498, 957);
  260.         sleep(2000);
  261.         back();
  262.         sleep(2000);
  263.         clickCenterXY(582, 867, 756, 957);
  264.         sleep(2000);
  265.         back();
  266.         sleep(2000);
  267.         clickCenterXY(840, 867, 1017, 957);
  268.         sleep(2000);
  269.         back();
  270.         sleep(2000);
  271.         clickCenterXY(63, 1062, 240, 1152);
  272.         is_pp = false;
  273.         // 计时器重置
  274.         JUDGE_TIME = 0;
  275.         task_process = false;
  276.     }
  277. }

  278. /**
  279. * 种草城任务
  280. */
  281. function viewBrankTask() {
  282.     if (text("品牌种草城").exists()) {
  283.         var i = 0;
  284.         while (i <= 4) {
  285.             if (clickCenterXY(540, 1746, 1029, 1920)) {
  286.                 sleep(2000);
  287.                 back();
  288.                 i++;
  289.                 sleep(2000);
  290.             }
  291.             if (i == 5) {
  292.                 back();
  293.                 // 计时器重置
  294.                 JUDGE_TIME = 0;
  295.                 task_process = false;
  296.             }
  297.         }
  298.     }
  299. }

  300. /**
  301. * 点击控件中点
  302. *
  303. * [url=home.php?mod=space&uid=952169]@Param[/url] {*} uiName
  304. * @param {*} type
  305. * @param {*} index
  306. * @returns
  307. */
  308. function clickCenter(uiName, type, index) {
  309.     let type = type || 'text';
  310.     let index = index || 0;
  311.     try {
  312.         const bounds = type == "desc" ? desc(uiName).find()[index].bounds() : text(uiName).find()[index].bounds();
  313.     } catch (error) {
  314.         return false;
  315.     }
  316.     console.log("点击坐标:", bounds.centerX(), bounds.centerY());
  317.     // 计时器重置
  318.     JUDGE_TIME = 0;
  319.     return click(bounds.centerX(), bounds.centerY());
  320. }

  321. /**
  322. * 根据坐标直接点击
  323. * @param {*} bounds
  324. * @returns
  325. */
  326. function clickCenterXY(x1, y1, x2, y2) {
  327.     // 计时器重置
  328.     JUDGE_TIME = 0;
  329.     return click((x1 + x2) / 2, (y1 + y2) / 2);
  330. }

  331. /**
  332. * 自动判断程序是否卡顿,恢复方法
  333. * 判断依据:1.不在活动界面 2.停留某个界面长达15s
  334. */
  335. function recoverApp() {
  336.     if (JUDGE_TIME > 15) {
  337.         if (back()) {
  338.             sleep(2000);
  339.             task_process = false;
  340.             // 计时器重置
  341.             JUDGE_TIME = 0;
  342.             app.launch(appPackageName);
  343.             console.log("停留某个页面超过15s,自动返回,重置定时器。");
  344.             console.log("当前任务序号:", TASK_ID)
  345.             return true;
  346.         }
  347.     }
  348. }
  349. /**
  350. * JD221111
  351. *
  352. * Author: czj
  353. * Versions: 1.0.3
  354. * Github: https://czj2369
  355. */
复制代码
淘宝:
  1. /**
  2. * TB221111
  3. *
  4. * Author: czj
  5. * Versions: 1.0.0
  6. * Github: https://czj2369
  7. */
  8. // 任务序号
  9. var TASK_ID = 0;
  10. const appPackageName = "com.taobao.taobao";
  11. // 忽略任务
  12. const IGNORE_TASK_LIST = ['邀请成功最高得', '支付宝', '淘宝乐园', '芭芭'];
  13. const BACK_LIST = ['任务完成', '任务已经全部完成啦', '下单可获得额外喵果'];
  14. // 判断停留时间
  15. var JUDGE_TIME = 0;
  16. // 定时器
  17. var interval;
  18. // 任务进行中标记
  19. var task_process = true;
  20. init();
  21. function init() {
  22.     console.log("项目地址:https://czj2369");
  23.     console.log("音量上键结束脚本运行");
  24.     console.log("如果程序无法自动进入活动页,请手动进入!")
  25.     console.log("如果程序太久没有动静(半分钟内),请结束脚本之后,重新启动脚本!")
  26.     // 子线程监听音量上键按下
  27.     threads.start(function () {
  28.         events.setKeyInterceptionEnabled("volume_up", true);
  29.         //启用按键监听
  30.         events.observeKey();
  31.         //监听音量上键按下
  32.         events.onKeyDown("volume_up", function (event) {
  33.             console.log("脚本退出!")
  34.             exit();
  35.         });
  36.     });
  37.     // 子线程开启计时
  38.     threads.start(function () {
  39.         if (interval == null) {
  40.             // 开启计时器,进行卡顿计时
  41.             // 启动定时器前,将计数器归为0
  42.             JUDGE_TIME = 0;
  43.             console.log("开启定时器");
  44.             interval = setInterval(function () {
  45.                 JUDGE_TIME = JUDGE_TIME + 1;
  46.                 //console.log("停留时间计时:", JUDGE_TIME);
  47.                 recoverApp();
  48.             }, 1000);
  49.         }
  50.     });

  51.     console.log("当前手机分辨率", device.width, device.height)
  52.     // 设置分辨率
  53.     setScreenMetrics(1090, 1920);
  54.     console.log("设置手机脚本分辨率", 1090, 1920)
  55.     auto.waitFor();
  56.     auto.setMode("normal");

  57.     console.show();
  58.     // 启动淘宝
  59.     app.launch(appPackageName);

  60.     // 启动任务
  61.     while (true) {
  62.         task_process = clikcFinish();
  63.         enterActivity();
  64.         while (task_process) {
  65.             execTask();
  66.         }
  67.     }

  68. }

  69. /**
  70. * 进入活动界面
  71. */
  72. function enterActivity() {
  73.     if (desc("我的淘宝").exists() && desc("购物车").exists()) {
  74.         desc("我的淘宝").findOne().click();
  75.         // 计时器重置
  76.         JUDGE_TIME = 0;
  77.     }

  78.     if (desc("瓜分10亿").exists()) {
  79.         desc("瓜分10亿").findOne().click();
  80.         // 计时器重置
  81.         JUDGE_TIME = 0;
  82.     }

  83.     if (textContains("天猫双十一 喵喵爱糖果,瓜分十亿红包").exists()) {
  84.         console.log("点击做任务")
  85.         text("去赚能量").findOne().click();
  86.         sleep(2000);
  87.         // 计时器重置
  88.         JUDGE_TIME = 0;
  89.     }
  90. }

  91. /**
  92. *
  93. * @returns 点击去完成
  94. */
  95. function clikcFinish() {
  96.     const button = text("去完成").find()[TASK_ID];
  97.     if (button != undefined) {
  98.         const parentButton = button.parent();
  99.         var taskName = parentButton.children()[0].children()[0].text();
  100.         for (var i = 0; i < IGNORE_TASK_LIST.length; i++) {
  101.             if (taskName.indexOf(IGNORE_TASK_LIST[i]) >= 0) {
  102.                 TASK_ID++;
  103.                 console.log("忽略当前任务:", taskName);
  104.                 console.log("任务序号自增", TASK_ID);
  105.                 return false;
  106.             }
  107.         }
  108.         console.log("当前任务:", taskName);
  109.         //sleep(2000);
  110.         if (button.click()) {
  111.             console.log("点击去完成");
  112.             // 计时器重置
  113.             JUDGE_TIME = 0;
  114.             sleep(3000);
  115.             return true;
  116.         }
  117.     }
  118.     return false;
  119. }

  120. /**
  121. * 执行任务
  122. *
  123. * @returns
  124. */
  125. function execTask() {
  126.     // 判断任务序号是否需要自增
  127.     judgeAddTaskId();

  128.     // 双十一喵果互动
  129.     interactionMG();

  130.     // 浏览任务
  131.     viewTask();
  132. }

  133. /**
  134. * 判断任务序号是否需要自增
  135. */
  136. function judgeAddTaskId() {
  137.     if (text("浏览得奖励").exists()) {
  138.         // 计时器重置
  139.         JUDGE_TIME = 0;
  140.     }
  141. }

  142. /**
  143. * 浏览任务
  144. */
  145. function viewTask() {
  146.     for (var i = 0; i < BACK_LIST.length; i++) {
  147.         if (text(BACK_LIST[i]).exists() || desc(BACK_LIST[i]).exists() || id("2542212460").exists()) {
  148.             back();
  149.             sleep(2000);
  150.             // 计时器重置
  151.             JUDGE_TIME = 0;
  152.             console.log("浏览完成,返回");
  153.             task_process = false;
  154.             break;
  155.         }
  156.     }
  157. }

  158. /**
  159. * 双十一喵果互动
  160. */
  161. function interactionMG() {
  162.     if (text("双十一喵果互动").exists()) {
  163.         text("允许").findOne().click();
  164.         // 计时器重置
  165.         JUDGE_TIME = 0;
  166.         task_process = false;
  167.     }
  168. }

  169. /**
  170. * 点击控件中点
  171. *
  172. * @param {*} uiName
  173. * @param {*} type
  174. * @param {*} index
  175. * @returns
  176. */
  177. function clickCenter(uiName, type, index) {
  178.     let type = type || 'text';
  179.     let index = index || 0;
  180.     try {
  181.         const bounds = type == "desc" ? desc(uiName).find()[index].bounds() : text(uiName).find()[index].bounds();
  182.     } catch (error) {
  183.         return false;
  184.     }
  185.     console.log("点击坐标:", bounds.centerX(), bounds.centerY());
  186.     // 计时器重置
  187.     JUDGE_TIME = 0;
  188.     return click(bounds.centerX(), bounds.centerY());
  189. }

  190. /**
  191. * 根据坐标直接点击
  192. * @param {*} bounds
  193. * @returns
  194. */
  195. function clickCenterXY(x1, y1, x2, y2) {
  196.     // 计时器重置
  197.     JUDGE_TIME = 0;
  198.     return click((x1 + x2) / 2, (y1 + y2) / 2);
  199. }

  200. /**
  201. * 自动判断程序是否卡顿,恢复方法
  202. * 判断依据:1.不在活动界面 2.停留某个界面长达15s
  203. */
  204. function recoverApp() {
  205.     if (JUDGE_TIME > 25) {
  206.         if (back()) {
  207.             sleep(2000);
  208.             task_process = false;
  209.             // 计时器重置
  210.             JUDGE_TIME = 0;
  211.             app.launch(appPackageName);
  212.             log("停留某个页面超过25s,自动返回,重置定时器。");
  213.             console.log("当前任务序号:", TASK_ID)
  214.             return true;
  215.         }
  216.     }
  217. }
  218. /**
  219. * TB221111
  220. *
  221. * Author: czj
  222. * Versions: 1.0.1
  223. * Github: https://czj2369
  224. */
复制代码


发表于 2022-10-27 15:48 | 显示全部楼层
灾难 2022-10-27 15:48 显示全部楼层
此帖日后必成大器!
回复

使用道具 举报

发表于 2022-10-27 16:55 | 显示全部楼层
3267769925 2022-10-27 16:55 显示全部楼层
感谢楼主,好人一生平安
回复

使用道具 举报

发表于 2022-10-27 21:14 | 显示全部楼层
18568200888 2022-10-27 21:14 显示全部楼层
怎么用啊啊啊啊啊 a

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表 发新帖

快速回复 返回顶部 返回列表