├── README.md └── zsq_JS ├── QQ截图20220706160238.png ├── bbz.js ├── datibao.js ├── dinds.js ├── hsyz.js ├── kgjd.js └── xydt.js /README.md: -------------------------------------------------------------------------------- 1 | # qinlongjs 2 | 青龙脚本,仅供交流,有兴趣可加入群组 https://t.me/zsq_ql 3 | -------------------------------------------------------------------------------- /zsq_JS/QQ截图20220706160238.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sofm13/qinlongjs/7383f45393c7a60ceebe89f6a9964521f9c2cf55/zsq_JS/QQ截图20220706160238.png -------------------------------------------------------------------------------- /zsq_JS/bbz.js: -------------------------------------------------------------------------------- 1 | const { unescape, escape } = require("querystring"); 2 | var request = require('request'); 3 | 4 | /** 5 | * 步步宝 app (链接带邀请) 感谢您走我的邀请链接,谢谢,谢谢,谢谢 6 | * 下载地址: 步步宝,走路就能领红包~http://bububao.yichengw.cn/?id=542635 7 | * 脚本地址:https://raw.githubusercontent.com/sofm13/qinlongjs/master/zsq_JS/bbz.js 8 | * 转载请留信息 9 | * 10 | * cron 5/25/50 8-20 * * * sofm13_qinlongjs_master/bbz.js 11 | * 由于主页金币有限,正常一小时跑四五次即可,每天大约一块,七天后可手动提取一元,在后面需要等满足提现金额才行提现 12 | * 13 | * 5-7 完成 签到 ,喝水,答题,领取主页金币,领取主页金币(主要建议两分钟跑一次) 任务 14 | * 5-9 完成 抽奖,砸金蛋,睡觉,刮卡 15 | * ========= 青龙 ========= 16 | * 变量格式: export bububao='tokenstr1 @ tokenstr2' 多个账号用 @分割 17 | * 18 | * tokenstr : 关键词 bububao.duoshoutuan.com ,headers中的一个参数 19 | * 20 | * 还是不会的请百度或者群里求助: https://t.me/zsq_ql, https://t.me/zsq_sofm13 联系群主 @sofm_13 或Q群978963762来一起交流啊 21 | */ 22 | const $ = new Env("步步宝"); 23 | const notify = $.isNode() ? require("./sendNotify") : ""; 24 | const Notify = 1; //0为关闭通知,1为打开通知,默认为1 25 | const debug = 0; //0为关闭调试,1为打开调试,默认为0 26 | ////////////////////// 27 | let ckStr = process.env.bububao; 28 | //let ckStr = ""; 29 | let cyh_dataArr = []; 30 | let msg = ""; 31 | let ck = ""; 32 | const taskList = { 33 | "water": 13 34 | } 35 | ///////////////////////////////////////////////////////// 36 | 37 | async function tips(ckArr) { 38 | console.log(`\n版本: 0.4 -- 22/5/3`); 39 | // console.log(`\n 脚本已恢复正常状态,请及时更新! `); 40 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 41 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 42 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 43 | 44 | console.log( 45 | `\n================================================\n脚本执行 - 北京时间(UTC+8): ${new Date( 46 | new Date().getTime() + 47 | new Date().getTimezoneOffset() * 60 * 1000 + 48 | 8 * 60 * 60 * 1000 49 | ).toLocaleString()} \n================================================\n` 50 | ); 51 | 52 | await wyy(); 53 | 54 | console.log( 55 | `\n=================== 共找到 ${ckArr.length} 个账号 ===================` 56 | ); 57 | debugLog(`【debug】 这是你的账号数组:\n ${ckArr}`); 58 | } 59 | 60 | !(async () => { 61 | let ckArr = await getCks(ckStr, "bububao"); 62 | 63 | await tips(ckArr); 64 | 65 | for (let index = 0; index < ckArr.length; index++) { 66 | let num = index + 1; 67 | console.log(`\n========= 开始【第 ${num} 个账号】=========\n`); 68 | 69 | ck = ckArr[index].split("&"); 70 | if (debug) { 71 | console.log(`\n 【debug】 这是你第 ${num} 账号信息:\n ${ck}\n`); 72 | } 73 | 74 | await start(); 75 | } 76 | await SendMsg(msg); 77 | 78 | })() 79 | .catch((e) => $.logErr(e)) 80 | .finally(() => $.done()); 81 | 82 | async function start() { 83 | 84 | var nowDate = new Date(); 85 | console.log("开始 用户信息状态"); 86 | await userInfo(); 87 | await $.wait(2 * 1000); 88 | 89 | if (nowDate.getHours() == 8) { 90 | console.log("8点开始 打卡"); 91 | await dk_click(); 92 | await $.wait(2 * 1000); 93 | } 94 | else { 95 | console.log("非8点"); 96 | } 97 | 98 | console.log("开始 检查主页"); 99 | await home(); 100 | await $.wait(2 * 1000); 101 | 102 | console.log("开始 签到状态"); 103 | await signin_info(); 104 | await $.wait(2 * 1000); 105 | 106 | console.log("开始 检查喝水状态"); 107 | await water_info(); 108 | await $.wait(2 * 1000); 109 | 110 | console.log("开始 答题"); 111 | await cyInfo(); 112 | await $.wait(2 * 1000); 113 | 114 | console.log("开始 抽奖"); 115 | await lucky(); 116 | await $.wait(2 * 1000); 117 | 118 | console.log("开始 刮卡"); 119 | await guainfo(); 120 | await $.wait(2 * 1000); 121 | 122 | console.log("开始 砸金蛋"); 123 | await jindan(); 124 | await $.wait(2 * 1000); 125 | 126 | 127 | console.log("开始 阅读"); 128 | for (let index = 0; index < 5; index++) { 129 | await news(3 * 1000, 1, `阅读*${index}`); 130 | await $.wait(2 * 1000); 131 | } 132 | 133 | console.log("开始 看视频"); 134 | for (let index = 0; index < 5; index++) { 135 | await news(3 * 1000, 2, `看视频*${index}`); 136 | await $.wait(2 * 1000); 137 | } 138 | 139 | console.log("开始 小程序刮卡"); 140 | await weguaInfo(); 141 | await $.wait(2 * 1000); 142 | 143 | // console.log("开始 检查任务状态"); 144 | // var taskall = await taskInfo(); 145 | 146 | // for (const [key, value] of Object.entries(taskList)) { 147 | // await taskDone(3 * 1000, taskall.first[key], value, taskall.first[`${key}_title`], taskall.first[`${key}_jinbi`]); 148 | // } 149 | 150 | } 151 | 152 | const initRequestHeaders = function () { 153 | return { 154 | 'tokenstr': ck[0], 155 | 'Host': 'bububao.duoshoutuan.com', 156 | 'Content-Type': 'application/x-www-form-urlencoded', 157 | 'version': 20 158 | }; 159 | }; 160 | 161 | /** 162 | * 签到状态 post 163 | */ 164 | async function signin_info(timeout = 3 * 1000) { 165 | 166 | let url = { 167 | url: `https://bububao.duoshoutuan.com/user/sign_html`, 168 | headers: initRequestHeaders(), 169 | // body: '', 170 | }; 171 | 172 | let result = await httpPost(url, `签到状态`, timeout); 173 | if (result.is_sign_day == 0) { 174 | console.log(`没有签到,去签到!`); 175 | await signin(); 176 | } else { 177 | console.log(`今天已经签到了,明天再来吧!`); 178 | } 179 | } 180 | 181 | /** 182 | * 签到 post 183 | */ 184 | async function signin(timeout = 3 * 1000) { 185 | 186 | let url = { 187 | url: `https://bububao.duoshoutuan.com/user/sign`, 188 | headers: initRequestHeaders(), 189 | }; 190 | 191 | let result = await httpPost(url, `签到`, timeout); 192 | if (result.code == 0) { 193 | console.log(`\n 签到:成功 🎉 签到获得 金币 ${result.jinbi} \n`); 194 | 195 | msg += `\n 签到:成功 🎉 签到获得 金币 ${result.jinbi} \n` 196 | } else { 197 | console.log(`\n 签到: ${result.msg} \n `); 198 | } 199 | } 200 | 201 | 202 | /** 203 | * 喝水信息 204 | */ 205 | async function water_info(timeout = 3 * 1000) { 206 | 207 | let url = { 208 | url: `https://bububao.duoshoutuan.com/mini/water_info`, 209 | headers: initRequestHeaders(), 210 | }; 211 | 212 | let result = await httpPost(url, `喝水信息`, timeout); 213 | if (result.code == 1) { 214 | console.log( 215 | `\n 已喝水: ${result.day_num} 次 ` 216 | ); 217 | if (result.day_num < 7 && result.next_time == 0) { 218 | $.log("开始喝水") 219 | await water_click(timeout, result.day_num) 220 | } 221 | else if (result.day_num < 7 && result.next_time > 0) { 222 | $.log(`时间还差${result.next_time}秒`) 223 | } 224 | else { 225 | $.log(`已喝水满7次`) 226 | } 227 | 228 | } else { 229 | console.log(`\n 喝水: ${result.msg} \n `); 230 | } 231 | } 232 | 233 | /** 234 | * 喝水 235 | */ 236 | async function water_click(timeout = 3 * 1000, day_num) { 237 | 238 | let url = { 239 | url: `https://bububao.duoshoutuan.com/mini/water_click`, 240 | headers: initRequestHeaders(), 241 | body: `day_num=${day_num}` 242 | }; 243 | 244 | let result = await httpPost(url, `喝水`, timeout); 245 | if (result.code == 1) { 246 | console.log( 247 | `\n 喝水: ${result.msg} 喝水获得 金币 ${result.jinbi} ` 248 | ); 249 | msg += `\n 喝水:成功 ${result.msg} 🎉 喝水获得 金币 ${result.jinbi}` 250 | } else { 251 | console.log(`\n 喝水: ${result.msg} \n `); 252 | } 253 | } 254 | 255 | //用户信息 256 | async function userInfo(timeout = 3 * 1000) { 257 | 258 | let url = { 259 | url: `https://bububao.duoshoutuan.com/user/profile`, 260 | headers: initRequestHeaders(), 261 | }; 262 | 263 | let result = await httpPost(url, `用户信息`, timeout); 264 | console.log( 265 | `\n 用户名:${result.username} 🎉 金币:${result.jinbi} , 余额:${result.money} \n` 266 | ); 267 | } 268 | 269 | //主页 270 | async function home(timeout = 3 * 1000) { 271 | 272 | let url = { 273 | url: `https://bububao.duoshoutuan.com/user/home`, 274 | headers: initRequestHeaders(), 275 | }; 276 | 277 | let result = await httpPost(url, `主页`, timeout); 278 | console.log( 279 | `\n 主页金币:${result.right_jinbi} 🎉 \n` 280 | ); 281 | if (result.right_jinbi > 0) { 282 | await homejin(); 283 | } 284 | } 285 | 286 | //主页金币 287 | async function homejin(timeout = 3 * 1000) { 288 | 289 | let url = { 290 | url: `https://bububao.duoshoutuan.com/user/homejin`, 291 | headers: initRequestHeaders(), 292 | }; 293 | 294 | let result = await httpPost(url, `领取主页金币`, timeout); 295 | if (result.code == 1) { 296 | console.log( 297 | `\n 主页金币: ${result.msg} 主页金币获得 金币 ${result.jinbi} ` 298 | ); 299 | msg += `\n 主页金币 ${result.msg} 🎉 主页金币获得 金币 ${result.jinbi}` 300 | } else { 301 | console.log(`\n 主页金币: ${result.msg} \n `); 302 | } 303 | } 304 | 305 | /** 306 | * 任务信息 307 | */ 308 | async function taskInfo(timeout = 3 * 1000) { 309 | 310 | let url = { 311 | url: `https://bububao.duoshoutuan.com/user/renwu`, 312 | headers: initRequestHeaders(), 313 | }; 314 | 315 | let result = await httpPost(url, `任务信息`, timeout); 316 | return new Promise(resolve => { 317 | resolve(result); 318 | });; 319 | } 320 | 321 | //完成任务 322 | async function taskDone(timeout = 3 * 1000, taskStatus, taskid, taskName, jinbi) { 323 | 324 | console.log(taskStatus + taskid + taskName + jinbi); 325 | if (taskStatus == 0) { 326 | $.log(`${taskName} 未完成,无法领取金币${jinbi}`) 327 | return; 328 | } 329 | else if (taskStatus == 2) { 330 | $.log(`${taskName} 金币已领取无需完成`) 331 | return; 332 | } 333 | let url = { 334 | url: `https://bububao.duoshoutuan.com/user/done_renwu`, 335 | headers: initRequestHeaders(), 336 | body: `taskid=${taskid}` 337 | }; 338 | 339 | $.log(`${taskName} 已完成,已领取金币${jinbi}`) 340 | msg += `${taskName} 已完成,已领取金币${jinbi}`; 341 | } 342 | 343 | 344 | //答题信息 345 | async function cyInfo(timeout = 3 * 1000) { 346 | 347 | let url = { 348 | url: `https://bububao.duoshoutuan.com/mini/cy_info`, 349 | headers: initRequestHeaders(), 350 | }; 351 | 352 | let result = await httpPost(url, `答题信息`, timeout); 353 | if (result.day_num > 0) { 354 | 355 | $.log(`答题${result.day_num}/30 每次答一题`) 356 | if (result.is_sp == 1) { 357 | await cy_sp(timeout, result.day_num); 358 | await $.wait(1 * 1000); 359 | } 360 | await cy_click(timeout, result.cy_id, result.site) 361 | } 362 | else { 363 | $.log("答题次数已达上限") 364 | } 365 | } 366 | 367 | //答题看视频 368 | async function cy_sp(timeout = 3 * 1000, day_num) { 369 | 370 | let url = { 371 | url: `https://bububao.duoshoutuan.com/mini/cy_sp`, 372 | headers: initRequestHeaders(), 373 | body: `day_num=${day_num}` 374 | }; 375 | 376 | let result = await httpPost(url, `答题看视频`, timeout); 377 | if (result.code == 1) { 378 | console.log( 379 | `\n 答题看视频: ${result.msg} ` 380 | ); 381 | } else { 382 | console.log(`\n 答题: ${result.msg} \n `); 383 | } 384 | } 385 | 386 | //答题 387 | async function cy_click(timeout = 3 * 1000, cy_id, site) { 388 | 389 | let url = { 390 | url: `https://bububao.duoshoutuan.com/mini/cy_click`, 391 | headers: initRequestHeaders(), 392 | body: `cy_id=${cy_id}&site=${site}` 393 | }; 394 | 395 | let result = await httpPost(url, `答题`, timeout); 396 | if (result.code == 1) { 397 | console.log( 398 | `\n 答题: ${result.msg} 答题获得 金币 ${result.jinbi} ` 399 | ); 400 | msg += `\n 答题:成功 ${result.msg} 🎉 答题获得 金币 ${result.jinbi}` 401 | } else { 402 | console.log(`\n 答题: ${result.msg} \n `); 403 | } 404 | } 405 | 406 | //抽奖信息 407 | async function lucky(timeout = 3 * 1000) { 408 | 409 | let url = { 410 | url: `https://bububao.duoshoutuan.com/user/lucky`, 411 | headers: initRequestHeaders(), 412 | }; 413 | 414 | let result = await httpPost(url, `抽奖信息`, timeout); 415 | if (result.lucky_num > 0) { 416 | 417 | $.log(`抽奖${result.lucky_count}/100 每次抽5次`) 418 | for (let i = 0; i < 5; i++) { 419 | await lucky_click(timeout); 420 | await $.wait(1 * 1000); 421 | } 422 | 423 | } 424 | else { 425 | $.log("抽奖次数已达上限") 426 | } 427 | } 428 | 429 | //抽奖 430 | async function lucky_click(timeout = 3 * 1000) { 431 | 432 | let url = { 433 | url: `https://bububao.duoshoutuan.com/user/lucky_click`, 434 | headers: initRequestHeaders(), 435 | }; 436 | 437 | let result = await httpPost(url, `抽奖`, timeout); 438 | if (result.code == 1) { 439 | console.log( 440 | `\n 抽奖: ${result.msg} 抽奖获得 金币 ${result.jinbi} ` 441 | ); 442 | msg += `\n 抽奖:成功 ${result.msg} 🎉 抽奖获得 金币 ${result.jinbi}` 443 | } else { 444 | console.log(`\n 抽奖: ${result.msg} \n `); 445 | } 446 | } 447 | 448 | //刮卡信息 449 | async function guainfo(timeout = 3 * 1000) { 450 | 451 | let url = { 452 | url: `https://bububao.duoshoutuan.com/gua/gualist`, 453 | headers: initRequestHeaders(), 454 | }; 455 | 456 | let result = await httpPost(url, `刮卡信息`, timeout); 457 | if (result.ka > 0) { 458 | 459 | $.log(`刮卡${result.ka}/15 每次刮1次`) 460 | var max = Math.max.apply(Math, result.list.map(item => { return item.jine })) 461 | await gua(timeout, result.list.find(x => x.jine == max).id); 462 | } 463 | else { 464 | $.log("刮卡次数已达上限") 465 | } 466 | } 467 | 468 | //刮卡 469 | async function gua(timeout = 3 * 1000, gid) { 470 | 471 | let url = { 472 | url: `https://bububao.duoshoutuan.com/gua/guadet`, 473 | headers: initRequestHeaders(), 474 | body: `gid=${gid}` 475 | }; 476 | 477 | let result = await httpPost(url, `刮卡`, timeout); 478 | url = { 479 | url: `https://bububao.duoshoutuan.com/gua/guapost`, 480 | headers: initRequestHeaders(), 481 | body: `gid=${gid}&sign=${result.sign}&glid=${result.glid}` 482 | }; 483 | 484 | await $.wait(1 * 1000); 485 | result = await httpPost(url, `刮卡`, timeout); 486 | if (result.suc == 1) { 487 | console.log( 488 | `\n 刮卡获得 金币 ${result.jf} ` 489 | ); 490 | msg += `\n 刮卡获得 金币 ${result.jf} 🎉 ` 491 | } else { 492 | console.log(`\n 刮卡: ${result.msg} \n `); 493 | } 494 | } 495 | 496 | //砸金蛋 497 | async function jindan(timeout = 3 * 1000) { 498 | 499 | let url = { 500 | url: `https://bububao.duoshoutuan.com/user/jindan_click`, 501 | headers: initRequestHeaders(), 502 | }; 503 | 504 | let result = await httpPost(url, `砸金蛋`, timeout); 505 | if (result.code == 1) { 506 | 507 | console.log( 508 | `\n 砸金蛋 ${result.msg} ` 509 | ); 510 | 511 | await $.wait(1 * 1000); 512 | await jindan_click(timeout, result.taskid, result.nonce_str) 513 | 514 | } else { 515 | console.log(`\n 砸金蛋: ${result.msg} \n `); 516 | } 517 | } 518 | 519 | //砸金蛋金币 520 | async function jindan_click(timeout = 3 * 1000, taskid, str) { 521 | 522 | var date = Math.round(new Date().getTime()); 523 | let url = { 524 | url: `https://bububao.duoshoutuan.com/user/jindan_finish`, 525 | headers: initRequestHeaders(), 526 | body: `taskid=${taskid}&nonce_str=${str}&clicktime=${date}&donetime=${date + 2}` 527 | }; 528 | 529 | let result = await httpPost(url, `砸金蛋得金币`, timeout); 530 | await $.wait(2 * 1000); 531 | 532 | url = { 533 | url: `https://bububao.duoshoutuan.com/user/jindan_jinbi`, 534 | headers: initRequestHeaders(), 535 | body: `taskid=${taskid}&nonce_str=${str}` 536 | }; 537 | 538 | result = await httpPost(url, `砸金蛋得金币`, timeout); 539 | if (result.code == 1) { 540 | console.log( 541 | `\n 砸金蛋获得 金币 ${result.jinbi} 🎉` 542 | ); 543 | msg += `\n 砸金蛋获得 金币 ${result.jinbi} 🎉 ` 544 | } else { 545 | console.log(`\n 砸金蛋: ${result.msg} \n `); 546 | } 547 | } 548 | 549 | //睡觉 550 | async function sleep(timeout = 3 * 1000) { 551 | 552 | let url = { 553 | url: `https://bububao.duoshoutuan.com/mini/sleep_info`, 554 | headers: initRequestHeaders(), 555 | }; 556 | 557 | let result = await httpPost(url, `睡觉信息`, timeout); 558 | if (result.code == 1) { 559 | 560 | console.log( 561 | `\n 睡觉信息 是否睡觉:${result.is_sleep == 0 ? "是" : "否"} ` 562 | ); 563 | 564 | if (result.is_sleep == 0) { 565 | url = { 566 | url: `https://bububao.duoshoutuan.com/user/sleep_start`, 567 | headers: initRequestHeaders(), 568 | }; 569 | 570 | result = await httpPost(url, `开始睡觉`, timeout); 571 | $.log("开始睡觉") 572 | } 573 | else { 574 | 575 | url = { 576 | url: `https://bububao.duoshoutuan.com/user/sleep_end`, 577 | headers: initRequestHeaders(), 578 | }; 579 | 580 | result = await httpPost(url, `结束睡觉`, timeout); 581 | if (result.code == 1) { 582 | console.log( 583 | `\n 结束睡觉 获得 金币 ${result.jinbi} 🎉` 584 | ); 585 | msg += `\n 结束睡觉 获得 金币 ${result.jinbi} 🎉 ` 586 | } else { 587 | console.log(`\n 结束睡觉: ${result.msg} \n `); 588 | } 589 | } 590 | 591 | } else { 592 | console.log(`\n 睡觉信息: ${result.msg} \n `); 593 | } 594 | } 595 | 596 | //打卡 597 | async function dk_click(timeout = 3 * 1000) { 598 | let url = { 599 | url: `https://bububao.duoshoutuan.com/mini/dk_click`, 600 | headers: initRequestHeaders(), 601 | body: `now_time=2` 602 | }; 603 | 604 | let result = await httpPost(url, `打卡`, timeout); 605 | if (result.code == 1) { 606 | console.log( 607 | `\n 打卡获得 金币 ${result.jinbi} 🎉` 608 | ); 609 | msg += `\n 打卡获得 金币 ${result.jinbi} 🎉 ` 610 | } else { 611 | console.log(`\n 打卡: ${result.msg} \n `); 612 | } 613 | } 614 | 615 | //阅读 616 | async function news(timeout = 3 * 1000, type, tip) { 617 | let url = { 618 | url: `https://bububao.duoshoutuan.com/user/news`, 619 | headers: initRequestHeaders(), 620 | body: `type_class=${type}` 621 | }; 622 | 623 | let result = await httpPost(url, tip, timeout); 624 | if (result.code == 1) { 625 | var str = result.nonce_str; 626 | url = { 627 | url: `https://bububao.duoshoutuan.com/user/donenews`, 628 | headers: initRequestHeaders(), 629 | body: `nonce_str=${str}` 630 | }; 631 | 632 | await $.wait(20 * 1000) 633 | result = await httpPost(url, tip, timeout); 634 | if (result.code == 1) { 635 | console.log( 636 | `\n 模拟${tip}获得 金币 ${result.jinbi} 🎉` 637 | ); 638 | msg += `\n 模拟${tip}获得 金币 ${result.jinbi} 🎉 ` 639 | } else { 640 | console.log(`\n 模拟${tip}: ${result.msg} \n `); 641 | } 642 | 643 | } else { 644 | console.log(`\n ${str}信息: ${result.msg} \n `); 645 | } 646 | } 647 | 648 | //小程序刮卡 649 | async function weguaInfo(timeout = 3 * 1000) { 650 | 651 | let url = { 652 | url: `https://bububao.duoshoutuan.com/weapp/mini_clicks`, 653 | headers: initRequestHeaders(), 654 | body: `mini_id=30` 655 | }; 656 | 657 | let result = await httpPost(url, `小程序信息`, timeout); 658 | let path = result.mini_path; 659 | var postJson = path.substring(path.indexOf('{'), path.indexOf('}')); 660 | var uid = JSON.parse(`${postJson}}`).uid; 661 | var nonce_str = JSON.parse(`${postJson}}`).nonce_str; 662 | 663 | url = { 664 | url: `https://bububao.duoshoutuan.com/gua/welist`, 665 | headers: { 666 | 'Host': 'bububao.duoshoutuan.com', 667 | 'Content-Type': 'application/json', 668 | }, 669 | body: JSON.stringify({ 670 | "nonce_str": nonce_str, 671 | "uid": uid, 672 | "mini_id": "30", 673 | "j_st": 1, 674 | "ver": "1.3.5", 675 | "v3": randomDid(12), 676 | "toto": randomDid(32), 677 | "token": "" 678 | }) 679 | }; 680 | 681 | result = await httpPost(url, `小程序刮卡信息`, timeout); 682 | if (result.ka > 0) { 683 | 684 | $.log(`刮卡${result.ka}/15 每次刮1次`) 685 | var max = Math.max.apply(Math, result.list.map(item => { return item.jine })) 686 | await wegua(3 * 1000, result.list.find(x => x.jine == max && x.is_ad == 0).id, uid); 687 | } 688 | else { 689 | $.log("刮卡次数已达上限") 690 | } 691 | 692 | } 693 | 694 | 695 | //刮卡 696 | async function wegua(timeout = 3 * 1000, gid, uid) { 697 | var addJson = `,"ver":"1.3.5","v3":"232521exhghx","toto":"263d8494554fb3402b7edd22578597fb","token":""`; 698 | 699 | var urlJosn = `{"uid":"${uid}","gid":"${gid}"${addJson}}`; 700 | console.log(urlJosn) 701 | let url = { 702 | url: `https://bububao.duoshoutuan.com/gua/wedet`, 703 | headers: { 704 | 'Host': 'bububao.duoshoutuan.com', 705 | 'Content-Type': 'application/json', 706 | }, 707 | body: JSON.stringify({ 708 | "gid": gid, 709 | "uid": uid, 710 | "ver": "1.3.5", 711 | "v3": randomDid(12), 712 | "toto": randomDid(32), 713 | "token": "" 714 | }) 715 | }; 716 | 717 | let result = await httpPost(url, `小程序刮卡`, timeout); 718 | var postBody = JSON.stringify({ 719 | "glid": result.glid, 720 | "gid": gid, 721 | "uid": uid, 722 | "sign": result.sign, 723 | "ver": "1.3.5", 724 | "v3": randomDid(12), 725 | "toto": randomDid(32), 726 | "token": "" 727 | }); 728 | url = { 729 | url: `https://bububao.duoshoutuan.com/gua/gua_post`, 730 | headers: { 731 | 'Host': 'bububao.duoshoutuan.com', 732 | 'Content-Type': 'application/json', 733 | }, 734 | body: postBody 735 | }; 736 | 737 | await $.wait(1 * 1000); 738 | result = await httpPost(url, `刮卡`, timeout); 739 | if (result.suc == 1) { 740 | console.log( 741 | `\n 刮卡获得 金币 ${result.jf} ` 742 | ); 743 | 744 | url = { 745 | url: `https://bububao.duoshoutuan.com/gua/fanbei`, 746 | headers: { 747 | 'Host': 'bububao.duoshoutuan.com', 748 | 'Content-Type': 'application/json', 749 | }, 750 | body: postBody 751 | }; 752 | 753 | await $.wait(1 * 1000); 754 | result = await httpPost(url, `刮卡翻倍`, timeout); 755 | console.log( 756 | `\n 刮卡翻倍获得 金币 ${result.fb_jinbi} ` 757 | ); 758 | 759 | msg += `\n 刮卡获得 金币 ${result.fb_jinbif} 🎉 ` 760 | 761 | } else { 762 | console.log(`\n 刮卡: ${result.msg} \n `); 763 | } 764 | } 765 | 766 | /** 767 | * 提现 httpPost 768 | * https://t-api.chyouhui.com/auth/withdraw/apply 769 | */ 770 | async function cash(timeout = 3 * 1000) { 771 | 772 | let url = { 773 | url: `https://t-api.chyouhui.com/auth/withdraw/apply`, 774 | headers: { 775 | 'androidToken': ck[0], 776 | 'Host': 't-api.chyouhui.com', 777 | }, 778 | body: JSON.stringify({ 779 | "amountId": 2, 780 | "payment": "ALIPAY" 781 | }), 782 | }; 783 | 784 | let result = await httpPost(url, `提现`, timeout); 785 | if (result.code == 0) { 786 | console.log(`\n 提现: ${result.message} 🎉 \n`); 787 | msg += `\n 提现: ${result.message} 🎉 \n` 788 | } else if (result.code == -1) { 789 | console.log(`\n 提现:${result.message} \n`); 790 | msg += `\n 提现: ${result.message} \n` 791 | } else { 792 | console.log(`\n 提现: 提现失败 ❌ ${result} \n `); 793 | } 794 | } 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | //#region 固定代码 819 | // ============================================变量检查============================================ \\ 820 | 821 | async function getCks(ck, str) { 822 | 823 | 824 | return new Promise((resolve, reject) => { 825 | 826 | let ckArr = [] 827 | if (ck) { 828 | if (ck.indexOf("@") != -1) { 829 | 830 | ck.split("@").forEach((item) => { 831 | ckArr.push(item); 832 | }); 833 | } else { 834 | ckArr.push(ck); 835 | } 836 | resolve(ckArr) 837 | } else { 838 | console.log(`\n 【${$.name}】:未填写变量 ${str}`) 839 | } 840 | 841 | }) 842 | } 843 | 844 | // ============================================发送消息============================================ \\ 845 | 846 | async function SendMsg(message) { 847 | if (!message) return; 848 | 849 | if (Notify > 0) { 850 | if ($.isNode()) { 851 | var notify = require("./sendNotify"); 852 | await notify.sendNotify($.name, message); 853 | } else { 854 | $.msg(message); 855 | } 856 | } else { 857 | console.log(message); 858 | } 859 | } 860 | 861 | /** 862 | * 随机数生成 863 | */ 864 | 865 | function randomString(e) { 866 | e = e || 32; 867 | var t = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890", 868 | a = t.length, 869 | n = ""; 870 | 871 | for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a)); 872 | return n; 873 | } 874 | 875 | /** 876 | * 随机整数生成 877 | */ 878 | 879 | function randomDid(T = 32) { 880 | let p = "abcdef0123456789", 881 | C = p["length"], 882 | S = ''; 883 | 884 | for (i = 0; i < T; i++) { 885 | S += p["charAt"](Math["floor"](Math["random"]() * C)); 886 | } 887 | 888 | return S; 889 | } 890 | 891 | //每日网抑云 892 | function wyy(timeout = 3 * 1000) { 893 | return new Promise((resolve) => { 894 | let url = { 895 | url: `https://keai.icu/apiwyy/api` 896 | } 897 | $.get(url, async (err, resp, data) => { 898 | try { 899 | data = JSON.parse(data) 900 | console.log(`\n 【网抑云时间】: ${data.content} by--${data.music}`); 901 | 902 | } catch (e) { 903 | $.logErr(e, resp); 904 | } finally { 905 | resolve() 906 | } 907 | }, timeout) 908 | }) 909 | } 910 | // ============================================ get请求 ============================================ \\ 911 | async function httpGet(getUrlObject, tip, timeout = 3 * 1000) { 912 | return new Promise((resolve) => { 913 | let url = getUrlObject; 914 | if (!tip) { 915 | let tmp = arguments.callee.toString(); 916 | let re = /function\s*(\w*)/i; 917 | let matches = re.exec(tmp); 918 | tip = matches[1]; 919 | } 920 | if (debug) { 921 | console.log( 922 | `\n 【debug】=============== 这是 ${tip} 请求 url ===============` 923 | ); 924 | console.log(url); 925 | } 926 | 927 | $.get( 928 | url, 929 | async (error, response, _data) => { 930 | try { 931 | if (debug) { 932 | console.log( 933 | `\n\n 【debug】===============这是 ${tip} 返回data==============` 934 | ); 935 | console.log(_data); 936 | console.log(`======`); 937 | console.log(JSON.parse(_data)); 938 | } 939 | let result = JSON.parse(_data); 940 | resolve(result); 941 | } catch (e) { 942 | console.log(e); 943 | } finally { 944 | resolve(); 945 | } 946 | }, 947 | timeout 948 | ); 949 | }); 950 | } 951 | 952 | // ============================================ post请求 ============================================ \\ 953 | async function httpPost(postUrlObject, tip, timeout = 3 * 1000) { 954 | return new Promise((resolve) => { 955 | let url = postUrlObject; 956 | if (!tip) { 957 | let tmp = arguments.callee.toString(); 958 | let re = /function\s*(\w*)/i; 959 | let matches = re.exec(tmp); 960 | tip = matches[1]; 961 | } 962 | if (debug) { 963 | console.log( 964 | `\n 【debug】=============== 这是 ${tip} 请求 url ===============` 965 | ); 966 | console.log(url); 967 | } 968 | 969 | $.post( 970 | url, 971 | async (error, response, data) => { 972 | try { 973 | if (debug) { 974 | console.log( 975 | `\n\n 【debug】===============这是 ${tip} 返回data==============` 976 | ); 977 | console.log(data); 978 | console.log(`======`); 979 | console.log(JSON.parse(data)); 980 | } 981 | let result = JSON.parse(data); 982 | resolve(result); 983 | } catch (e) { 984 | console.log(e); 985 | } finally { 986 | resolve(); 987 | } 988 | }, 989 | timeout 990 | ); 991 | }); 992 | } 993 | 994 | async function requestPost(postUrlObject, tip, timeout = 3 * 1000) { 995 | return new Promise((resolve) => { 996 | var options = { 997 | 'method': 'POST', 998 | 'url': postUrlObject.url, 999 | 'headers': postUrlObject.headers, 1000 | body: postUrlObject.body 1001 | }; 1002 | if (debug) { 1003 | console.log( 1004 | `\n 【debug】=============== 这是 ${tip} 请求 url ===============` 1005 | ); 1006 | console.log(options); 1007 | } 1008 | request(options, function (error, response) { 1009 | if (error) throw new Error(error); 1010 | if (debug) { 1011 | console.log( 1012 | `\n\n 【debug】===============这是 ${tip} 返回data==============` 1013 | ); 1014 | console.log(response.body); 1015 | console.log(`======`); 1016 | console.log(JSON.parse(response.body)); 1017 | } 1018 | let result = JSON.parse(response.body); 1019 | resolve(result); 1020 | }); 1021 | 1022 | 1023 | }); 1024 | } 1025 | 1026 | // ============================================ debug调试 ============================================ \\ 1027 | function debugLog(...args) { 1028 | if (debug) { 1029 | console.log(...args); 1030 | } 1031 | } 1032 | 1033 | //#endregion 1034 | 1035 | // prettier-ignore 1036 | function MD5Encrypt(a) { 1037 | function b(a, b) { 1038 | return a << b | a >>> 32 - b 1039 | } 1040 | 1041 | function c(a, b) { 1042 | var c, d, e, f, g; 1043 | return e = 2147483648 & a, f = 2147483648 & b, c = 1073741824 & a, d = 1073741824 & b, g = (1073741823 & a) + ( 1044 | 1073741823 & b), c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1045 | 1073741824 ^ g ^ e ^ f : g ^ e ^ f 1046 | } 1047 | 1048 | function d(a, b, c) { 1049 | return a & b | ~a & c 1050 | } 1051 | 1052 | function e(a, b, c) { 1053 | return a & c | b & ~c 1054 | } 1055 | 1056 | function f(a, b, c) { 1057 | return a ^ b ^ c 1058 | } 1059 | 1060 | function g(a, b, c) { 1061 | return b ^ (a | ~c) 1062 | } 1063 | 1064 | function h(a, e, f, g, h, i, j) { 1065 | return a = c(a, c(c(d(e, f, g), h), j)), c(b(a, i), e) 1066 | } 1067 | 1068 | function i(a, d, f, g, h, i, j) { 1069 | return a = c(a, c(c(e(d, f, g), h), j)), c(b(a, i), d) 1070 | } 1071 | 1072 | function j(a, d, e, g, h, i, j) { 1073 | return a = c(a, c(c(f(d, e, g), h), j)), c(b(a, i), d) 1074 | } 1075 | 1076 | function k(a, d, e, f, h, i, j) { 1077 | return a = c(a, c(c(g(d, e, f), h), j)), c(b(a, i), d) 1078 | } 1079 | 1080 | function l(a) { 1081 | for (var b, c = a.length, d = c + 8, e = (d - d % 64) / 64, f = 16 * (e + 1), g = new Array(f - 1), h = 0, i = 1082 | 0; c > i;) b = (i - i % 4) / 4, h = i % 4 * 8, g[b] = g[b] | a.charCodeAt(i) << h, i++; 1083 | return b = (i - i % 4) / 4, h = i % 4 * 8, g[b] = g[b] | 128 << h, g[f - 2] = c << 3, g[f - 1] = c >>> 29, g 1084 | } 1085 | 1086 | function m(a) { 1087 | var b, c, d = "", 1088 | e = ""; 1089 | for (c = 0; 3 >= c; c++) b = a >>> 8 * c & 255, e = "0" + b.toString(16), d += e.substr(e.length - 2, 2); 1090 | return d 1091 | } 1092 | 1093 | function n(a) { 1094 | a = a.replace(/\r\n/g, "\n"); 1095 | for (var b = "", c = 0; c < a.length; c++) { 1096 | var d = a.charCodeAt(c); 1097 | 128 > d ? b += String.fromCharCode(d) : d > 127 && 2048 > d ? (b += String.fromCharCode(d >> 6 | 192), b += 1098 | String.fromCharCode(63 & d | 128)) : (b += String.fromCharCode(d >> 12 | 224), b += String.fromCharCode( 1099 | d >> 6 & 63 | 128), b += String.fromCharCode(63 & d | 128)) 1100 | } 1101 | return b 1102 | } 1103 | var o, p, q, r, s, t, u, v, w, x = [], 1104 | y = 7, 1105 | z = 12, 1106 | A = 17, 1107 | B = 22, 1108 | C = 5, 1109 | D = 9, 1110 | E = 14, 1111 | F = 20, 1112 | G = 4, 1113 | H = 11, 1114 | I = 16, 1115 | J = 23, 1116 | K = 6, 1117 | L = 10, 1118 | M = 15, 1119 | N = 21; 1120 | for (a = n(a), x = l(a), t = 1732584193, u = 4023233417, v = 2562383102, w = 271733878, o = 0; o < x.length; o += 1121 | 16) p = t, q = u, r = v, s = w, t = h(t, u, v, w, x[o + 0], y, 3614090360), w = h(w, t, u, v, x[o + 1], z, 1122 | 3905402710), v = h(v, w, t, u, x[o + 2], A, 606105819), u = h(u, v, w, t, x[o + 3], B, 3250441966), t = h(t, 1123 | u, v, w, x[o + 4], y, 4118548399), w = h(w, t, u, v, x[o + 5], z, 1200080426), v = h(v, w, t, u, x[o + 6], 1124 | A, 2821735955), u = h(u, v, w, t, x[o + 7], B, 4249261313), t = h(t, u, v, w, x[o + 8], y, 1770035416), w = 1125 | h(w, t, u, v, x[o + 9], z, 2336552879), v = h(v, w, t, u, x[o + 10], A, 4294925233), u = h(u, v, w, t, x[o + 11], 1126 | B, 2304563134), t = h(t, u, v, w, x[o + 12], y, 1804603682), w = h(w, t, u, v, x[o + 13], z, 4254626195), v = 1127 | h(v, w, t, u, x[o + 14], A, 2792965006), u = h(u, v, w, t, x[o + 15], B, 1236535329), t = i(t, u, v, w, x[o + 1], 1128 | C, 4129170786), w = i(w, t, u, v, x[o + 6], D, 3225465664), v = i(v, w, t, u, x[o + 11], E, 643717713), u = 1129 | i(u, v, w, t, x[o + 0], F, 3921069994), t = i(t, u, v, w, x[o + 5], C, 3593408605), w = i(w, t, u, v, x[o + 10], 1130 | D, 38016083), v = i(v, w, t, u, x[o + 15], E, 3634488961), u = i(u, v, w, t, x[o + 4], F, 3889429448), t = 1131 | i(t, u, v, w, x[o + 9], C, 568446438), w = i(w, t, u, v, x[o + 14], D, 3275163606), v = i(v, w, t, u, x[o + 3], 1132 | E, 4107603335), u = i(u, v, w, t, x[o + 8], F, 1163531501), t = i(t, u, v, w, x[o + 13], C, 2850285829), w = 1133 | i(w, t, u, v, x[o + 2], D, 4243563512), v = i(v, w, t, u, x[o + 7], E, 1735328473), u = i(u, v, w, t, x[o + 12], 1134 | F, 2368359562), t = j(t, u, v, w, x[o + 5], G, 4294588738), w = j(w, t, u, v, x[o + 8], H, 2272392833), v = 1135 | j(v, w, t, u, x[o + 11], I, 1839030562), u = j(u, v, w, t, x[o + 14], J, 4259657740), t = j(t, u, v, w, x[o + 1], 1136 | G, 2763975236), w = j(w, t, u, v, x[o + 4], H, 1272893353), v = j(v, w, t, u, x[o + 7], I, 4139469664), u = 1137 | j(u, v, w, t, x[o + 10], J, 3200236656), t = j(t, u, v, w, x[o + 13], G, 681279174), w = j(w, t, u, v, x[o + 0], 1138 | H, 3936430074), v = j(v, w, t, u, x[o + 3], I, 3572445317), u = j(u, v, w, t, x[o + 6], J, 76029189), t = j( 1139 | t, u, v, w, x[o + 9], G, 3654602809), w = j(w, t, u, v, x[o + 12], H, 3873151461), v = j(v, w, t, u, x[o + 1140 | 15], I, 530742520), u = j(u, v, w, t, x[o + 2], J, 3299628645), t = k(t, u, v, w, x[o + 0], K, 4096336452), 1141 | w = k(w, t, u, v, x[o + 7], L, 1126891415), v = k(v, w, t, u, x[o + 14], M, 2878612391), u = k(u, v, w, t, x[o + 1142 | 5], N, 4237533241), t = k(t, u, v, w, x[o + 12], K, 1700485571), w = k(w, t, u, v, x[o + 3], L, 2399980690), 1143 | v = k(v, w, t, u, x[o + 10], M, 4293915773), u = k(u, v, w, t, x[o + 1], N, 2240044497), t = k(t, u, v, w, x[o + 1144 | 8], K, 1873313359), w = k(w, t, u, v, x[o + 15], L, 4264355552), v = k(v, w, t, u, x[o + 6], M, 2734768916), 1145 | u = k(u, v, w, t, x[o + 13], N, 1309151649), t = k(t, u, v, w, x[o + 4], K, 4149444226), w = k(w, t, u, v, x[o + 1146 | 11], L, 3174756917), v = k(v, w, t, u, x[o + 2], M, 718787259), u = k(u, v, w, t, x[o + 9], N, 3951481745), 1147 | t = c(t, p), u = c(u, q), v = c(v, r), w = c(w, s); 1148 | var O = m(t) + m(u) + m(v) + m(w); 1149 | return O.toLowerCase() 1150 | } 1151 | 1152 | function Env(t, e) { 1153 | "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); 1154 | class s { 1155 | constructor(t) { 1156 | this.env = t 1157 | } 1158 | send(t, e = "GET") { 1159 | t = "string" == typeof t ? { 1160 | url: t 1161 | } : t; 1162 | let s = this.get; 1163 | return "POST" === e && (s = this.post), new Promise((e, i) => { 1164 | s.call(this, t, (t, s, r) => { 1165 | t ? i(t) : e(s) 1166 | }) 1167 | }) 1168 | } 1169 | get(t) { 1170 | return this.send.call(this.env, t) 1171 | } 1172 | post(t) { 1173 | return this.send.call(this.env, t, "POST") 1174 | } 1175 | } 1176 | return new class { 1177 | constructor(t, e) { 1178 | this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], 1179 | this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date) 1180 | .getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) 1181 | } 1182 | isNode() { 1183 | return "undefined" != typeof module && !!module.exports 1184 | } 1185 | isQuanX() { 1186 | return "undefined" != typeof $task 1187 | } 1188 | isSurge() { 1189 | return "undefined" != typeof $httpClient && "undefined" == typeof $loon 1190 | } 1191 | isLoon() { 1192 | return "undefined" != typeof $loon 1193 | } 1194 | toObj(t, e = null) { 1195 | try { 1196 | return JSON.parse(t) 1197 | } catch { 1198 | return e 1199 | } 1200 | } 1201 | toStr(t, e = null) { 1202 | try { 1203 | return JSON.stringify(t) 1204 | } catch { 1205 | return e 1206 | } 1207 | } 1208 | getjson(t, e) { 1209 | let s = e; 1210 | const i = this.getdata(t); 1211 | if (i) try { 1212 | s = JSON.parse(this.getdata(t)) 1213 | } catch { } 1214 | return s 1215 | } 1216 | setjson(t, e) { 1217 | try { 1218 | return this.setdata(JSON.stringify(t), e) 1219 | } catch { 1220 | return !1 1221 | } 1222 | } 1223 | getScript(t) { 1224 | return new Promise(e => { 1225 | this.get({ 1226 | url: t 1227 | }, (t, s, i) => e(i)) 1228 | }) 1229 | } 1230 | runScript(t, e) { 1231 | return new Promise(s => { 1232 | let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); 1233 | i = i ? i.replace(/\n/g, "").trim() : i; 1234 | let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); 1235 | r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; 1236 | const [o, h] = i.split("@"), n = { 1237 | url: `http://${h}/v1/scripting/evaluate`, 1238 | body: { 1239 | script_text: t, 1240 | mock_type: "cron", 1241 | timeout: r 1242 | }, 1243 | headers: { 1244 | "X-Key": o, 1245 | Accept: "*/*" 1246 | } 1247 | }; 1248 | this.post(n, (t, e, i) => s(i)) 1249 | }).catch(t => this.logErr(t)) 1250 | } 1251 | loaddata() { 1252 | if (!this.isNode()) return {}; { 1253 | this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); 1254 | const t = this.path.resolve(this.dataFile), 1255 | e = this.path.resolve(process.cwd(), this.dataFile), 1256 | s = this.fs.existsSync(t), 1257 | i = !s && this.fs.existsSync(e); 1258 | if (!s && !i) return {}; { 1259 | const i = s ? t : e; 1260 | try { 1261 | return JSON.parse(this.fs.readFileSync(i)) 1262 | } catch (t) { 1263 | return {} 1264 | } 1265 | } 1266 | } 1267 | } 1268 | writedata() { 1269 | if (this.isNode()) { 1270 | this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); 1271 | const t = this.path.resolve(this.dataFile), 1272 | e = this.path.resolve(process.cwd(), this.dataFile), 1273 | s = this.fs.existsSync(t), 1274 | i = !s && this.fs.existsSync(e), 1275 | r = JSON.stringify(this.data); 1276 | s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) 1277 | } 1278 | } 1279 | lodash_get(t, e, s) { 1280 | const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); 1281 | let r = t; 1282 | for (const t of i) 1283 | if (r = Object(r)[t], void 0 === r) return s; 1284 | return r 1285 | } 1286 | lodash_set(t, e, s) { 1287 | return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice( 1288 | 0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 1289 | 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) 1290 | } 1291 | getdata(t) { 1292 | let e = this.getval(t); 1293 | if (/^@/.test(t)) { 1294 | const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; 1295 | if (r) try { 1296 | const t = JSON.parse(r); 1297 | e = t ? this.lodash_get(t, i, "") : e 1298 | } catch (t) { 1299 | e = "" 1300 | } 1301 | } 1302 | return e 1303 | } 1304 | setdata(t, e) { 1305 | let s = !1; 1306 | if (/^@/.test(e)) { 1307 | const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || 1308 | "{}" : "{}"; 1309 | try { 1310 | const e = JSON.parse(h); 1311 | this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) 1312 | } catch (e) { 1313 | const o = {}; 1314 | this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) 1315 | } 1316 | } else s = this.setval(t, e); 1317 | return s 1318 | } 1319 | getval(t) { 1320 | return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey( 1321 | t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || 1322 | null 1323 | } 1324 | setval(t, e) { 1325 | return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey( 1326 | t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), ! 1327 | 0) : this.data && this.data[e] || null 1328 | } 1329 | initGotEnv(t) { 1330 | this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : 1331 | require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && 1332 | (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && 1333 | (t.cookieJar = this.ckjar)) 1334 | } 1335 | get(t, e = (() => { })) { 1336 | t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || 1337 | this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign( 1338 | t.headers, { 1339 | "X-Surge-Skip-Scripting": !1 1340 | })), $httpClient.get(t, (t, s, i) => { 1341 | !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) 1342 | })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { 1343 | hints: !1 1344 | })), $task.fetch(t).then(t => { 1345 | const { 1346 | statusCode: s, 1347 | statusCode: i, 1348 | headers: r, 1349 | body: o 1350 | } = t; 1351 | e(null, { 1352 | status: s, 1353 | statusCode: i, 1354 | headers: r, 1355 | body: o 1356 | }, o) 1357 | }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { 1358 | try { 1359 | if (t.headers["set-cookie"]) { 1360 | const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); 1361 | s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar 1362 | } 1363 | } catch (t) { 1364 | this.logErr(t) 1365 | } 1366 | }).then(t => { 1367 | const { 1368 | statusCode: s, 1369 | statusCode: i, 1370 | headers: r, 1371 | body: o 1372 | } = t; 1373 | e(null, { 1374 | status: s, 1375 | statusCode: i, 1376 | headers: r, 1377 | body: o 1378 | }, o) 1379 | }, t => { 1380 | const { 1381 | message: s, 1382 | response: i 1383 | } = t; 1384 | e(s, i, i && i.body) 1385 | })) 1386 | } 1387 | post(t, e = (() => { })) { 1388 | if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = 1389 | "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this 1390 | .isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || 1391 | {}, Object.assign(t.headers, { 1392 | "X-Surge-Skip-Scripting": !1 1393 | })), $httpClient.post(t, (t, s, i) => { 1394 | !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) 1395 | }); 1396 | else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign( 1397 | t.opts, { 1398 | hints: !1 1399 | })), $task.fetch(t).then(t => { 1400 | const { 1401 | statusCode: s, 1402 | statusCode: i, 1403 | headers: r, 1404 | body: o 1405 | } = t; 1406 | e(null, { 1407 | status: s, 1408 | statusCode: i, 1409 | headers: r, 1410 | body: o 1411 | }, o) 1412 | }, t => e(t)); 1413 | else if (this.isNode()) { 1414 | this.initGotEnv(t); 1415 | const { 1416 | url: s, 1417 | ...i 1418 | } = t; 1419 | this.got.post(s, i).then(t => { 1420 | const { 1421 | statusCode: s, 1422 | statusCode: i, 1423 | headers: r, 1424 | body: o 1425 | } = t; 1426 | e(null, { 1427 | status: s, 1428 | statusCode: i, 1429 | headers: r, 1430 | body: o 1431 | }, o) 1432 | }, t => { 1433 | const { 1434 | message: s, 1435 | response: i 1436 | } = t; 1437 | e(s, i, i && i.body) 1438 | }) 1439 | } 1440 | } 1441 | time(t, e = null) { 1442 | const s = e ? new Date(e) : new Date; 1443 | let i = { 1444 | "M+": s.getMonth() + 1, 1445 | "d+": s.getDate(), 1446 | "H+": s.getHours(), 1447 | "m+": s.getMinutes(), 1448 | "s+": s.getSeconds(), 1449 | "q+": Math.floor((s.getMonth() + 3) / 3), 1450 | S: s.getMilliseconds() 1451 | }; 1452 | /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); 1453 | for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? 1454 | i[e] : ("00" + i[e]).substr(("" + i[e]).length))); 1455 | return t 1456 | } 1457 | msg(e = t, s = "", i = "", r) { 1458 | const o = t => { 1459 | if (!t) return t; 1460 | if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { 1461 | "open-url": t 1462 | } : this.isSurge() ? { 1463 | url: t 1464 | } : void 0; 1465 | if ("object" == typeof t) { 1466 | if (this.isLoon()) { 1467 | let e = t.openUrl || t.url || t["open-url"], 1468 | s = t.mediaUrl || t["media-url"]; 1469 | return { 1470 | openUrl: e, 1471 | mediaUrl: s 1472 | } 1473 | } 1474 | if (this.isQuanX()) { 1475 | let e = t["open-url"] || t.url || t.openUrl, 1476 | s = t["media-url"] || t.mediaUrl; 1477 | return { 1478 | "open-url": e, 1479 | "media-url": s 1480 | } 1481 | } 1482 | if (this.isSurge()) { 1483 | let e = t.url || t.openUrl || t["open-url"]; 1484 | return { 1485 | url: e 1486 | } 1487 | } 1488 | } 1489 | }; 1490 | if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && 1491 | $notify(e, s, i, o(r))), !this.isMuteLog) { 1492 | let t = ["", "==============📣系统通知📣=============="]; 1493 | t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat( 1494 | t) 1495 | } 1496 | } 1497 | log(...t) { 1498 | t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) 1499 | } 1500 | logErr(t, e) { 1501 | const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); 1502 | s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) 1503 | } 1504 | wait(t) { 1505 | return new Promise(e => setTimeout(e, t)) 1506 | } 1507 | done(t = {}) { 1508 | const e = (new Date).getTime(), 1509 | s = (e - this.startTime) / 1e3; 1510 | this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || 1511 | this.isLoon()) && $done(t) 1512 | } 1513 | }(t, e) 1514 | } -------------------------------------------------------------------------------- /zsq_JS/datibao.js: -------------------------------------------------------------------------------- 1 | const { unescape, escape } = require("querystring"); 2 | /** 3 | * 答题宝 app 进去领取金币2400填写邀请码95428044领取500金币,即可立马提现0.3,亲测隔天到账 4 | * 下载地址: https://wwn.lanzouj.com/ikkkM04l406b (没找到官网地址) 5 | * 转载请留信息 6 | * 7 | * cron 0-59/5 * * * * sofm13_qinlongjs_master/datibao.js 8 | * 由于主页金币两分钟刷一次,建议两分钟跑一次 9 | * 10 | * 5-10 完成 签到 ,答题,提现 任务 11 | * 12 | * ========= 青龙 ========= 13 | * 变量格式: export datibao='uid=?&userId=?&loginId=? @ uid=?&userId=?&loginId=?' 多个账号用 @分割 14 | * 15 | * 关键词 api.datibao.jialaiinfo.com ,body中的三个参数uid,userId,loginId 16 | * 17 | * 还是不会的请百度或者群里求助: https://t.me/zsq_ql, https://t.me/zsq_sofm13 联系群主 @sofm_13 或Q群978963762来一起交流啊 18 | */ 19 | const $ = new Env("答题宝"); 20 | const notify = $.isNode() ? require("./sendNotify") : ""; 21 | const Notify = 1; //0为关闭通知,1为打开通知,默认为1 22 | const debug = 0; //0为关闭调试,1为打开调试,默认为0 23 | ////////////////////// 24 | let ckStr = process.env.datibao; 25 | //let ckStr = ""; 26 | let cyh_dataArr = []; 27 | let msg = ""; 28 | let ck = ""; 29 | let ckProps = {}; 30 | const taskList = { 31 | "water": 13 32 | } 33 | ///////////////////////////////////////////////////////// 34 | 35 | async function tips(ckArr) { 36 | console.log(`\n版本: 0.4 -- 22/5/3`); 37 | // console.log(`\n 脚本已恢复正常状态,请及时更新! `); 38 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 39 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 40 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 41 | 42 | console.log( 43 | `\n================================================\n脚本执行 - 北京时间(UTC+8): ${new Date( 44 | new Date().getTime() + 45 | new Date().getTimezoneOffset() * 60 * 1000 + 46 | 8 * 60 * 60 * 1000 47 | ).toLocaleString()} \n================================================\n` 48 | ); 49 | 50 | await wyy(); 51 | 52 | console.log( 53 | `\n=================== 共找到 ${ckArr.length} 个账号 ===================` 54 | ); 55 | debugLog(`【debug】 这是你的账号数组:\n ${ckArr}`); 56 | } 57 | 58 | !(async () => { 59 | let ckArr = await getCks(ckStr, "bububao"); 60 | 61 | await tips(ckArr); 62 | 63 | for (let index = 0; index < ckArr.length; index++) { 64 | let num = index + 1; 65 | console.log(`\n========= 开始【第 ${num} 个账号】=========\n`); 66 | 67 | ck = ckArr[index]; 68 | ckProps = {}; 69 | ckProps = jsonUrl(ck); 70 | 71 | if (debug) { 72 | console.log(`\n 【debug】 这是你第 ${num} 账号信息:\n ${ck}\n`); 73 | } 74 | 75 | await start(); 76 | } 77 | 78 | })() 79 | .catch((e) => $.logErr(e)) 80 | .finally(() => $.done()); 81 | 82 | async function start() { 83 | 84 | console.log("开始 用户信息状态"); 85 | await userInfo(); 86 | await $.wait(2 * 1000); 87 | 88 | var nowDate = new Date(); 89 | console.log("8点05准时签到"); 90 | if (nowDate.getHours() == 8 && nowDate.getMinutes() == 5) { 91 | console.log("开始 签到"); 92 | await signin_info(); 93 | await $.wait(2 * 1000); 94 | } 95 | else { 96 | console.log("非8点05"); 97 | } 98 | 99 | console.log("开始 答题,每次答45题,建议5分钟一次"); 100 | for (let index = 0; index < 45; index++) { 101 | await practice(); 102 | await $.wait(5 * 1000); 103 | } 104 | 105 | console.log("20点05准时提现,推送通知"); 106 | if (nowDate.getHours() == 20 && nowDate.getMinutes() == 5) { 107 | await SendMsg(msg); 108 | await purchase(); 109 | await userInfo(); 110 | } 111 | } 112 | 113 | const initRequestHeaders = function () { 114 | return { 115 | 'Host': 'api.datibao.jialaiinfo.com', 116 | 'Content-Type': 'application/json', 117 | 'user-agent': 'okhttp/3.12.10' 118 | }; 119 | }; 120 | 121 | const querystr = function () { 122 | return `userId=${ckProps.userId}&loginId=${ckProps.loginId}`; 123 | }; 124 | 125 | function jsonUrl(env) { 126 | var result = {}; 127 | env.split("&").forEach(function (part) { 128 | var item = part.split("="); 129 | result[item[0]] = decodeURIComponent(item[1]); 130 | }); 131 | return result; 132 | } 133 | 134 | function defaultBody() { 135 | return JSON.stringify({ 136 | "requestTime": Math.round(new Date().getTime()), 137 | "proxy": false, 138 | "uid": ckProps.uid, 139 | "loginId": ckProps.loginId, 140 | "source": 0, 141 | "appVersionCode": 65, 142 | "userId": ckProps.userId, 143 | "platform": 0 144 | }); 145 | } 146 | //签到状态 post 147 | async function signin_info(timeout = 3 * 1000) { 148 | let url = { 149 | url: `https://api.datibao.jialaiinfo.com/datibao/sign/record?${querystr()}`, 150 | headers: initRequestHeaders(), 151 | body: defaultBody(), 152 | }; 153 | 154 | let result = await httpPost(url, `签到状态`, timeout); 155 | if (result.state == 0) { 156 | console.log(`没有签到,去签到!`); 157 | await signin(); 158 | } else { 159 | console.log(`今天已经签到了,明天再来吧!`); 160 | } 161 | } 162 | 163 | //签到 post 164 | async function signin(timeout = 3 * 1000) { 165 | 166 | let url = { 167 | url: `https://api.datibao.jialaiinfo.com/datibao/sign?${querystr()}`, 168 | headers: initRequestHeaders(), 169 | body: defaultBody(), 170 | }; 171 | 172 | let result = await httpPost(url, `签到`, timeout); 173 | console.log(`\n 签到:成功 🎉 签到获得 金币 ${result.signCredit} \n`); 174 | msg += `\n 签到:成功 🎉 签到获得 金币 ${result.signCredit} \n` 175 | 176 | } 177 | 178 | 179 | //用户信息 180 | async function userInfo(timeout = 3 * 1000) { 181 | 182 | let url = { 183 | url: `https://api.datibao.jialaiinfo.com/datibao/credit/summary?${querystr()}`, 184 | headers: initRequestHeaders(), 185 | body: defaultBody() 186 | }; 187 | 188 | let result = await httpPost(url, `用户信息`, timeout); 189 | console.log( 190 | `\n uid:${ckProps.userId} 🎉 金币:${result.userCreditSummary.remaining} \n` 191 | ); 192 | 193 | 194 | msg += `\n uid:${ckProps.userId} 🎉 金币:${result.userCreditSummary.remaining} \n` 195 | } 196 | 197 | //答题 198 | async function practice(timeout = 3 * 1000) { 199 | let url = { 200 | url: `https://api.datibao.jialaiinfo.com/datibao/practice/list?${querystr()}`, 201 | headers: initRequestHeaders(), 202 | body: JSON.stringify({ 203 | "requestTime": Math.round(new Date().getTime()), 204 | "trueIdList": trueId, 205 | "proxy": false, 206 | "uid": ckProps.uid, 207 | "loginId": ckProps.loginId, 208 | "source": 0, 209 | "appVersionCode": 65, 210 | "userId": ckProps.userId, 211 | "platform": 0, 212 | "type": 30, 213 | "size": 1, 214 | }), 215 | }; 216 | 217 | let result = await httpPost(url, `答题信息`, timeout); 218 | var trueId = [result.questionList[0].id]; 219 | 220 | url = { 221 | url: `https://api.datibao.jialaiinfo.com/datibao/sync/gold?${querystr()}`, 222 | headers: initRequestHeaders(), 223 | body: defaultBody(), 224 | }; 225 | 226 | result = await httpPost(url, `答题金币`, timeout); 227 | console.log(`\n 答题成功 🎉 答题获得 金币 ${result.gold} \n`); 228 | 229 | url = { 230 | url: `https://api.datibao.jialaiinfo.com/datibao/sync/record?${querystr()}`, 231 | headers: initRequestHeaders(), 232 | body: JSON.stringify({ 233 | "requestTime": Math.round(new Date().getTime()), 234 | "trueIdList": trueId, 235 | "proxy": false, 236 | "uid": ckProps.uid, 237 | "loginId": ckProps.loginId, 238 | "source": 0, 239 | "appVersionCode": 65, 240 | "userId": ckProps.userId, 241 | "platform": 0 242 | }), 243 | }; 244 | 245 | result = await httpPost(url, `答题`, timeout); 246 | } 247 | 248 | //提现 249 | async function purchase(timeout = 3 * 1000) { 250 | 251 | let url = { 252 | url: `https://api.datibao.jialaiinfo.com/datibao/product/purchase?${querystr()}`, 253 | headers: initRequestHeaders(), 254 | body: JSON.stringify({ 255 | "requestTime": Math.round(new Date().getTime()), 256 | "productId": 8, "count": 1, 257 | "proxy": false, 258 | "uid": ckProps.uid, 259 | "loginId": ckProps.loginId, 260 | "source": 4, 261 | "appVersionCode": 65, 262 | "userId": ckProps.userId, 263 | "platform": 0, 264 | "taskId": 0 265 | }), 266 | }; 267 | 268 | let result = await httpPost(url, `提现`, timeout); 269 | if (result.code == 500) { 270 | msg += `\n uid:${ckProps.userId} 🎉 ${result.errorMsg} \n` 271 | console.log(`${result.errorMsg}`) 272 | } 273 | else { 274 | msg += `\n uid:${ckProps.userId} 🎉 提现0.3成功 \n` 275 | console.log(`提现0.3成功`) 276 | } 277 | 278 | 279 | } 280 | 281 | 282 | 283 | //#region 固定代码 284 | // ============================================变量检查============================================ \\ 285 | 286 | async function getCks(ck, str) { 287 | 288 | 289 | return new Promise((resolve, reject) => { 290 | 291 | let ckArr = [] 292 | if (ck) { 293 | if (ck.indexOf("@") != -1) { 294 | 295 | ck.split("@").forEach((item) => { 296 | ckArr.push(item); 297 | }); 298 | } else { 299 | ckArr.push(ck); 300 | } 301 | resolve(ckArr) 302 | } else { 303 | console.log(`\n 【${$.name}】:未填写变量 ${str}`) 304 | } 305 | 306 | }) 307 | } 308 | 309 | // ============================================发送消息============================================ \\ 310 | 311 | async function SendMsg(message) { 312 | if (!message) return; 313 | 314 | if (Notify > 0) { 315 | if ($.isNode()) { 316 | var notify = require("./sendNotify"); 317 | await notify.sendNotify($.name, message); 318 | } else { 319 | $.msg(message); 320 | } 321 | } else { 322 | console.log(message); 323 | } 324 | } 325 | 326 | /** 327 | * 随机数生成 328 | */ 329 | 330 | function randomString(e) { 331 | e = e || 32; 332 | var t = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890", 333 | a = t.length, 334 | n = ""; 335 | 336 | for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a)); 337 | return n; 338 | } 339 | 340 | /** 341 | * 随机整数生成 342 | */ 343 | 344 | function randomInt(min, max) { 345 | return Math.round(Math.random() * (max - min) + min); 346 | } 347 | 348 | //每日网抑云 349 | function wyy(timeout = 3 * 1000) { 350 | return new Promise((resolve) => { 351 | let url = { 352 | url: `https://keai.icu/apiwyy/api` 353 | } 354 | $.get(url, async (err, resp, data) => { 355 | try { 356 | data = JSON.parse(data) 357 | console.log(`\n 【网抑云时间】: ${data.content} by--${data.music}`); 358 | 359 | } catch (e) { 360 | $.logErr(e, resp); 361 | } finally { 362 | resolve() 363 | } 364 | }, timeout) 365 | }) 366 | } 367 | // ============================================ get请求 ============================================ \\ 368 | async function httpGet(getUrlObject, tip, timeout = 3 * 1000) { 369 | return new Promise((resolve) => { 370 | let url = getUrlObject; 371 | if (!tip) { 372 | let tmp = arguments.callee.toString(); 373 | let re = /function\s*(\w*)/i; 374 | let matches = re.exec(tmp); 375 | tip = matches[1]; 376 | } 377 | if (debug) { 378 | console.log( 379 | `\n 【debug】=============== 这是 ${tip} 请求 url ===============` 380 | ); 381 | console.log(url); 382 | } 383 | 384 | $.get( 385 | url, 386 | async (error, response, _data) => { 387 | try { 388 | if (debug) { 389 | console.log( 390 | `\n\n 【debug】===============这是 ${tip} 返回data==============` 391 | ); 392 | console.log(_data); 393 | console.log(`======`); 394 | console.log(JSON.parse(_data)); 395 | } 396 | let result = JSON.parse(_data); 397 | resolve(result); 398 | } catch (e) { 399 | console.log(e); 400 | } finally { 401 | resolve(); 402 | } 403 | }, 404 | timeout 405 | ); 406 | }); 407 | } 408 | 409 | async function httpPost(postUrlObject, tip, timeout = 3 * 1000) { 410 | return new Promise((resolve) => { 411 | let url = postUrlObject; 412 | if (!tip) { 413 | let tmp = arguments.callee.toString(); 414 | let re = /function\s*(\w*)/i; 415 | let matches = re.exec(tmp); 416 | tip = matches[1]; 417 | } 418 | if (debug) { 419 | console.log( 420 | `\n 【debug】=============== 这是 ${tip} 请求 url ===============` 421 | ); 422 | console.log(url); 423 | } 424 | 425 | $.post( 426 | url, 427 | async (error, response, data) => { 428 | try { 429 | if (debug) { 430 | console.log( 431 | `\n\n 【debug】===============这是 ${tip} 返回data==============` 432 | ); 433 | console.log(data); 434 | console.log(`======`); 435 | console.log(JSON.parse(data)); 436 | } 437 | let result = JSON.parse(data); 438 | if (result.code == 0) { 439 | resolve(result); 440 | } 441 | else { 442 | resolve(result); 443 | console.log(`${tip}请求异常 ${result.errorMsg}`) 444 | } 445 | } catch (e) { 446 | console.log(e); 447 | } finally { 448 | resolve(); 449 | } 450 | }, 451 | timeout 452 | ); 453 | }); 454 | } 455 | 456 | // ============================================ debug调试 ============================================ \\ 457 | function debugLog(...args) { 458 | if (debug) { 459 | console.log(...args); 460 | } 461 | } 462 | 463 | //#endregion 464 | 465 | // prettier-ignore 466 | function MD5Encrypt(a) { 467 | function b(a, b) { 468 | return a << b | a >>> 32 - b 469 | } 470 | 471 | function c(a, b) { 472 | var c, d, e, f, g; 473 | return e = 2147483648 & a, f = 2147483648 & b, c = 1073741824 & a, d = 1073741824 & b, g = (1073741823 & a) + ( 474 | 1073741823 & b), c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 475 | 1073741824 ^ g ^ e ^ f : g ^ e ^ f 476 | } 477 | 478 | function d(a, b, c) { 479 | return a & b | ~a & c 480 | } 481 | 482 | function e(a, b, c) { 483 | return a & c | b & ~c 484 | } 485 | 486 | function f(a, b, c) { 487 | return a ^ b ^ c 488 | } 489 | 490 | function g(a, b, c) { 491 | return b ^ (a | ~c) 492 | } 493 | 494 | function h(a, e, f, g, h, i, j) { 495 | return a = c(a, c(c(d(e, f, g), h), j)), c(b(a, i), e) 496 | } 497 | 498 | function i(a, d, f, g, h, i, j) { 499 | return a = c(a, c(c(e(d, f, g), h), j)), c(b(a, i), d) 500 | } 501 | 502 | function j(a, d, e, g, h, i, j) { 503 | return a = c(a, c(c(f(d, e, g), h), j)), c(b(a, i), d) 504 | } 505 | 506 | function k(a, d, e, f, h, i, j) { 507 | return a = c(a, c(c(g(d, e, f), h), j)), c(b(a, i), d) 508 | } 509 | 510 | function l(a) { 511 | for (var b, c = a.length, d = c + 8, e = (d - d % 64) / 64, f = 16 * (e + 1), g = new Array(f - 1), h = 0, i = 512 | 0; c > i;) b = (i - i % 4) / 4, h = i % 4 * 8, g[b] = g[b] | a.charCodeAt(i) << h, i++; 513 | return b = (i - i % 4) / 4, h = i % 4 * 8, g[b] = g[b] | 128 << h, g[f - 2] = c << 3, g[f - 1] = c >>> 29, g 514 | } 515 | 516 | function m(a) { 517 | var b, c, d = "", 518 | e = ""; 519 | for (c = 0; 3 >= c; c++) b = a >>> 8 * c & 255, e = "0" + b.toString(16), d += e.substr(e.length - 2, 2); 520 | return d 521 | } 522 | 523 | function n(a) { 524 | a = a.replace(/\r\n/g, "\n"); 525 | for (var b = "", c = 0; c < a.length; c++) { 526 | var d = a.charCodeAt(c); 527 | 128 > d ? b += String.fromCharCode(d) : d > 127 && 2048 > d ? (b += String.fromCharCode(d >> 6 | 192), b += 528 | String.fromCharCode(63 & d | 128)) : (b += String.fromCharCode(d >> 12 | 224), b += String.fromCharCode( 529 | d >> 6 & 63 | 128), b += String.fromCharCode(63 & d | 128)) 530 | } 531 | return b 532 | } 533 | var o, p, q, r, s, t, u, v, w, x = [], 534 | y = 7, 535 | z = 12, 536 | A = 17, 537 | B = 22, 538 | C = 5, 539 | D = 9, 540 | E = 14, 541 | F = 20, 542 | G = 4, 543 | H = 11, 544 | I = 16, 545 | J = 23, 546 | K = 6, 547 | L = 10, 548 | M = 15, 549 | N = 21; 550 | for (a = n(a), x = l(a), t = 1732584193, u = 4023233417, v = 2562383102, w = 271733878, o = 0; o < x.length; o += 551 | 16) p = t, q = u, r = v, s = w, t = h(t, u, v, w, x[o + 0], y, 3614090360), w = h(w, t, u, v, x[o + 1], z, 552 | 3905402710), v = h(v, w, t, u, x[o + 2], A, 606105819), u = h(u, v, w, t, x[o + 3], B, 3250441966), t = h(t, 553 | u, v, w, x[o + 4], y, 4118548399), w = h(w, t, u, v, x[o + 5], z, 1200080426), v = h(v, w, t, u, x[o + 6], 554 | A, 2821735955), u = h(u, v, w, t, x[o + 7], B, 4249261313), t = h(t, u, v, w, x[o + 8], y, 1770035416), w = 555 | h(w, t, u, v, x[o + 9], z, 2336552879), v = h(v, w, t, u, x[o + 10], A, 4294925233), u = h(u, v, w, t, x[o + 11], 556 | B, 2304563134), t = h(t, u, v, w, x[o + 12], y, 1804603682), w = h(w, t, u, v, x[o + 13], z, 4254626195), v = 557 | h(v, w, t, u, x[o + 14], A, 2792965006), u = h(u, v, w, t, x[o + 15], B, 1236535329), t = i(t, u, v, w, x[o + 1], 558 | C, 4129170786), w = i(w, t, u, v, x[o + 6], D, 3225465664), v = i(v, w, t, u, x[o + 11], E, 643717713), u = 559 | i(u, v, w, t, x[o + 0], F, 3921069994), t = i(t, u, v, w, x[o + 5], C, 3593408605), w = i(w, t, u, v, x[o + 10], 560 | D, 38016083), v = i(v, w, t, u, x[o + 15], E, 3634488961), u = i(u, v, w, t, x[o + 4], F, 3889429448), t = 561 | i(t, u, v, w, x[o + 9], C, 568446438), w = i(w, t, u, v, x[o + 14], D, 3275163606), v = i(v, w, t, u, x[o + 3], 562 | E, 4107603335), u = i(u, v, w, t, x[o + 8], F, 1163531501), t = i(t, u, v, w, x[o + 13], C, 2850285829), w = 563 | i(w, t, u, v, x[o + 2], D, 4243563512), v = i(v, w, t, u, x[o + 7], E, 1735328473), u = i(u, v, w, t, x[o + 12], 564 | F, 2368359562), t = j(t, u, v, w, x[o + 5], G, 4294588738), w = j(w, t, u, v, x[o + 8], H, 2272392833), v = 565 | j(v, w, t, u, x[o + 11], I, 1839030562), u = j(u, v, w, t, x[o + 14], J, 4259657740), t = j(t, u, v, w, x[o + 1], 566 | G, 2763975236), w = j(w, t, u, v, x[o + 4], H, 1272893353), v = j(v, w, t, u, x[o + 7], I, 4139469664), u = 567 | j(u, v, w, t, x[o + 10], J, 3200236656), t = j(t, u, v, w, x[o + 13], G, 681279174), w = j(w, t, u, v, x[o + 0], 568 | H, 3936430074), v = j(v, w, t, u, x[o + 3], I, 3572445317), u = j(u, v, w, t, x[o + 6], J, 76029189), t = j( 569 | t, u, v, w, x[o + 9], G, 3654602809), w = j(w, t, u, v, x[o + 12], H, 3873151461), v = j(v, w, t, u, x[o + 570 | 15], I, 530742520), u = j(u, v, w, t, x[o + 2], J, 3299628645), t = k(t, u, v, w, x[o + 0], K, 4096336452), 571 | w = k(w, t, u, v, x[o + 7], L, 1126891415), v = k(v, w, t, u, x[o + 14], M, 2878612391), u = k(u, v, w, t, x[o + 572 | 5], N, 4237533241), t = k(t, u, v, w, x[o + 12], K, 1700485571), w = k(w, t, u, v, x[o + 3], L, 2399980690), 573 | v = k(v, w, t, u, x[o + 10], M, 4293915773), u = k(u, v, w, t, x[o + 1], N, 2240044497), t = k(t, u, v, w, x[o + 574 | 8], K, 1873313359), w = k(w, t, u, v, x[o + 15], L, 4264355552), v = k(v, w, t, u, x[o + 6], M, 2734768916), 575 | u = k(u, v, w, t, x[o + 13], N, 1309151649), t = k(t, u, v, w, x[o + 4], K, 4149444226), w = k(w, t, u, v, x[o + 576 | 11], L, 3174756917), v = k(v, w, t, u, x[o + 2], M, 718787259), u = k(u, v, w, t, x[o + 9], N, 3951481745), 577 | t = c(t, p), u = c(u, q), v = c(v, r), w = c(w, s); 578 | var O = m(t) + m(u) + m(v) + m(w); 579 | return O.toLowerCase() 580 | } 581 | 582 | function Env(t, e) { 583 | "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); 584 | class s { 585 | constructor(t) { 586 | this.env = t 587 | } 588 | send(t, e = "GET") { 589 | t = "string" == typeof t ? { 590 | url: t 591 | } : t; 592 | let s = this.get; 593 | return "POST" === e && (s = this.post), new Promise((e, i) => { 594 | s.call(this, t, (t, s, r) => { 595 | t ? i(t) : e(s) 596 | }) 597 | }) 598 | } 599 | get(t) { 600 | return this.send.call(this.env, t) 601 | } 602 | post(t) { 603 | return this.send.call(this.env, t, "POST") 604 | } 605 | } 606 | return new class { 607 | constructor(t, e) { 608 | this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], 609 | this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date) 610 | .getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) 611 | } 612 | isNode() { 613 | return "undefined" != typeof module && !!module.exports 614 | } 615 | isQuanX() { 616 | return "undefined" != typeof $task 617 | } 618 | isSurge() { 619 | return "undefined" != typeof $httpClient && "undefined" == typeof $loon 620 | } 621 | isLoon() { 622 | return "undefined" != typeof $loon 623 | } 624 | toObj(t, e = null) { 625 | try { 626 | return JSON.parse(t) 627 | } catch { 628 | return e 629 | } 630 | } 631 | toStr(t, e = null) { 632 | try { 633 | return JSON.stringify(t) 634 | } catch { 635 | return e 636 | } 637 | } 638 | getjson(t, e) { 639 | let s = e; 640 | const i = this.getdata(t); 641 | if (i) try { 642 | s = JSON.parse(this.getdata(t)) 643 | } catch { } 644 | return s 645 | } 646 | setjson(t, e) { 647 | try { 648 | return this.setdata(JSON.stringify(t), e) 649 | } catch { 650 | return !1 651 | } 652 | } 653 | getScript(t) { 654 | return new Promise(e => { 655 | this.get({ 656 | url: t 657 | }, (t, s, i) => e(i)) 658 | }) 659 | } 660 | runScript(t, e) { 661 | return new Promise(s => { 662 | let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); 663 | i = i ? i.replace(/\n/g, "").trim() : i; 664 | let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); 665 | r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; 666 | const [o, h] = i.split("@"), n = { 667 | url: `http://${h}/v1/scripting/evaluate`, 668 | body: { 669 | script_text: t, 670 | mock_type: "cron", 671 | timeout: r 672 | }, 673 | headers: { 674 | "X-Key": o, 675 | Accept: "*/*" 676 | } 677 | }; 678 | this.post(n, (t, e, i) => s(i)) 679 | }).catch(t => this.logErr(t)) 680 | } 681 | loaddata() { 682 | if (!this.isNode()) return {}; { 683 | this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); 684 | const t = this.path.resolve(this.dataFile), 685 | e = this.path.resolve(process.cwd(), this.dataFile), 686 | s = this.fs.existsSync(t), 687 | i = !s && this.fs.existsSync(e); 688 | if (!s && !i) return {}; { 689 | const i = s ? t : e; 690 | try { 691 | return JSON.parse(this.fs.readFileSync(i)) 692 | } catch (t) { 693 | return {} 694 | } 695 | } 696 | } 697 | } 698 | writedata() { 699 | if (this.isNode()) { 700 | this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); 701 | const t = this.path.resolve(this.dataFile), 702 | e = this.path.resolve(process.cwd(), this.dataFile), 703 | s = this.fs.existsSync(t), 704 | i = !s && this.fs.existsSync(e), 705 | r = JSON.stringify(this.data); 706 | s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) 707 | } 708 | } 709 | lodash_get(t, e, s) { 710 | const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); 711 | let r = t; 712 | for (const t of i) 713 | if (r = Object(r)[t], void 0 === r) return s; 714 | return r 715 | } 716 | lodash_set(t, e, s) { 717 | return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice( 718 | 0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 719 | 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) 720 | } 721 | getdata(t) { 722 | let e = this.getval(t); 723 | if (/^@/.test(t)) { 724 | const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; 725 | if (r) try { 726 | const t = JSON.parse(r); 727 | e = t ? this.lodash_get(t, i, "") : e 728 | } catch (t) { 729 | e = "" 730 | } 731 | } 732 | return e 733 | } 734 | setdata(t, e) { 735 | let s = !1; 736 | if (/^@/.test(e)) { 737 | const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || 738 | "{}" : "{}"; 739 | try { 740 | const e = JSON.parse(h); 741 | this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) 742 | } catch (e) { 743 | const o = {}; 744 | this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) 745 | } 746 | } else s = this.setval(t, e); 747 | return s 748 | } 749 | getval(t) { 750 | return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey( 751 | t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || 752 | null 753 | } 754 | setval(t, e) { 755 | return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey( 756 | t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), ! 757 | 0) : this.data && this.data[e] || null 758 | } 759 | initGotEnv(t) { 760 | this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : 761 | require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && 762 | (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && 763 | (t.cookieJar = this.ckjar)) 764 | } 765 | get(t, e = (() => { })) { 766 | t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || 767 | this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign( 768 | t.headers, { 769 | "X-Surge-Skip-Scripting": !1 770 | })), $httpClient.get(t, (t, s, i) => { 771 | !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) 772 | })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { 773 | hints: !1 774 | })), $task.fetch(t).then(t => { 775 | const { 776 | statusCode: s, 777 | statusCode: i, 778 | headers: r, 779 | body: o 780 | } = t; 781 | e(null, { 782 | status: s, 783 | statusCode: i, 784 | headers: r, 785 | body: o 786 | }, o) 787 | }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { 788 | try { 789 | if (t.headers["set-cookie"]) { 790 | const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); 791 | s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar 792 | } 793 | } catch (t) { 794 | this.logErr(t) 795 | } 796 | }).then(t => { 797 | const { 798 | statusCode: s, 799 | statusCode: i, 800 | headers: r, 801 | body: o 802 | } = t; 803 | e(null, { 804 | status: s, 805 | statusCode: i, 806 | headers: r, 807 | body: o 808 | }, o) 809 | }, t => { 810 | const { 811 | message: s, 812 | response: i 813 | } = t; 814 | e(s, i, i && i.body) 815 | })) 816 | } 817 | post(t, e = (() => { })) { 818 | if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = 819 | "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this 820 | .isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || 821 | {}, Object.assign(t.headers, { 822 | "X-Surge-Skip-Scripting": !1 823 | })), $httpClient.post(t, (t, s, i) => { 824 | !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) 825 | }); 826 | else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign( 827 | t.opts, { 828 | hints: !1 829 | })), $task.fetch(t).then(t => { 830 | const { 831 | statusCode: s, 832 | statusCode: i, 833 | headers: r, 834 | body: o 835 | } = t; 836 | e(null, { 837 | status: s, 838 | statusCode: i, 839 | headers: r, 840 | body: o 841 | }, o) 842 | }, t => e(t)); 843 | else if (this.isNode()) { 844 | this.initGotEnv(t); 845 | const { 846 | url: s, 847 | ...i 848 | } = t; 849 | this.got.post(s, i).then(t => { 850 | const { 851 | statusCode: s, 852 | statusCode: i, 853 | headers: r, 854 | body: o 855 | } = t; 856 | e(null, { 857 | status: s, 858 | statusCode: i, 859 | headers: r, 860 | body: o 861 | }, o) 862 | }, t => { 863 | const { 864 | message: s, 865 | response: i 866 | } = t; 867 | e(s, i, i && i.body) 868 | }) 869 | } 870 | } 871 | time(t, e = null) { 872 | const s = e ? new Date(e) : new Date; 873 | let i = { 874 | "M+": s.getMonth() + 1, 875 | "d+": s.getDate(), 876 | "H+": s.getHours(), 877 | "m+": s.getMinutes(), 878 | "s+": s.getSeconds(), 879 | "q+": Math.floor((s.getMonth() + 3) / 3), 880 | S: s.getMilliseconds() 881 | }; 882 | /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); 883 | for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? 884 | i[e] : ("00" + i[e]).substr(("" + i[e]).length))); 885 | return t 886 | } 887 | msg(e = t, s = "", i = "", r) { 888 | const o = t => { 889 | if (!t) return t; 890 | if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { 891 | "open-url": t 892 | } : this.isSurge() ? { 893 | url: t 894 | } : void 0; 895 | if ("object" == typeof t) { 896 | if (this.isLoon()) { 897 | let e = t.openUrl || t.url || t["open-url"], 898 | s = t.mediaUrl || t["media-url"]; 899 | return { 900 | openUrl: e, 901 | mediaUrl: s 902 | } 903 | } 904 | if (this.isQuanX()) { 905 | let e = t["open-url"] || t.url || t.openUrl, 906 | s = t["media-url"] || t.mediaUrl; 907 | return { 908 | "open-url": e, 909 | "media-url": s 910 | } 911 | } 912 | if (this.isSurge()) { 913 | let e = t.url || t.openUrl || t["open-url"]; 914 | return { 915 | url: e 916 | } 917 | } 918 | } 919 | }; 920 | if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && 921 | $notify(e, s, i, o(r))), !this.isMuteLog) { 922 | let t = ["", "==============📣系统通知📣=============="]; 923 | t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat( 924 | t) 925 | } 926 | } 927 | log(...t) { 928 | t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) 929 | } 930 | logErr(t, e) { 931 | const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); 932 | s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) 933 | } 934 | wait(t) { 935 | return new Promise(e => setTimeout(e, t)) 936 | } 937 | done(t = {}) { 938 | const e = (new Date).getTime(), 939 | s = (e - this.startTime) / 1e3; 940 | this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || 941 | this.isLoon()) && $done(t) 942 | } 943 | }(t, e) 944 | } -------------------------------------------------------------------------------- /zsq_JS/dinds.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 叮咚买菜APP,叮咚果园,叮咚鱼塘 3 | * 需要先完成新手引导任务 4 | * 地址: https://raw.githubusercontent.com/sofm13/qinlongjs/master/zsq_JS/dinds.js 5 | * 6 | * cron 5 8,11,17 * * * sofm13_qinlongjs_master/dinds.js 7 | * 8 | * 4-27 叮咚鱼塘更新,叮咚买菜App签到,叮咚果园自动浇水,领福袋,每日签到,连续签到,浏览商品,完成任务等 9 | * 有需求可加入tg:https://t.me/zsq_ql, https://t.me/zsq_sofm13 联系群主 @sofm_13 或Q群978963762来一起交流啊 10 | * 11 | * 抓包方式 进入叮咚果园随机抓取接口取Cookie即可 12 | * 13 | * ========= 青龙 ========= 14 | * 变量格式:export dindong_cookie=' xxxx & xxx @ xxxx & xxx ' 多个账号用 @分割 15 | * 16 | */ 17 | 18 | const jsname = "叮咚买菜"; 19 | const $ = Env(jsname); 20 | const notify = $.isNode() ? require('./sendNotify') : ''; // 这里是 node(青龙属于node环境)通知相关的 21 | const Notify = 1; //0为关闭通知,1为打开通知,默认为1 22 | const debug = 0; //0为关闭调试,1为打开调试,默认为0 23 | ////////////////////// 24 | let dindong_ck = process.env.dindong_cookie; // 这里是 从青龙的 配置文件 读取你写的变量 25 | let dindong_ckArr = []; 26 | let feed = 2; 27 | let feedStr = "浇水"; 28 | let ck = ''; 29 | let uid = ''; 30 | let seedId = ''; 31 | let propid = ''; 32 | let propsCode = ''; 33 | let amount = 0; 34 | let percent = 0; 35 | let taskList = []; 36 | let haveFish = true; 37 | let msg = ''; 38 | 39 | const taskStatus = { 40 | "TO_ACHIEVE": "未完成任务", 41 | "TO_REWARD": "已完成,未领取奖励", 42 | "WAITING_REWARD": "等待完成", 43 | "WAITING_WINDOW": "未到领取时间", 44 | "FINISHED": "完成,已领取奖励", 45 | "TO_RECEIVE": "待领取任务" 46 | }; 47 | 48 | !(async () => { 49 | 50 | if (!(await MoreUser())) //多账号分割 判断变量是否为空 初步处理多账号 51 | return; 52 | else { 53 | 54 | console.log( 55 | `\n\n========================================= \n脚本执行 - 北京时间(UTC+8):${new Date( 56 | new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 57 | 8 * 60 * 60 * 1000).toLocaleString()} \n=========================================\n` 58 | ); 59 | 60 | console.log(`\n=================== 共找到 ${dindong_ckArr.length} 个账号 ===================`) 61 | 62 | if (debug) { 63 | console.log(`【debug】 这是你的全部账号:\n ${dindong_ckArr}`); 64 | } 65 | 66 | 67 | for (let index = 0; index < dindong_ckArr.length; index++) { 68 | 69 | 70 | let num = index + 1 71 | console.log(`\n========= 开始【第 ${num} 个账号】=========\n`) 72 | 73 | ck = dindong_ckArr[index].split('&'); // 这里是分割你每个账号的每个小项 74 | 75 | console.log(`\n 开始签到30天领60元买菜金`); 76 | await signin(); 77 | 78 | //个人信息 79 | console.log(`\n 开始执行叮咚果园任务 `); 80 | feed = 2; 81 | feedStr = "浇水"; 82 | await userDetail(); 83 | 84 | if (debug) { 85 | console.log(`\n 【debug】 这是你第 ${num} 账号信息uid:\n ${uid}`); 86 | } 87 | 88 | if (uid == undefined) { 89 | console.log(`\n【获取果园个人信息】 失败 ❌,uid为空,请先手动进入果园以及鱼塘完成新手引导任务! `) 90 | } 91 | else { 92 | 93 | console.log(`\n【获取个人信息】成功了呢uid为${uid} 🎉 `) 94 | console.log(`\n 查询果园任务列表`); 95 | await getTask(); 96 | 97 | for (const task of taskList) { 98 | if (["INVITATION", "POINT_EXCHANGE", "LUCK_DRAW"].includes(task.taskCode)) { 99 | continue; 100 | } 101 | const desc = task.taskDescription ? (task.taskDescription[0] ? `:${task.taskDescription[0]}` : "") : ""; 102 | const status = taskStatus[task.buttonStatus] ? taskStatus[task.buttonStatus] : (task.buttonStatus ? task.buttonStatus : "未知"); 103 | switch (task.buttonStatus) { 104 | case "TO_ACHIEVE": 105 | if (["ANY_ORDER", "BUY_GOODS", "MULTI_ORDER", "FEED_CRAP"].includes(task.taskCode)) { 106 | continue; 107 | } 108 | console.log(`\n${task.taskName}(${task.taskCode})${desc}\n- 持续天数:${task.continuousDays}\n- 任务状态:${status}`); 109 | await achieve(3 * 1000, task.taskCode, task.taskName); 110 | break; 111 | case "TO_REWARD": 112 | task.userTaskLogId && await reward(3 * 1000, task.userTaskLogId); 113 | break; 114 | case "TO_RECEIVE": 115 | console.log(`\n${task.taskName}(${task.taskCode})${desc}\n- 持续天数:${task.continuousDays}\n- 任务状态:${status}`); 116 | task.userTaskLogId && await reward(3 * 1000, task.userTaskLogId); 117 | break; 118 | } 119 | } 120 | 121 | //放在最后 122 | await userDetail(); 123 | console.log(`\n 开始浇水 `); 124 | 125 | while (amount > 10) { 126 | await jiaoSui(); 127 | } 128 | msg += `\n 第 ${num} 账号信息uid: ${uid} 叮咚果园已完成${percent}% `; 129 | 130 | } 131 | 132 | 133 | //个人信息 134 | console.log(`\n 开始执行叮咚鱼塘任务 `); 135 | feed = 1; 136 | feedStr = "喂鱼"; 137 | await fishDetail(); 138 | if (!haveFish) { 139 | console.log(`\n【获取叮咚鱼塘个人信息】 失败 ❌,请先手动进入鱼塘完成新手引导任务! `) 140 | } 141 | else { 142 | console.log(`\n 查询叮咚鱼塘任务列表 `); 143 | await getTask(); 144 | 145 | for (const task of taskList) { 146 | if (["INVITATION", "POINT_EXCHANGE", "LUCK_DRAW", "ANY_ORDER", "BUY_GOODS"].includes(task.taskCode)) { 147 | continue; 148 | } 149 | 150 | const desc = task.taskDescription ? (task.taskDescription[0] ? `:${task.taskDescription[0]}` : "") : ""; 151 | const status = taskStatus[task.buttonStatus] ? taskStatus[task.buttonStatus] : (task.buttonStatus ? task.buttonStatus : "未知"); 152 | switch (task.buttonStatus) { 153 | case "TO_ACHIEVE": 154 | if (["ANY_ORDER", "BUY_GOODS", "MULTI_ORDER", "FEED_CRAP"].includes(task.taskCode)) { 155 | continue; 156 | } 157 | console.log(`\n${task.taskName}(${task.taskCode})${desc}\n- 持续天数:${task.continuousDays}\n- 任务状态:${status}`); 158 | await achieve(3 * 1000, task.taskCode, task.taskName); 159 | break; 160 | case "TO_REWARD": 161 | task.userTaskLogId && await reward(3 * 1000, task.userTaskLogId); 162 | break; 163 | case "TO_RECEIVE": 164 | console.log(`\n${task.taskName}(${task.taskCode})${desc}\n- 持续天数:${task.continuousDays}\n- 任务状态:${status}`); 165 | task.userTaskLogId && await reward(3 * 1000, task.userTaskLogId); 166 | break; 167 | } 168 | } 169 | 170 | //放在最后 171 | await fishDetail(); 172 | console.log(`\n 开始喂鱼 `); 173 | 174 | while (amount > 10) { 175 | await jiaoSui(); 176 | } 177 | msg += `\n 第 ${num} 账号信息uid: ${uid} 叮咚鱼塘已完成${percent}% `; 178 | } 179 | 180 | } 181 | console.log(msg); 182 | await SendMsg(msg); // 与发送通知有关系 183 | } 184 | 185 | })() 186 | .catch((e) => console.log(e)) 187 | .finally(() => $.done()) 188 | 189 | 190 | //果园信息 191 | function userDetail(timeout = 3 * 1000) { 192 | return new Promise((resolve) => { 193 | let url = { 194 | url: `https://farm.api.ddxq.mobi/api/v2/userguide/orchard/detail`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 195 | headers: initRequestHeaders() 196 | } 197 | 198 | $.get(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 199 | try { 200 | if (debug) { 201 | console.log(data) 202 | } 203 | 204 | let result = JSON.parse(data); 205 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 206 | 207 | 208 | if (result.data.guideProVos.ORCHARD_FRIEND_ONE != undefined) { 209 | uid = result.data.guideProVos.ORCHARD_FRIEND_ONE.userId; 210 | } 211 | else { 212 | uid = undefined; 213 | return; 214 | } 215 | seedId = result.data.baseSeed.seedId; 216 | propid = result.data.feed.propsId; 217 | amount = result.data.feed.amount; 218 | propsCode = result.data.feed.propsCode; 219 | percent = parseFloat(result.data.baseSeed.expPercent); 220 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 221 | 222 | console.log(`\n【获取个人信息】 失败 ❌ 了呢,可能是网络被外星人抓走了!\n `) 223 | } 224 | 225 | } catch (e) { 226 | console.log(e); 227 | } finally { 228 | resolve() 229 | } 230 | }, timeout) 231 | }) 232 | } 233 | 234 | //鱼塘信息 235 | function fishDetail(timeout = 3 * 1000) { 236 | return new Promise((resolve) => { 237 | let url = { 238 | url: `https://farm.api.ddxq.mobi/api/v2/userguide/detail`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 239 | headers: initRequestHeaders() 240 | } 241 | 242 | $.get(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 243 | try { 244 | 245 | let result = JSON.parse(data); 246 | 247 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 248 | 249 | if (result.data.baseSeed == null) { 250 | haveFish = false; 251 | return; 252 | } 253 | haveFish = true; 254 | seedId = result.data.baseSeed.seedId; 255 | propid = result.data.feed.propsId; 256 | amount = result.data.feed.amount; 257 | propsCode = result.data.feed.propsCode; 258 | percent = parseFloat(result.data.baseSeed.expPercent); 259 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 260 | 261 | console.log(`\n【获取鱼塘个人信息】 失败 ❌ 了呢,可能是网络被外星人抓走了!\n `) 262 | } 263 | 264 | } catch (e) { 265 | console.log(e); 266 | } finally { 267 | resolve() 268 | } 269 | }, timeout) 270 | }) 271 | } 272 | 273 | //任务列表 274 | function getTask(timeout = 3 * 1000) { 275 | return new Promise((resolve) => { 276 | let url = { 277 | url: `https://farm.api.ddxq.mobi/api/v2/task/list-orchard?uid=${uid}&reward=${propsCode}`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 278 | headers: initRequestHeaders() 279 | } 280 | 281 | if (debug) { 282 | console.log(url); 283 | } 284 | 285 | $.get(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 286 | try { 287 | if (debug) { 288 | console.log(data) 289 | } 290 | 291 | let result = JSON.parse(data); 292 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 293 | 294 | console.log(`\n【获取任务】成功了呢 🎉 `) 295 | taskList = result.data.userTasks; 296 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 297 | 298 | console.log(`\n【获取任务】 失败 ❌ 了呢,可能是网络被外星人抓走了!\n `) 299 | } 300 | 301 | } catch (e) { 302 | console.log(e); 303 | } finally { 304 | resolve() 305 | } 306 | }, timeout) 307 | }) 308 | } 309 | 310 | //执行任务 311 | function achieve(timeout = 3 * 1000, code, str) { 312 | return new Promise((resolve) => { 313 | let url = { 314 | url: `https://farm.api.ddxq.mobi/api/v2/task/achieve?uid=${uid}&taskCode=${code}`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 315 | headers: initRequestHeaders() 316 | } 317 | 318 | $.get(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 319 | try { 320 | if (debug) { 321 | console.log(data) 322 | } 323 | 324 | let result = JSON.parse(data); 325 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 326 | 327 | console.log(`\n【执行${str}】成功了呢 🎉 `) 328 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 329 | 330 | console.log(`\n【执行${str}】 失败 ❌ 了呢,可能是网络被外星人抓走了!\n `) 331 | } 332 | 333 | } catch (e) { 334 | console.log(e); 335 | } finally { 336 | resolve() 337 | } 338 | }, timeout) 339 | }) 340 | } 341 | 342 | //浇水或养鱼 343 | function jiaoSui(timeout = 3 * 1000) { 344 | return new Promise((resolve) => { 345 | let url = { 346 | url: `https://farm.api.ddxq.mobi/api/v2/props/feed?propsCode=${propsCode}&uid=${uid}&seedId=${seedId}&propsId=${propid}`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 347 | headers: initRequestHeaders() 348 | } 349 | 350 | $.get(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 351 | try { 352 | if (debug) { 353 | console.log(data) 354 | } 355 | 356 | let result = JSON.parse(data); 357 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 358 | 359 | amount = result.data.props.amount; 360 | percent = parseFloat(result.data.seed.expPercent); 361 | console.log(`\n【${feedStr}】 成功了呢,${result.data.seed.msg} 🎉 `) 362 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 363 | 364 | console.log(`\n【第${num}次${feedStr}】 失败 ❌ 了呢,可能是网络被外星人抓走了!\n `) 365 | } 366 | 367 | } catch (e) { 368 | console.log(e); 369 | } finally { 370 | resolve() 371 | } 372 | }, timeout) 373 | }) 374 | } 375 | 376 | //领取水滴 377 | function reward(timeout = 3 * 1000, taksLogId) { 378 | return new Promise((resolve) => { 379 | let url = { 380 | url: `https://farm.api.ddxq.mobi/api/v2/task/reward?uid=${uid}&userTaskLogId=${taksLogId}`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 381 | headers: initRequestHeaders() 382 | } 383 | 384 | $.get(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 385 | try { 386 | if (debug) { 387 | console.log(data) 388 | } 389 | 390 | let result = JSON.parse(data); 391 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 392 | 393 | console.log(`\n 【领取水滴】 成功了呢 🎉 `) 394 | 395 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 396 | 397 | console.log(`\n【领取水滴】 失败 ❌ 了呢,可能是网络被外星人抓走了!别担心,下次会自动领取的哦 \n `) 398 | } 399 | 400 | } catch (e) { 401 | console.log(e); 402 | } finally { 403 | resolve() 404 | } 405 | }, timeout) 406 | }) 407 | } 408 | 409 | //领取任务 410 | function receive(timeout = 3 * 1000, code, str) { 411 | return new Promise((resolve) => { 412 | let url = { 413 | url: `https://farm.api.ddxq.mobi/api/v2/task/receive?uid=${uid}&taskCode=${code}`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 414 | headers: initRequestHeaders() 415 | } 416 | 417 | $.get(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 418 | try { 419 | if (debug) { 420 | console.log(data) 421 | } 422 | 423 | let result = JSON.parse(data); 424 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 425 | 426 | console.log(`\n 【领取任务${str}】成功了呢 🎉 `) 427 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 428 | 429 | console.log(`\n【领取任务${str}】 失败 ❌ 了呢,可能是网络被外星人抓走了!\n `) 430 | } 431 | 432 | } catch (e) { 433 | console.log(e); 434 | } finally { 435 | resolve() 436 | } 437 | }, timeout) 438 | }) 439 | } 440 | 441 | //签到 442 | function signin(timeout = 3 * 1000) { 443 | return new Promise((resolve) => { 444 | let url = { 445 | url: `https://sunquan.api.ddxq.mobi/api/v2/user/signin/`, // 这是请求的 url 可以直接用我们抓包、精简后的URL 446 | headers: { // headers 是请求体 可以直接用精简后的 hd 也就是服务器校验的部分,他需要啥,我们就给他啥 447 | "Content-Type": "application/x-www-form-urlencoded", 448 | "Host": "sunquan.api.ddxq.mobi", 449 | "User-Agent": "Mozilla/5.0 (Linux; Android 12; IN2020 Build/SKQ1.210216.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/046011 Mobile Safari/537.36 xzone/9.44.0", 450 | "cookie": ck, 451 | "Connection": "keep-alive", 452 | "accept": "*/*" 453 | }, 454 | } 455 | 456 | $.post(url, async (error, response, data) => { // 这是一个 get 请求 , 如果是 post 记得把这里改了 457 | try { 458 | if (debug) { 459 | console.log(data) 460 | } 461 | 462 | let result = JSON.parse(data); 463 | if (result.code == 0) { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 464 | 465 | console.log(`\n【签到成功】成功了呢,第${result.data.sign_series}天 🎉 `) 466 | } else { // 这里是根据服务器返回的数据做判断 方便我们知道任务是否完成了 467 | 468 | console.log(`\n【签到成功】 失败 ❌ 了呢,可能是网络被外星人抓走了!\n `) 469 | } 470 | 471 | } catch (e) { 472 | console.log(e); 473 | } finally { 474 | resolve() 475 | } 476 | }, timeout) 477 | }) 478 | } 479 | 480 | 481 | const initRequestHeaders = function () { 482 | return { 483 | "Content-Type": "application/json;charset=UTF-8", 484 | "Host": "farm.api.ddxq.mobi", 485 | "User-Agent": "Mozilla/5.0 (Linux; Android 12; IN2020 Build/SKQ1.210216.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/046011 Mobile Safari/537.36 xzone/9.44.0", 486 | "cookie": ck, 487 | "Connection": "keep-alive", 488 | "ddmc-game-tid": feed, 489 | "accept": "*/*" 490 | }; 491 | }; 492 | 493 | //#region 固定代码 可以不管他 494 | // ============================================变量检查============================================ \\ 495 | async function MoreUser() { 496 | if (dindong_ck) { 497 | if (dindong_ck.indexOf("@") != -1) { 498 | dindong_ck.split("@").forEach((item) => { 499 | dindong_ckArr.push(item); 500 | }); 501 | } else { 502 | dindong_ckArr.push(dindong_ck); 503 | } 504 | } else { 505 | console.log(`\n 【${$.name}】:未填写变量 dindong_cookie`) 506 | return; 507 | } 508 | 509 | return true; 510 | } 511 | 512 | // ============================================发送消息============================================ \\ 513 | async function SendMsg(message) { 514 | if (!message) 515 | return; 516 | 517 | if (Notify > 0) { 518 | if ($.isNode()) { 519 | var notify = require('./sendNotify'); 520 | await notify.sendNotify($.name, message); 521 | } else { 522 | $.msg(message); 523 | } 524 | } else { 525 | console.log(message); 526 | } 527 | } 528 | 529 | /** 530 | * 随机数生成 531 | */ 532 | function randomString(e) { 533 | e = e || 32; 534 | var t = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890", 535 | a = t.length, 536 | n = ""; 537 | for (i = 0; i < e; i++) 538 | n += t.charAt(Math.floor(Math.random() * a)); 539 | return n 540 | } 541 | 542 | /** 543 | * 随机整数生成 544 | */ 545 | function randomInt(min, max) { 546 | return Math.round(Math.random() * (max - min) + min) 547 | } 548 | 549 | //每日网抑云 550 | function wyy(timeout = 3 * 1000) { 551 | return new Promise((resolve) => { 552 | let url = { 553 | url: `https://keai.icu/apiwyy/api` 554 | } 555 | $.get(url, async (err, resp, data) => { 556 | try { 557 | data = JSON.parse(data) 558 | console.log(`\n 【网抑云时间】: ${data.content} by--${data.music}`); 559 | return data.content; 560 | } catch (e) { 561 | console.log(e, resp); 562 | } finally { 563 | resolve() 564 | } 565 | }, timeout) 566 | }) 567 | } 568 | 569 | //#endregion 570 | 571 | 572 | // prettier-ignore 固定代码 不用管他 573 | function Env(t, e) { 574 | "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); 575 | class s { 576 | constructor(t) { 577 | this.env = t 578 | } 579 | send(t, e = "GET") { 580 | t = "string" == typeof t ? { 581 | url: t 582 | } : t; 583 | let s = this.get; 584 | return "POST" === e && (s = this.post), new Promise((e, i) => { 585 | s.call(this, t, (t, s, r) => { 586 | t ? i(t) : e(s) 587 | }) 588 | }) 589 | } 590 | get(t) { 591 | return this.send.call(this.env, t) 592 | } 593 | post(t) { 594 | return this.send.call(this.env, t, "POST") 595 | } 596 | } 597 | return new class { 598 | constructor(t, e) { 599 | this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], 600 | this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date) 601 | .getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) 602 | } 603 | isNode() { 604 | return "undefined" != typeof module && !!module.exports 605 | } 606 | isQuanX() { 607 | return "undefined" != typeof $task 608 | } 609 | isSurge() { 610 | return "undefined" != typeof $httpClient && "undefined" == typeof $loon 611 | } 612 | isLoon() { 613 | return "undefined" != typeof $loon 614 | } 615 | toObj(t, e = null) { 616 | try { 617 | return JSON.parse(t) 618 | } catch { 619 | return e 620 | } 621 | } 622 | toStr(t, e = null) { 623 | try { 624 | return JSON.stringify(t) 625 | } catch { 626 | return e 627 | } 628 | } 629 | getjson(t, e) { 630 | let s = e; 631 | const i = this.getdata(t); 632 | if (i) try { 633 | s = JSON.parse(this.getdata(t)) 634 | } catch { } 635 | return s 636 | } 637 | setjson(t, e) { 638 | try { 639 | return this.setdata(JSON.stringify(t), e) 640 | } catch { 641 | return !1 642 | } 643 | } 644 | getScript(t) { 645 | return new Promise(e => { 646 | this.get({ 647 | url: t 648 | }, (t, s, i) => e(i)) 649 | }) 650 | } 651 | runScript(t, e) { 652 | return new Promise(s => { 653 | let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); 654 | i = i ? i.replace(/\n/g, "").trim() : i; 655 | let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); 656 | r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; 657 | const [o, h] = i.split("@"), n = { 658 | url: `http://${h}/v1/scripting/evaluate`, 659 | body: { 660 | script_text: t, 661 | mock_type: "cron", 662 | timeout: r 663 | }, 664 | headers: { 665 | "X-Key": o, 666 | Accept: "*/*" 667 | } 668 | }; 669 | this.post(n, (t, e, i) => s(i)) 670 | }).catch(t => this.logErr(t)) 671 | } 672 | loaddata() { 673 | if (!this.isNode()) return {}; { 674 | this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); 675 | const t = this.path.resolve(this.dataFile), 676 | e = this.path.resolve(process.cwd(), this.dataFile), 677 | s = this.fs.existsSync(t), 678 | i = !s && this.fs.existsSync(e); 679 | if (!s && !i) return {}; { 680 | const i = s ? t : e; 681 | try { 682 | return JSON.parse(this.fs.readFileSync(i)) 683 | } catch (t) { 684 | return {} 685 | } 686 | } 687 | } 688 | } 689 | writedata() { 690 | if (this.isNode()) { 691 | this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); 692 | const t = this.path.resolve(this.dataFile), 693 | e = this.path.resolve(process.cwd(), this.dataFile), 694 | s = this.fs.existsSync(t), 695 | i = !s && this.fs.existsSync(e), 696 | r = JSON.stringify(this.data); 697 | s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) 698 | } 699 | } 700 | lodash_get(t, e, s) { 701 | const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); 702 | let r = t; 703 | for (const t of i) 704 | if (r = Object(r)[t], void 0 === r) return s; 705 | return r 706 | } 707 | lodash_set(t, e, s) { 708 | return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice( 709 | 0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 710 | 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) 711 | } 712 | getdata(t) { 713 | let e = this.getval(t); 714 | if (/^@/.test(t)) { 715 | const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; 716 | if (r) try { 717 | const t = JSON.parse(r); 718 | e = t ? this.lodash_get(t, i, "") : e 719 | } catch (t) { 720 | e = "" 721 | } 722 | } 723 | return e 724 | } 725 | setdata(t, e) { 726 | let s = !1; 727 | if (/^@/.test(e)) { 728 | const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || 729 | "{}" : "{}"; 730 | try { 731 | const e = JSON.parse(h); 732 | this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) 733 | } catch (e) { 734 | const o = {}; 735 | this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) 736 | } 737 | } else s = this.setval(t, e); 738 | return s 739 | } 740 | getval(t) { 741 | return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey( 742 | t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || 743 | null 744 | } 745 | setval(t, e) { 746 | return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey( 747 | t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), ! 748 | 0) : this.data && this.data[e] || null 749 | } 750 | initGotEnv(t) { 751 | this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : 752 | require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && 753 | (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && 754 | (t.cookieJar = this.ckjar)) 755 | } 756 | get(t, e = (() => { })) { 757 | t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || 758 | this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign( 759 | t.headers, { 760 | "X-Surge-Skip-Scripting": !1 761 | })), $httpClient.get(t, (t, s, i) => { 762 | !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) 763 | })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { 764 | hints: !1 765 | })), $task.fetch(t).then(t => { 766 | const { 767 | statusCode: s, 768 | statusCode: i, 769 | headers: r, 770 | body: o 771 | } = t; 772 | e(null, { 773 | status: s, 774 | statusCode: i, 775 | headers: r, 776 | body: o 777 | }, o) 778 | }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { 779 | try { 780 | if (t.headers["set-cookie"]) { 781 | const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); 782 | s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar 783 | } 784 | } catch (t) { 785 | this.logErr(t) 786 | } 787 | }).then(t => { 788 | const { 789 | statusCode: s, 790 | statusCode: i, 791 | headers: r, 792 | body: o 793 | } = t; 794 | e(null, { 795 | status: s, 796 | statusCode: i, 797 | headers: r, 798 | body: o 799 | }, o) 800 | }, t => { 801 | const { 802 | message: s, 803 | response: i 804 | } = t; 805 | e(s, i, i && i.body) 806 | })) 807 | } 808 | post(t, e = (() => { })) { 809 | if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = 810 | "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this 811 | .isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || 812 | {}, Object.assign(t.headers, { 813 | "X-Surge-Skip-Scripting": !1 814 | })), $httpClient.post(t, (t, s, i) => { 815 | !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) 816 | }); 817 | else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign( 818 | t.opts, { 819 | hints: !1 820 | })), $task.fetch(t).then(t => { 821 | const { 822 | statusCode: s, 823 | statusCode: i, 824 | headers: r, 825 | body: o 826 | } = t; 827 | e(null, { 828 | status: s, 829 | statusCode: i, 830 | headers: r, 831 | body: o 832 | }, o) 833 | }, t => e(t)); 834 | else if (this.isNode()) { 835 | this.initGotEnv(t); 836 | const { 837 | url: s, 838 | ...i 839 | } = t; 840 | this.got.post(s, i).then(t => { 841 | const { 842 | statusCode: s, 843 | statusCode: i, 844 | headers: r, 845 | body: o 846 | } = t; 847 | e(null, { 848 | status: s, 849 | statusCode: i, 850 | headers: r, 851 | body: o 852 | }, o) 853 | }, t => { 854 | const { 855 | message: s, 856 | response: i 857 | } = t; 858 | e(s, i, i && i.body) 859 | }) 860 | } 861 | } 862 | time(t, e = null) { 863 | const s = e ? new Date(e) : new Date; 864 | let i = { 865 | "M+": s.getMonth() + 1, 866 | "d+": s.getDate(), 867 | "H+": s.getHours(), 868 | "m+": s.getMinutes(), 869 | "s+": s.getSeconds(), 870 | "q+": Math.floor((s.getMonth() + 3) / 3), 871 | S: s.getMilliseconds() 872 | }; 873 | /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); 874 | for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? 875 | i[e] : ("00" + i[e]).substr(("" + i[e]).length))); 876 | return t 877 | } 878 | msg(e = t, s = "", i = "", r) { 879 | const o = t => { 880 | if (!t) return t; 881 | if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { 882 | "open-url": t 883 | } : this.isSurge() ? { 884 | url: t 885 | } : void 0; 886 | if ("object" == typeof t) { 887 | if (this.isLoon()) { 888 | let e = t.openUrl || t.url || t["open-url"], 889 | s = t.mediaUrl || t["media-url"]; 890 | return { 891 | openUrl: e, 892 | mediaUrl: s 893 | } 894 | } 895 | if (this.isQuanX()) { 896 | let e = t["open-url"] || t.url || t.openUrl, 897 | s = t["media-url"] || t.mediaUrl; 898 | return { 899 | "open-url": e, 900 | "media-url": s 901 | } 902 | } 903 | if (this.isSurge()) { 904 | let e = t.url || t.openUrl || t["open-url"]; 905 | return { 906 | url: e 907 | } 908 | } 909 | } 910 | }; 911 | if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && 912 | $notify(e, s, i, o(r))), !this.isMuteLog) { 913 | let t = ["", "==============📣系统通知📣=============="]; 914 | t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat( 915 | t) 916 | } 917 | } 918 | log(...t) { 919 | t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) 920 | } 921 | logErr(t, e) { 922 | const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); 923 | s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) 924 | } 925 | wait(t) { 926 | return new Promise(e => setTimeout(e, t)) 927 | } 928 | done(t = {}) { 929 | const e = (new Date).getTime(), 930 | s = (e - this.startTime) / 1e3; 931 | this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || 932 | this.isLoon()) && $done(t) 933 | } 934 | }(t, e) 935 | } -------------------------------------------------------------------------------- /zsq_JS/hsyz.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 火神椰子 app 看视频得阳光,阳光得椰子,椰子换现金,三月份出过小程序,有小伙伴应该有印象 3 | * 目前需要在公众号上注册下载App 4 | * 需要安装模块crypto-js,切记!!! 5 | * 6 | * cron 0-59/5 * * * * sofm13_qinlongjs_master/hsyz.js 7 | * 8 | * 6-19 模拟在线十分钟,自动生产椰子,无需挂着 ,corn可自定义 9 | * 10 | * ========= 青龙 ========= 11 | * 变量格式: export hsyz='phone=?&pwd=?&deviceId=?&ua=?' 多个账号用 @分割 12 | * 13 | * 关键词 api.bspapp.com ,body中的参数对应自取 14 | * 15 | * 还是不会的请百度或者群里求助: https://t.me/zsq_ql, https://t.me/zsq_sofm13 联系群主 @sofm_13 或Q群978963762来一起交流啊 16 | */ 17 | const _0x2ea86d=_0x1ed2;(function(_0xb77a23,_0x17fa80){const _0x5c3458=_0x1ed2,_0x368c07=_0xb77a23();while(!![]){try{const _0xebcef0=parseInt(_0x5c3458(0x161))/0x1+parseInt(_0x5c3458(0xf2))/0x2+parseInt(_0x5c3458(0xdc))/0x3+-parseInt(_0x5c3458(0x113))/0x4*(-parseInt(_0x5c3458(0x160))/0x5)+parseInt(_0x5c3458(0x15b))/0x6+-parseInt(_0x5c3458(0xee))/0x7+-parseInt(_0x5c3458(0x159))/0x8;if(_0xebcef0===_0x17fa80)break;else _0x368c07['push'](_0x368c07['shift']());}catch(_0x1728cb){_0x368c07['push'](_0x368c07['shift']());}}}(_0x2ef7,0xef4e1));const {unescape,escape}=require(_0x2ea86d(0x162));var CryptoJS=require(_0x2ea86d(0xe0));const $=new Env(_0x2ea86d(0x12c)),notify=$[_0x2ea86d(0x119)]()?require(_0x2ea86d(0xc4)):'',Notify=0x1,debug=0x0;let ckStr=process['env']['hsyz'],spaceId='0a99c76d-22df-40ca-80e4-371839b829e5',msg='',clientSecret=_0x2ea86d(0x152);async function tips(_0x135ae5){const _0x254e42=_0x2ea86d;console[_0x254e42(0xd4)](_0x254e42(0xb4)),console['log'](_0x254e42(0x165)),console['log'](_0x254e42(0x165)),console[_0x254e42(0xd4)]('\x0a\x20脚本测试中,有bug及时反馈!\x20\x0a'),console[_0x254e42(0xd4)](_0x254e42(0x139)+new Date(new Date()[_0x254e42(0xc3)]()+new Date()[_0x254e42(0x156)]()*0x3c*0x3e8+0x8*0x3c*0x3c*0x3e8)[_0x254e42(0x136)]()+_0x254e42(0xbd)),await wyy(),console[_0x254e42(0xd4)](_0x254e42(0xd7)+_0x135ae5[_0x254e42(0xe5)]+'\x20个账号\x20==================='),debugLog('【debug】\x20这是你的账号数组:\x0a\x20'+_0x135ae5);}var request=require('request');const {on}=require(_0x2ea86d(0x13e));!(async()=>{const _0x1de384=_0x2ea86d;let _0x3dff17=await getCks(ckStr,_0x1de384(0x166));await tips(_0x3dff17);for(let _0x58ca0d=0x0;_0x58ca0d<_0x3dff17[_0x1de384(0xe5)];_0x58ca0d++){let _0x27753c=_0x58ca0d+0x1;console[_0x1de384(0xd4)](_0x1de384(0x173)+_0x27753c+'\x20个账号】=========\x0a'),ck=_0x3dff17[_0x58ca0d];let _0x21c84b={};_0x21c84b=jsonUrl(ck),debug&&console[_0x1de384(0xd4)](_0x1de384(0x129)+_0x27753c+_0x1de384(0xcb)+ck+'\x0a'),await start(0x3*0x3e8,_0x58ca0d,_0x21c84b);}})()[_0x2ea86d(0xdb)](_0x45b21a=>$[_0x2ea86d(0x120)](_0x45b21a))['finally'](()=>$[_0x2ea86d(0xe9)]());async function start(_0x3e7aca=0x3*0x3e8,_0x325664,_0x382de8){const _0x5336a0=_0x2ea86d;console['log'](_0x382de8),console['log'](_0x5336a0(0x14a));var _0x5028a9=(await getToken(_0x3e7aca,_0x382de8))[_0x5336a0(0x107)][_0x5336a0(0x179)];await $[_0x5336a0(0x157)](0x2*0x3e8),console[_0x5336a0(0xd4)](_0x5336a0(0x144));var _0x2e19e8=(await getLoginToken(_0x3e7aca,_0x382de8,_0x5028a9))[_0x5336a0(0x107)][_0x5336a0(0xf3)];await $[_0x5336a0(0x157)](0x2*0x3e8),console['log'](_0x5336a0(0x14c));var _0x17faf9=await userInfo(_0x3e7aca,_0x382de8,_0x5028a9,_0x2e19e8);await $['wait'](0x2*0x3e8);if(_0x17faf9[_0x5336a0(0x107)]['status']){let _0x343bd0=_0x17faf9[_0x5336a0(0x107)][_0x5336a0(0x14f)][_0x5336a0(0x107)][0x0],_0x4759d6=_0x17faf9['data'][_0x5336a0(0x90)]==0x1;console[_0x5336a0(0xd4)]('用户\x20'+_0x343bd0[_0x5336a0(0x11c)]+_0x5336a0(0x16e)+_0x343bd0[_0x5336a0(0xf1)]+_0x5336a0(0x12d)+_0x343bd0[_0x5336a0(0x123)]+_0x5336a0(0x167)+(_0x4759d6?'是':'否')),console[_0x5336a0(0xd4)](_0x5336a0(0x104)),await backpack(_0x3e7aca,_0x382de8,_0x5028a9,_0x2e19e8,_0x343bd0['_id']),await $['wait'](0x2*0x3e8);for(let _0x2e7ba4=0x0;_0x2e7ba4<0x32;_0x2e7ba4++){console[_0x5336a0(0xd4)](_0x2e7ba4+0x1+_0x5336a0(0x150)),await online(_0x3e7aca,_0x382de8,_0x5028a9,_0x2e19e8,_0x343bd0[_0x5336a0(0x8c)]),await $[_0x5336a0(0x157)](0x2*0x3e8);}console['log']('开始\x20获取背包'),await backpack(_0x3e7aca,_0x382de8,_0x5028a9,_0x2e19e8,_0x343bd0[_0x5336a0(0x8c)]),await $['wait'](0x2*0x3e8);}}const initRequestUrl=()=>{const _0x1468f4=_0x2ea86d;return _0x1468f4(0x117);},initRequestHeaders=function(_0x1cd838,_0x41e844,_0xe4ad14){return{'x-basement-token':_0xe4ad14,'x-serverless-sign':_0x1cd838,'content-Type':'application/json','user-agent':_0x41e844};},initRequestNoTokenHeaders=function(_0x318b0b,_0x576acc){const _0x3033a2=_0x2ea86d;return{'Host':_0x3033a2(0x10c),'x-serverless-sign':_0x318b0b,'content-Type':_0x3033a2(0x142),'user-agent':_0x576acc,'origin':_0x3033a2(0x98),'x-requested-with':_0x3033a2(0x133),'referer':_0x3033a2(0x101)};},getNow=function(){const _0x222599=_0x2ea86d;return Math[_0x222599(0x94)](new Date());},defaultBody=function(){return{'sign':ckProps['sign']};};function jsonUrl(_0x30d082){const _0x318669=_0x2ea86d;var _0x1f79ce={};return _0x30d082[_0x318669(0x10a)]('&')[_0x318669(0xae)](function(_0x1b5515){const _0x2223ae=_0x318669;var _0x36d806=_0x1b5515[_0x2223ae(0x10a)]('=');_0x1f79ce[_0x36d806[0x0]]=decodeURIComponent(_0x36d806[0x1]);}),_0x1f79ce;}async function online(_0x2a6d5e=0x3*0x3e8,_0x4354bf,_0x2a1cdf,_0x3f3c0a,_0x524d5a){const _0x246e3a=_0x2ea86d;console[_0x246e3a(0xd4)]('开始模拟在线');var _0x35afcc=Math[_0x246e3a(0x94)](new Date()/0x3e8);let _0x462ce2={'method':_0x246e3a(0x95),'params':_0x246e3a(0x108)+_0x524d5a+_0x246e3a(0xc2)+_0x4354bf[_0x246e3a(0x8f)]+'\x22,\x22SDKVersion\x22:\x22\x22,\x22appId\x22:\x22__UNI__44A9708\x22,\x22appLanguage\x22:\x22zh-Hans\x22,\x22appName\x22:\x22火神椰子\x22,\x22appVersion\x22:\x221.0.0\x22,\x22appVersionCode\x22:\x22100\x22,\x22browserName\x22:\x22chrome\x22,\x22browserVersion\x22:\x22100.0.4896.127\x22,\x22deviceId\x22:\x22'+_0x4354bf[_0x246e3a(0x8f)]+_0x246e3a(0x11e)+_0x4354bf['ua']+_0x246e3a(0xb3),'spaceId':'0a99c76d-22df-40ca-80e4-371839b829e5','timestamp':Math['round'](new Date()),'token':_0x2a1cdf},_0x4516fe={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x462ce2,clientSecret),_0x4354bf['ua'],_0x2a1cdf),'body':JSON[_0x246e3a(0xfd)](_0x462ce2)},_0x471720=await requestPost(_0x4516fe,_0x246e3a(0x97),_0x2a6d5e);flagApi(_0x471720);if(_0x471720[_0x246e3a(0x107)]['code']==0x0)for(let _0x1ce6dc of _0x471720['data'][_0x246e3a(0x107)]){console[_0x246e3a(0xd4)]('id'+_0x1ce6dc[_0x246e3a(0x8c)]+'\x20'+_0x1ce6dc['mark']+_0x246e3a(0xfc)+_0x1ce6dc['up']+_0x246e3a(0x112)+_0x1ce6dc['status']+_0x246e3a(0xa6)+_0x1ce6dc[_0x246e3a(0x175)]+_0x246e3a(0x11d)+_0x1ce6dc[_0x246e3a(0x170)]),await landOne(_0x2a6d5e,_0x4354bf,_0x2a1cdf,_0x3f3c0a,_0x524d5a,_0x1ce6dc[_0x246e3a(0x8c)],_0x1ce6dc[_0x246e3a(0xd3)]),await $[_0x246e3a(0x157)](0x1*0x3e8),_0x1ce6dc[_0x246e3a(0xcf)]==0x3&&await landCut(_0x2a6d5e,_0x4354bf,_0x2a1cdf,_0x3f3c0a,_0x524d5a,_0x1ce6dc[_0x246e3a(0x8c)],_0x1ce6dc[_0x246e3a(0xd3)],'施肥'),_0x1ce6dc[_0x246e3a(0xcf)]!=0x1&&_0x1ce6dc['number']>0x4&&await landCut(_0x2a6d5e,_0x4354bf,_0x2a1cdf,_0x3f3c0a,_0x524d5a,_0x1ce6dc['_id'],_0x1ce6dc[_0x246e3a(0xd3)],'收割');}}function _0x1ed2(_0x42155b,_0x4c05f3){const _0x2ef79b=_0x2ef7();return _0x1ed2=function(_0x1ed281,_0x338686){_0x1ed281=_0x1ed281-0x8b;let _0x212c6b=_0x2ef79b[_0x1ed281];return _0x212c6b;},_0x1ed2(_0x42155b,_0x4c05f3);}async function landOne(_0x13fa81=0x3*0x3e8,_0x3d9bc4,_0x45625f,_0x4a9c50,_0x55ee18,_0x568461,_0x51188f){const _0x5d4525=_0x2ea86d;console['log'](_0x5d4525(0x177)+_0x51188f);var _0x3695a6=Math[_0x5d4525(0x94)](new Date()/0x3e8);let _0x1fb51b={'method':'serverless.function.runtime.invoke','params':_0x5d4525(0x15a)+_0x55ee18+_0x5d4525(0x11b)+_0x4a9c50+_0x5d4525(0x115)+_0x568461+_0x5d4525(0xb5)+_0x51188f+_0x5d4525(0x15f)+_0x3d9bc4[_0x5d4525(0x8f)]+_0x5d4525(0x149)+_0x3d9bc4[_0x5d4525(0x8f)]+_0x5d4525(0x11e)+_0x3d9bc4['ua']+'\x22,\x22uniCompileVersion\x22:\x223.4.15\x22,\x22uniPlatform\x22:\x22web\x22,\x22uniRuntimeVersion\x22:\x223.4.15\x22,\x22version\x22:\x22\x22,\x22windowBottom\x22:0,\x22windowHeight\x22:748,\x22windowTop\x22:0,\x22windowWidth\x22:360,\x22locale\x22:\x22zh-Hans\x22,\x22LOCALE\x22:\x22zh-Hans\x22}}}','spaceId':_0x5d4525(0xc0),'timestamp':Math['round'](new Date()),'token':_0x45625f},_0x362945={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x1fb51b,clientSecret),_0x3d9bc4['ua'],_0x45625f),'body':JSON['stringify'](_0x1fb51b)},_0xc31042=await requestPost(_0x362945,_0x5d4525(0xa0),_0x13fa81);flagApi(_0xc31042);}async function landCut(_0x5a5e1f=0x3*0x3e8,_0x4d3c15,_0x37a861,_0x48b266,_0x49d23a,_0x36b46d,_0x5a7725,_0x47d89c){const _0x21557f=_0x2ea86d;console[_0x21557f(0xd4)]('\x20'+_0x5a7725+_0x21557f(0x147)+_0x47d89c);let _0x3163ae={'method':_0x21557f(0x95),'params':_0x21557f(0xc1)+_0x49d23a+'\x22,\x22token\x22:\x22'+_0x48b266+_0x21557f(0x115)+_0x36b46d+_0x21557f(0xb5)+_0x5a7725+',\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22'+_0x4d3c15[_0x21557f(0x8f)]+_0x21557f(0x149)+_0x4d3c15[_0x21557f(0x8f)]+_0x21557f(0x11e)+_0x4d3c15['ua']+'\x22,\x22uniCompileVersion\x22:\x223.4.15\x22,\x22uniPlatform\x22:\x22web\x22,\x22uniRuntimeVersion\x22:\x223.4.15\x22,\x22version\x22:\x22\x22,\x22windowBottom\x22:0,\x22windowHeight\x22:748,\x22windowTop\x22:0,\x22windowWidth\x22:360,\x22locale\x22:\x22zh-Hans\x22,\x22LOCALE\x22:\x22zh-Hans\x22}}}','spaceId':_0x21557f(0xc0),'timestamp':Math['round'](new Date()),'token':_0x37a861},_0x304349={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x3163ae,clientSecret),_0x4d3c15['ua'],_0x37a861),'body':JSON[_0x21557f(0xfd)](_0x3163ae)},_0x382f58=await requestPost(_0x304349,_0x47d89c,_0x5a5e1f);flagApi(_0x382f58);}async function backpack(_0x34cb38=0x3*0x3e8,_0x1f893a,_0x248436,_0x39883c,_0xdc616d){const _0x3fa229=_0x2ea86d;let _0x210f88={'method':_0x3fa229(0x95),'params':_0x3fa229(0xd6)+_0xdc616d+'\x22,\x22token\x22:\x22'+_0x39883c+_0x3fa229(0x93)+_0x1f893a[_0x3fa229(0x8f)]+_0x3fa229(0x149)+_0x1f893a[_0x3fa229(0x8f)]+'\x22,\x22deviceModel\x22:\x22IN2020\x22,\x22deviceOrientation\x22:\x22portrait\x22,\x22devicePixelRatio\x22:4,\x22deviceType\x22:\x22phone\x22,\x22hostLanguage\x22:\x22zh-CN\x22,\x22hostName\x22:\x22chrome\x22,\x22hostVersion\x22:\x22100.0.4896.127\x22,\x22language\x22:\x22zh-CN\x22,\x22model\x22:\x22IN2020\x22,\x22osName\x22:\x22android\x22,\x22osVersion\x22:\x2212\x22,\x22pixelRatio\x22:4,\x22platform\x22:\x22android\x22,\x22safeArea\x22:{\x22left\x22:0,\x22right\x22:360,\x22top\x22:0,\x22bottom\x22:748,\x22width\x22:360,\x22height\x22:748},\x22safeAreaInsets\x22:{\x22top\x22:0,\x22right\x22:0,\x22bottom\x22:0,\x22left\x22:0},\x22screenHeight\x22:792,\x22screenWidth\x22:360,\x22statusBarHeight\x22:0,\x22system\x22:\x22Android\x2012\x22,\x22ua\x22:\x22'+_0x1f893a['ua']+_0x3fa229(0xb3),'spaceId':_0x3fa229(0xc0),'timestamp':Math[_0x3fa229(0x94)](new Date()),'token':_0x248436},_0xce956f={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x210f88,clientSecret),_0x1f893a['ua'],_0x248436),'body':JSON[_0x3fa229(0xfd)](_0x210f88)},_0xff929a=await requestPost(_0xce956f,'背包',_0x34cb38);flagApi(_0xff929a);var _0x77ca78=_0xff929a[_0x3fa229(0x107)]['backpack'][_0x3fa229(0x107)][0x0];console[_0x3fa229(0xd4)]('种子\x20'+_0x77ca78[_0x3fa229(0xe6)]+_0x3fa229(0xe7)+_0x77ca78['coconut']+_0x3fa229(0x10d)+_0x77ca78[_0x3fa229(0x128)]);}async function ad(_0x46c80c=0x3*0x3e8,_0x21c12d,_0x747afc,_0x10495c,_0x10cb70){const _0x53840a=_0x2ea86d;console[_0x53840a(0xd4)](_0x53840a(0x145));var _0x3569be=Math[_0x53840a(0x94)](new Date()/0x3e8);let _0x4862b3={'method':_0x53840a(0x95),'params':_0x53840a(0x140)+_0x3569be+_0x53840a(0xc8)+_0x21c12d[_0x53840a(0x8f)]+_0x53840a(0x114)+_0x21c12d['deviceId']+_0x53840a(0x149)+_0x21c12d[_0x53840a(0x8f)]+_0x53840a(0x11e)+_0x21c12d['ua']+_0x53840a(0xb3),'spaceId':_0x53840a(0xc0),'timestamp':Math[_0x53840a(0x94)](new Date()),'token':_0x747afc},_0x5c1791={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x4862b3,clientSecret),_0x21c12d['ua'],_0x747afc),'body':JSON[_0x53840a(0xfd)](_0x4862b3)},_0x400602=await requestPost(_0x5c1791,_0x53840a(0x124),_0x46c80c);flagApi(_0x400602),await $[_0x53840a(0x157)](0x1*0x3e8);var _0x22fddc=Math[_0x53840a(0x94)](new Date()/0x3e8);_0x4862b3={'method':_0x53840a(0x95),'params':_0x53840a(0xf4)+_0x10cb70+_0x53840a(0x11b)+_0x10495c+_0x53840a(0x93)+_0x21c12d[_0x53840a(0x8f)]+_0x53840a(0x149)+_0x21c12d[_0x53840a(0x8f)]+_0x53840a(0x11e)+_0x21c12d['ua']+_0x53840a(0xb3),'spaceId':_0x53840a(0xc0),'timestamp':Math[_0x53840a(0x94)](new Date()),'token':_0x747afc},_0x5c1791={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x4862b3,clientSecret),_0x21c12d['ua'],_0x747afc),'body':JSON[_0x53840a(0xfd)](_0x4862b3)},console[_0x53840a(0xd4)](_0x53840a(0xb8)),_0x400602=await requestPost(_0x5c1791,'领取阳光',_0x46c80c),flagApi(_0x400602);if(_0x400602[_0x53840a(0x107)][_0x53840a(0xcf)]){console['log'](_0x53840a(0x169)),await $[_0x53840a(0x157)](0x5*0x3e8);var _0x4e5ea7=Math[_0x53840a(0x94)](new Date()/0x3e8);_0x4862b3={'method':_0x53840a(0x95),'params':_0x53840a(0x140)+_0x4e5ea7+_0x53840a(0xa9)+_0x4e5ea7+',\x5c\x22ttn\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22ttpj\x5c\x22:\x5c\x22激励广告\x5c\x22,\x5c\x22ttc\x5c\x22:\x5c\x22\x5c\x22}]\x22}],\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22'+_0x21c12d['deviceId']+_0x53840a(0x149)+_0x21c12d['deviceId']+_0x53840a(0x11e)+_0x21c12d['ua']+_0x53840a(0xb3),'spaceId':_0x53840a(0xc0),'timestamp':Math[_0x53840a(0x94)](new Date()),'token':_0x747afc},_0x5c1791={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x4862b3,clientSecret),_0x21c12d['ua'],_0x747afc),'body':JSON[_0x53840a(0xfd)](_0x4862b3)},_0x400602=await requestPost(_0x5c1791,_0x53840a(0x10e),_0x46c80c),flagApi(_0x400602),console[_0x53840a(0xd4)](_0x53840a(0x16c)),await $['wait'](0x3c*0x3e8);var _0x8c1836=Math[_0x53840a(0x94)](new Date()/0x3e8);_0x4862b3={'method':'serverless.function.runtime.invoke','params':_0x53840a(0x140)+_0x8c1836+_0x53840a(0xff)+_0x8c1836+_0x53840a(0xfa)+_0x21c12d[_0x53840a(0x8f)]+_0x53840a(0x149)+_0x21c12d[_0x53840a(0x8f)]+_0x53840a(0x11e)+_0x21c12d['ua']+'\x22,\x22uniCompileVersion\x22:\x223.4.15\x22,\x22uniPlatform\x22:\x22web\x22,\x22uniRuntimeVersion\x22:\x223.4.15\x22,\x22version\x22:\x22\x22,\x22windowBottom\x22:0,\x22windowHeight\x22:748,\x22windowTop\x22:0,\x22windowWidth\x22:360,\x22locale\x22:\x22zh-Hans\x22,\x22LOCALE\x22:\x22zh-Hans\x22}}}','spaceId':'0a99c76d-22df-40ca-80e4-371839b829e5','timestamp':Math[_0x53840a(0x94)](new Date()),'token':_0x747afc},_0x5c1791={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x4862b3,clientSecret),_0x21c12d['ua'],_0x747afc),'body':JSON['stringify'](_0x4862b3)},_0x400602=await requestPost(_0x5c1791,_0x53840a(0x9c),_0x46c80c),flagApi(_0x400602);}}function _0x2ef7(){const _0x2e410e=['reduce','地\x20速度','stringify','existsSync',',\x22requests\x22:\x22[{\x5c\x22ak\x5c\x22:\x5c\x22__UNI__44A9708\x5c\x22,\x5c\x22uuid\x5c\x22:\x5c\x2216550839849781887682\x5c\x22,\x5c\x22p\x5c\x22:\x5c\x22a\x5c\x22,\x5c\x22lt\x5c\x22:\x5c\x2211\x5c\x22,\x5c\x22ut\x5c\x22:\x5c\x22h5\x5c\x22,\x5c\x22url\x5c\x22:\x5c\x22/pages/ad/index?type=%E9%A2%86%E5%8F%96%E9%98%B3%E5%85%89\x5c\x22,\x5c\x22tt\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22urlref\x5c\x22:\x5c\x22/pages/ad/index?type=%E9%A2%86%E5%8F%96%E9%98%B3%E5%85%89\x5c\x22,\x5c\x22urlref_ts\x5c\x22:1,\x5c\x22ch\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22usv\x5c\x22:\x5c\x223.4.15\x5c\x22,\x5c\x22t\x5c\x22:','GITHUB','\x20https://h5.huoshenyezi.cn/','content','HmacMD5','开始\x20获取背包','path','post','data','{\x22functionTarget\x22:\x22DCloud-clientDB\x22,\x22functionArgs\x22:{\x22command\x22:{\x22$db\x22:[{\x22$method\x22:\x22collection\x22,\x22$param\x22:[\x22land\x22]},{\x22$method\x22:\x22where\x22,\x22$param\x22:[\x22uid==\x27','.$1','split',',\x20结束!\x20🕛\x20','api.bspapp.com','\x20肥料','ad2','======','map','Cookie','\x20状态','8kYcZTk','\x5c\x22,\x5c\x22p\x5c\x22:\x5c\x22a\x5c\x22,\x5c\x22lt\x5c\x22:\x5c\x2211\x5c\x22,\x5c\x22ut\x5c\x22:\x5c\x22h5\x5c\x22,\x5c\x22url\x5c\x22:\x5c\x22/pages/ad/index?type=%E9%A2%86%E5%8F%96%E9%98%B3%E5%85%89\x5c\x22,\x5c\x22tt\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22urlref\x5c\x22:\x5c\x22pages/index/index\x5c\x22,\x5c\x22urlref_ts\x5c\x22:1,\x5c\x22ch\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22usv\x5c\x22:\x5c\x223.4.15\x5c\x22,\x5c\x22t\x5c\x22:1655194649,\x5c\x22ttn\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22ttpj\x5c\x22:\x5c\x22激励广告\x5c\x22,\x5c\x22ttc\x5c\x22:\x5c\x22\x5c\x22},{\x5c\x22ak\x5c\x22:\x5c\x22__UNI__44A9708\x5c\x22,\x5c\x22uuid\x5c\x22:\x5c\x2216550839849781887682\x5c\x22,\x5c\x22p\x5c\x22:\x5c\x22a\x5c\x22,\x5c\x22lt\x5c\x22:\x5c\x2211\x5c\x22,\x5c\x22ut\x5c\x22:\x5c\x22h5\x5c\x22,\x5c\x22url\x5c\x22:\x5c\x22pages/index/index\x5c\x22,\x5c\x22tt\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22urlref\x5c\x22:\x5c\x22/pages/ad/index?type=%E9%A2%86%E5%8F%96%E9%98%B3%E5%85%89\x5c\x22,\x5c\x22urlref_ts\x5c\x22:1,\x5c\x22ch\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22usv\x5c\x22:\x5c\x223.4.15\x5c\x22,\x5c\x22t\x5c\x22:1655194649,\x5c\x22ttn\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22ttpj\x5c\x22:\x5c\x22火神椰子\x5c\x22,\x5c\x22ttc\x5c\x22:\x5c\x22\x5c\x22}]\x22}],\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22','\x22,\x22landId\x22:\x22','isQuanX','https://api.bspapp.com/client','then','isNode','dataFile','\x22,\x22token\x22:\x22','nickName','\x20时间','\x22,\x22deviceModel\x22:\x22IN2020\x22,\x22deviceOrientation\x22:\x22portrait\x22,\x22devicePixelRatio\x22:4,\x22deviceType\x22:\x22phone\x22,\x22hostLanguage\x22:\x22zh-CN\x22,\x22hostName\x22:\x22chrome\x22,\x22hostVersion\x22:\x22100.0.4896.127\x22,\x22language\x22:\x22zh-CN\x22,\x22model\x22:\x22IN2020\x22,\x22osName\x22:\x22android\x22,\x22osVersion\x22:\x2212\x22,\x22pixelRatio\x22:4,\x22platform\x22:\x22android\x22,\x22safeArea\x22:{\x22left\x22:0,\x22right\x22:360,\x22top\x22:0,\x22bottom\x22:748,\x22width\x22:360,\x22height\x22:748},\x22safeAreaInsets\x22:{\x22top\x22:0,\x22right\x22:0,\x22bottom\x22:0,\x22left\x22:0},\x22screenHeight\x22:792,\x22screenWidth\x22:360,\x22statusBarHeight\x22:0,\x22system\x22:\x22Android\x2012\x22,\x22ua\x22:\x22','logs','logErr','*/*','test','sunlight','ad1','getDate','GET','charCodeAt','fertilizer','\x0a\x20【debug】\x20这是你第\x20','cktough','concat','火神椰子','\x20阳光','exec','timeout','body','parse','请求成功\x20🎉','uni.UNI44A9708','getval','charAt','toLocaleString','\x22,\x22password\x22:\x22','loaddata','\x0a================================================\x0a脚本执行\x20-\x20北京时间(UTC+8):\x20','writedata','string','sort','用户信息','events','\x20返回data==============','{\x22functionTarget\x22:\x22uni-stat-receiver\x22,\x22functionArgs\x22:{\x22method\x22:\x22report\x22,\x22params\x22:[{\x22usv\x22:\x223.4.15\x22,\x22t\x22:','openUrl','application/json','http://','开始\x20获取登录用户token','开始ad1','slice','\x20地\x20','】:未填写变量\x20','\x22,\x22SDKVersion\x22:\x22\x22,\x22appId\x22:\x22__UNI__44A9708\x22,\x22appLanguage\x22:\x22zh-Hans\x22,\x22appName\x22:\x22火神椰子\x22,\x22appVersion\x22:\x221.0.0\x22,\x22appVersionCode\x22:\x22100\x22,\x22browserName\x22:\x22chrome\x22,\x22browserVersion\x22:\x22100.0.4896.127\x22,\x22deviceId\x22:\x22','开始\x20获取云函数token','read','开始\x20获取用户信息','msg','call','users','\x20开始\x20模拟在线','stack','s+mW8c6njUbfASuKBySqsA==','setval','application/x-www-form-urlencoded','POST','getTimezoneOffset','wait','cookieJar','32825688mxMgWi','{\x22functionTarget\x22:\x22landOne\x22,\x22functionArgs\x22:{\x22uid\x22:\x22','8191224MruOWC','callee','setdata','runScript',',\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22','2553470AJpVeD','1178590lpYvfu','querystring','resolve','substr','\x0a\x20脚本测试中,有bug及时反馈!\x20\x0a','hsyz','\x20今日签到:','lodash_get','开始ad2','join','\x0a\x0a\x20【debug】===============这是\x20','开始ad3','music','\x20余额','toString','time','isLoon','floor','\x0a=========\x20开始【第\x20','open-url','number','setjson','椰子请求\x20','env','accessToken','Content-Length','{\x22functionTarget\x22:\x22Ad\x22,\x22functionArgs\x22:{\x22type\x22:\x22每日签到\x22,\x22uid\x22:\x22','_id','isSurge','random','deviceId','signinAd','abs','writeFileSync','\x22,\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22','round','serverless.function.runtime.invoke','完成签到','模拟在线','https://h5.huoshenyezi.cn','@chavy_boxjs_userCfgs.httpapi_timeout','startTime','==============📣系统通知📣==============','ad3','statusCode','getdata','{\x22functionTarget\x22:\x22Users\x22,\x22functionArgs\x22:{\x22token\x22:\x22','椰子请求','\x0a\x20【','name','phone','ckjar','replace','\x20数量','\x0a\x20【debug】===============\x20这是\x20','serverless.auth.user.anonymousAuthorize',',\x22requests\x22:\x22[{\x5c\x22ak\x5c\x22:\x5c\x22__UNI__44A9708\x5c\x22,\x5c\x22uuid\x5c\x22:\x5c\x2216550839849781887682\x5c\x22,\x5c\x22p\x5c\x22:\x5c\x22a\x5c\x22,\x5c\x22lt\x5c\x22:\x5c\x223\x5c\x22,\x5c\x22ut\x5c\x22:\x5c\x22h5\x5c\x22,\x5c\x22urlref\x5c\x22:\x5c\x22/pages/ad/index?type=%E9%A2%86%E5%8F%96%E9%98%B3%E5%85%89\x5c\x22,\x5c\x22urlref_ts\x5c\x22:1,\x5c\x22ch\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22usv\x5c\x22:\x5c\x223.4.15\x5c\x22,\x5c\x22t\x5c\x22:','media-url','success','getMinutes','undefined','forEach','opts','http','isMute',',\x20开始!','\x22,\x22uniCompileVersion\x22:\x223.4.15\x22,\x22uniPlatform\x22:\x22web\x22,\x22uniRuntimeVersion\x22:\x223.4.15\x22,\x22version\x22:\x22\x22,\x22windowBottom\x22:0,\x22windowHeight\x22:748,\x22windowTop\x22:0,\x22windowWidth\x22:360,\x22locale\x22:\x22zh-Hans\x22,\x22LOCALE\x22:\x22zh-Hans\x22}}}','\x0a版本:\x200.4\x20--\x2022/5/3','\x22,\x22landMark\x22:','exports','getScript','开始创建领取阳光','获取登录用户token','initGotEnv','/v1/scripting/evaluate','set-cookie','\x20\x0a================================================\x0a','getMilliseconds','sendNotify','0a99c76d-22df-40ca-80e4-371839b829e5','{\x22functionTarget\x22:\x22landCut\x22,\x22functionArgs\x22:{\x22uid\x22:\x22','\x27\x22]},{\x22$method\x22:\x22skip\x22,\x22$param\x22:[0]},{\x22$method\x22:\x22limit\x22,\x22$param\x22:[20]},{\x22$method\x22:\x22get\x22,\x22$param\x22:[{}]}]},\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22','getTime','./sendNotify','fetch','fromCharCode','lodash_set',',\x22requests\x22:\x22[{\x5c\x22ak\x5c\x22:\x5c\x22__UNI__44A9708\x5c\x22,\x5c\x22uuid\x5c\x22:\x5c\x22','请求失败\x20❌','keys','\x20账号信息:\x0a\x20','\x0a\x20【网抑云时间】:\x20','get','trim','status','getjson','got','toStr','mark','log','setValueForKey','{\x22functionTarget\x22:\x22Statistics\x22,\x22functionArgs\x22:{\x22type\x22:\x22backpack\x22,\x22uid\x22:\x22','\x0a===================\x20共找到\x20','开始完成签到','send',',\x20错误!','catch','5067045ICyQuH','url','getMonth','logSeparator','crypto-js','getFullYear','cwd','Content-Type','mediaUrl','length','seed','\x20椰子','\x20请求\x20url\x20===============','done','exit','assign','isNeedRewrite','headers','6182967YOAdUL','getHours','push','money','1424976hAGSig','token','{\x22functionTarget\x22:\x22Ad\x22,\x22functionArgs\x22:{\x22type\x22:\x22领取阳光\x22,\x22uid\x22:\x22','{\x22functionTarget\x22:\x22Login\x22,\x22functionArgs\x22:{\x22phone\x22:\x22','write','redirect','match','method',',\x5c\x22ttn\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22ttpj\x5c\x22:\x5c\x22激励广告\x5c\x22,\x5c\x22ttc\x5c\x22:\x5c\x22\x5c\x22}]\x22}],\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22'];_0x2ef7=function(){return _0x2e410e;};return _0x2ef7();}async function sign(_0x23b012=0x3*0x3e8,_0x2fcb19,_0x5a26e5,_0x3c9871,_0x243c81){const _0xc43875=_0x2ea86d;let _0xb13abf={'method':_0xc43875(0x95),'params':_0xc43875(0x8b)+_0x243c81+'\x22,\x22token\x22:\x22'+_0x3c9871+_0xc43875(0x93)+_0x2fcb19['deviceId']+_0xc43875(0x149)+_0x2fcb19[_0xc43875(0x8f)]+_0xc43875(0x11e)+_0x2fcb19['ua']+'\x22,\x22uniCompileVersion\x22:\x223.4.15\x22,\x22uniPlatform\x22:\x22web\x22,\x22uniRuntimeVersion\x22:\x223.4.15\x22,\x22version\x22:\x22\x22,\x22windowBottom\x22:0,\x22windowHeight\x22:748,\x22windowTop\x22:0,\x22windowWidth\x22:360,\x22locale\x22:\x22zh-Hans\x22,\x22LOCALE\x22:\x22zh-Hans\x22}}}','spaceId':_0xc43875(0xc0),'timestamp':Math['round'](new Date())-0x64,'token':_0x5a26e5},_0x22472c={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0xb13abf,clientSecret),_0x2fcb19['ua'],_0x5a26e5),'body':JSON[_0xc43875(0xfd)](_0xb13abf)};console[_0xc43875(0xd4)]('开始创建签到');let _0x184d4b=await requestPost(_0x22472c,'创建签到',_0x23b012);flagApi(_0x184d4b);if(_0x184d4b['data']['status']){console['log'](_0xc43875(0xd8)),await $[_0xc43875(0x157)](0x1e*0x3e8);var _0x1e32be=Math['round'](new Date()/0x3e8);_0xb13abf={'method':_0xc43875(0x95),'params':'{\x22functionTarget\x22:\x22uni-stat-receiver\x22,\x22functionArgs\x22:{\x22method\x22:\x22report\x22,\x22params\x22:[{\x22usv\x22:\x223.4.15\x22,\x22t\x22:'+_0x1e32be+_0xc43875(0xc8)+_0x2fcb19[_0xc43875(0x8f)]+'\x5c\x22,\x5c\x22p\x5c\x22:\x5c\x22a\x5c\x22,\x5c\x22lt\x5c\x22:\x5c\x223\x5c\x22,\x5c\x22ut\x5c\x22:\x5c\x22h5\x5c\x22,\x5c\x22urlref\x5c\x22:\x5c\x22pages/index/index\x5c\x22,\x5c\x22urlref_ts\x5c\x22:1,\x5c\x22ch\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22usv\x5c\x22:\x5c\x223.4.15\x5c\x22,\x5c\x22t\x5c\x22:'+_0x1e32be+',\x5c\x22ttn\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22ttpj\x5c\x22:\x5c\x22火神椰子\x5c\x22,\x5c\x22ttc\x5c\x22:\x5c\x22\x5c\x22},{\x5c\x22ak\x5c\x22:\x5c\x22__UNI__44A9708\x5c\x22,\x5c\x22uuid\x5c\x22:\x5c\x22'+_0x2fcb19[_0xc43875(0x8f)]+'\x5c\x22,\x5c\x22p\x5c\x22:\x5c\x22a\x5c\x22,\x5c\x22lt\x5c\x22:\x5c\x2211\x5c\x22,\x5c\x22ut\x5c\x22:\x5c\x22h5\x5c\x22,\x5c\x22url\x5c\x22:\x5c\x22/pages/ad/index?type=%E6%AF%8F%E6%97%A5%E7%AD%BE%E5%88%B0\x5c\x22,\x5c\x22tt\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22urlref\x5c\x22:\x5c\x22pages/index/index\x5c\x22,\x5c\x22urlref_ts\x5c\x22:1,\x5c\x22ch\x5c\x22:\x5c\x22\x5c\x22,\x5c\x22usv\x5c\x22:\x5c\x223.4.15\x5c\x22,\x5c\x22t\x5c\x22:'+(_0x1e32be-0x1)+_0xc43875(0xfa)+_0x2fcb19['deviceId']+'\x22,\x22SDKVersion\x22:\x22\x22,\x22appId\x22:\x22__UNI__44A9708\x22,\x22appLanguage\x22:\x22zh-Hans\x22,\x22appName\x22:\x22火神椰子\x22,\x22appVersion\x22:\x221.0.0\x22,\x22appVersionCode\x22:\x22100\x22,\x22browserName\x22:\x22chrome\x22,\x22browserVersion\x22:\x22100.0.4896.127\x22,\x22deviceId\x22:\x22'+_0x2fcb19[_0xc43875(0x8f)]+'\x22,\x22deviceModel\x22:\x22IN2020\x22,\x22deviceOrientation\x22:\x22portrait\x22,\x22devicePixelRatio\x22:4,\x22deviceType\x22:\x22phone\x22,\x22hostLanguage\x22:\x22zh-CN\x22,\x22hostName\x22:\x22chrome\x22,\x22hostVersion\x22:\x22100.0.4896.127\x22,\x22language\x22:\x22zh-CN\x22,\x22model\x22:\x22IN2020\x22,\x22osName\x22:\x22android\x22,\x22osVersion\x22:\x2212\x22,\x22pixelRatio\x22:4,\x22platform\x22:\x22android\x22,\x22safeArea\x22:{\x22left\x22:0,\x22right\x22:360,\x22top\x22:0,\x22bottom\x22:748,\x22width\x22:360,\x22height\x22:748},\x22safeAreaInsets\x22:{\x22top\x22:0,\x22right\x22:0,\x22bottom\x22:0,\x22left\x22:0},\x22screenHeight\x22:792,\x22screenWidth\x22:360,\x22statusBarHeight\x22:0,\x22system\x22:\x22Android\x2012\x22,\x22ua\x22:\x22'+_0x2fcb19['ua']+'\x22,\x22uniCompileVersion\x22:\x223.4.15\x22,\x22uniPlatform\x22:\x22web\x22,\x22uniRuntimeVersion\x22:\x223.4.15\x22,\x22version\x22:\x22\x22,\x22windowBottom\x22:0,\x22windowHeight\x22:748,\x22windowTop\x22:0,\x22windowWidth\x22:360,\x22locale\x22:\x22zh-Hans\x22,\x22LOCALE\x22:\x22zh-Hans\x22}}}','spaceId':'0a99c76d-22df-40ca-80e4-371839b829e5','timestamp':Math['round'](new Date())-0x64,'token':_0x5a26e5},_0x22472c={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0xb13abf,clientSecret),_0x2fcb19['ua'],_0x5a26e5),'body':JSON[_0xc43875(0xfd)](_0xb13abf)},_0x184d4b=await requestPost(_0x22472c,_0xc43875(0x96),_0x23b012),flagApi(_0x184d4b);}else console['log']('签到失败');}async function userInfo(_0x242c3a=0x3*0x3e8,_0x36ebad,_0x29b5cf,_0x5ca7ee){const _0x178382=_0x2ea86d;let _0x423f5d={'method':_0x178382(0x95),'params':_0x178382(0x9f)+_0x5ca7ee+'\x22,\x22clientInfo\x22:{\x22PLATFORM\x22:\x22web\x22,\x22OS\x22:\x22android\x22,\x22APPID\x22:\x22__UNI__44A9708\x22,\x22DEVICEID\x22:\x22'+_0x36ebad[_0x178382(0x8f)]+_0x178382(0x149)+_0x36ebad[_0x178382(0x8f)]+'\x22,\x22deviceModel\x22:\x22IN2020\x22,\x22deviceOrientation\x22:\x22portrait\x22,\x22devicePixelRatio\x22:4,\x22deviceType\x22:\x22phone\x22,\x22hostLanguage\x22:\x22zh-CN\x22,\x22hostName\x22:\x22chrome\x22,\x22hostVersion\x22:\x22100.0.4896.127\x22,\x22language\x22:\x22zh-CN\x22,\x22model\x22:\x22IN2020\x22,\x22osName\x22:\x22android\x22,\x22osVersion\x22:\x2212\x22,\x22pixelRatio\x22:4,\x22platform\x22:\x22android\x22,\x22safeArea\x22:{\x22left\x22:0,\x22right\x22:360,\x22top\x22:0,\x22bottom\x22:748,\x22width\x22:360,\x22height\x22:748},\x22safeAreaInsets\x22:{\x22top\x22:0,\x22right\x22:0,\x22bottom\x22:0,\x22left\x22:0},\x22screenHeight\x22:792,\x22screenWidth\x22:360,\x22statusBarHeight\x22:0,\x22system\x22:\x22Android\x2012\x22,\x22ua\x22:\x22'+_0x36ebad['ua']+_0x178382(0xb3),'spaceId':_0x178382(0xc0),'timestamp':Math[_0x178382(0x94)](new Date())-0x64,'token':_0x29b5cf},_0x2144cd={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x423f5d,clientSecret),_0x36ebad['ua'],_0x29b5cf),'body':JSON['stringify'](_0x423f5d)},_0x501bb2=await requestPost(_0x2144cd,_0x178382(0x13d),_0x242c3a);flagApi(_0x501bb2),console[_0x178382(0xd4)](_0x501bb2[_0x178382(0x107)]);if(_0x501bb2[_0x178382(0x107)][_0x178382(0xcf)]){let _0x2fee6f=_0x501bb2['data'][_0x178382(0x14f)][_0x178382(0x107)][0x0],_0x5f25e5=_0x501bb2[_0x178382(0x107)][_0x178382(0x90)]==0x1;console[_0x178382(0xd4)]('用户\x20'+_0x2fee6f[_0x178382(0x11c)]+_0x178382(0x16e)+_0x2fee6f['money']+'\x20阳光'+_0x2fee6f[_0x178382(0x123)]+_0x178382(0x167)+(_0x5f25e5?'是':'否'));}return new Promise(_0x4d8f33=>{_0x4d8f33(_0x501bb2);});}async function getLoginToken(_0x24c8b2=0x3*0x3e8,_0x4ffaa2,_0x3069e1){const _0x23afd2=_0x2ea86d;var _0x31e9f1={'method':_0x23afd2(0x95),'params':_0x23afd2(0xf5)+_0x4ffaa2[_0x23afd2(0xa3)]+_0x23afd2(0x137)+_0x4ffaa2['pwd']+_0x23afd2(0x93)+_0x4ffaa2[_0x23afd2(0x8f)]+_0x23afd2(0x149)+_0x4ffaa2[_0x23afd2(0x8f)]+_0x23afd2(0x11e)+_0x4ffaa2['ua']+_0x23afd2(0xb3),'spaceId':_0x23afd2(0xc0),'timestamp':Math[_0x23afd2(0x94)](new Date())-0x64,'token':_0x3069e1};let _0x45ce2c={'url':initRequestUrl(),'headers':initRequestHeaders(signHs(_0x31e9f1,clientSecret),_0x4ffaa2['ua'],_0x3069e1),'body':JSON['stringify'](_0x31e9f1)},_0x193332=await requestPost(_0x45ce2c,_0x23afd2(0xb9),_0x24c8b2);return flagApi(_0x193332),new Promise(_0x51958a=>{_0x51958a(_0x193332);});}async function getToken(_0x59fae0=0x3*0x3e8,_0x131fe6){const _0x470eae=_0x2ea86d;var _0x49f1ab={'method':_0x470eae(0xa8),'params':'{}','spaceId':spaceId,'timestamp':Math[_0x470eae(0x94)](new Date())-0x64};let _0x46cd91={'url':initRequestUrl(),'headers':initRequestNoTokenHeaders(signHs(_0x49f1ab,clientSecret),_0x131fe6['ua']),'body':JSON[_0x470eae(0xfd)](_0x49f1ab)},_0x3654e6=await requestPost(_0x46cd91,'获取云函数token',_0x59fae0);return flagApi(_0x3654e6),new Promise(_0x5f463c=>{_0x5f463c(_0x3654e6);});}function signHs(_0x15dbb2,_0x23700a){const _0x4d9ea9=_0x2ea86d;var _0x41e83b='';return Object[_0x4d9ea9(0xca)](_0x15dbb2)[_0x4d9ea9(0x13c)]()[_0x4d9ea9(0xae)](function(_0x937dae){_0x15dbb2[_0x937dae]&&(_0x41e83b=_0x41e83b+'&'+_0x937dae+'='+_0x15dbb2[_0x937dae]);}),_0x41e83b=_0x41e83b[_0x4d9ea9(0x146)](0x1),CryptoJS[_0x4d9ea9(0x103)](_0x41e83b,_0x23700a)[_0x4d9ea9(0x16f)]();}function flagApi(_0x336d9c){const _0x4862ae=_0x2ea86d;_0x336d9c[_0x4862ae(0xab)]?console[_0x4862ae(0xd4)](_0x4862ae(0x132)):console[_0x4862ae(0xd4)](_0x4862ae(0xc9));}async function getCks(_0x3bcbde,_0x367f4e){return new Promise((_0x4f7b7b,_0x166093)=>{const _0x1f8594=_0x1ed2;let _0x1d20d5=[];_0x3bcbde?(_0x3bcbde['indexOf']('@')!=-0x1?_0x3bcbde[_0x1f8594(0x10a)]('@')['forEach'](_0x2d57a4=>{const _0x214c91=_0x1f8594;_0x1d20d5[_0x214c91(0xf0)](_0x2d57a4);}):_0x1d20d5['push'](_0x3bcbde),_0x4f7b7b(_0x1d20d5)):console[_0x1f8594(0xd4)](_0x1f8594(0xa1)+$[_0x1f8594(0xa2)]+_0x1f8594(0x148)+_0x367f4e);});}async function SendMsg(_0x31efc9){const _0x305d16=_0x2ea86d;if(!_0x31efc9)return;if(Notify>0x0){if($[_0x305d16(0x119)]()){var _0x2d3e65=require(_0x305d16(0xc4));await _0x2d3e65[_0x305d16(0xbf)]($[_0x305d16(0xa2)],_0x31efc9);}else $[_0x305d16(0x14d)](_0x31efc9);}else console['log'](_0x31efc9);}function randomString(_0x1b82f9){const _0x413b7d=_0x2ea86d;_0x1b82f9=_0x1b82f9||0x20;var _0x5992f3='QWERTYUIOPASDFGHJKLZXCVBNM1234567890',_0x24428e=_0x5992f3[_0x413b7d(0xe5)],_0x2eaa42='';for(i=0x0;i<_0x1b82f9;i++)_0x2eaa42+=_0x5992f3[_0x413b7d(0x135)](Math[_0x413b7d(0x172)](Math['random']()*_0x24428e));return _0x2eaa42;}function randomInt(_0x1e378b,_0x4e2ab4){const _0x37fff9=_0x2ea86d;return Math[_0x37fff9(0x94)](Math[_0x37fff9(0x8e)]()*(_0x4e2ab4-_0x1e378b)+_0x1e378b);}function wyy(_0x3136a6=0x3*0x3e8){return new Promise(_0x19724e=>{const _0x29c87d=_0x1ed2;let _0x4cd952={'url':'https://keai.icu/apiwyy/api'};$[_0x29c87d(0xcd)](_0x4cd952,async(_0x412cab,_0x33baa0,_0x418f58)=>{const _0x1b8b28=_0x29c87d;try{_0x418f58=JSON[_0x1b8b28(0x131)](_0x418f58),console[_0x1b8b28(0xd4)](_0x1b8b28(0xcc)+_0x418f58[_0x1b8b28(0x102)]+'\x20\x20by--'+_0x418f58[_0x1b8b28(0x16d)]);}catch(_0x3d4091){$['logErr'](_0x3d4091,_0x33baa0);}finally{_0x19724e();}},_0x3136a6);});}async function httpGet(_0xaf43f1,_0x2834d4,_0x27d8ad=0x3*0x3e8){return new Promise(_0x56af8c=>{const _0x3d1451=_0x1ed2;let _0x46cf07=_0xaf43f1;if(!_0x2834d4){let _0x404d85=arguments['callee']['toString'](),_0x1ce299=/function\s*(\w*)/i,_0x5636ce=_0x1ce299[_0x3d1451(0x12e)](_0x404d85);_0x2834d4=_0x5636ce[0x1];}debug&&(console[_0x3d1451(0xd4)]('\x0a\x20【debug】===============\x20这是\x20'+_0x2834d4+_0x3d1451(0xe8)),console[_0x3d1451(0xd4)](_0x46cf07)),$[_0x3d1451(0xcd)](_0x46cf07,async(_0x34a06c,_0x4ef46e,_0x4fa603)=>{const _0x5a2cff=_0x3d1451;try{debug&&(console['log'](_0x5a2cff(0x16b)+_0x2834d4+_0x5a2cff(0x13f)),console[_0x5a2cff(0xd4)](_0x4fa603),console[_0x5a2cff(0xd4)]('======'),console['log'](JSON['parse'](_0x4fa603)));let _0x4c2d69=JSON[_0x5a2cff(0x131)](_0x4fa603);_0x56af8c(_0x4c2d69);}catch(_0x498531){console['log'](_0x498531);}finally{_0x56af8c();}},_0x27d8ad);});}async function httpPost(_0x1152f2,_0x3be1cc,_0x2f2b5a=0x3*0x3e8){return new Promise(_0x449c47=>{const _0x4a966c=_0x1ed2;let _0x52593d=_0x1152f2;if(!_0x3be1cc){let _0xc19d37=arguments[_0x4a966c(0x15c)][_0x4a966c(0x16f)](),_0x31178e=/function\s*(\w*)/i,_0x3d106e=_0x31178e[_0x4a966c(0x12e)](_0xc19d37);_0x3be1cc=_0x3d106e[0x1];}debug&&(console[_0x4a966c(0xd4)](_0x4a966c(0xa7)+_0x3be1cc+_0x4a966c(0xe8)),console[_0x4a966c(0xd4)](_0x52593d)),$['post'](_0x52593d,async(_0x471a39,_0x5c6b9d,_0x38a3c2)=>{const _0x144719=_0x4a966c;try{debug&&(console[_0x144719(0xd4)](_0x144719(0x16b)+_0x3be1cc+'\x20返回data=============='),console['log'](_0x38a3c2),console[_0x144719(0xd4)](_0x144719(0x10f)),console['log'](JSON[_0x144719(0x131)](_0x38a3c2)));let _0x4213d6=JSON['parse'](_0x38a3c2);_0x449c47(_0x4213d6);}catch(_0x5d8b90){console[_0x144719(0xd4)](_0x5d8b90);}finally{_0x449c47();}},_0x2f2b5a);});}function requestPost(_0x52631c,_0x5d1b24,_0x524e4d=0x3*0x3e8){const _0x451578=_0x2ea86d;debug&&(console['log'](_0x451578(0xa7)+_0x5d1b24+_0x451578(0xe8)),console[_0x451578(0xd4)](_0x52631c));var _0x1b107c={'method':_0x451578(0x155),'url':_0x52631c[_0x451578(0xdd)],'headers':_0x52631c[_0x451578(0xed)],'body':_0x52631c[_0x451578(0x130)]};return new Promise((_0x21b21a,_0x11920)=>{const _0x4ef692=request(_0x1b107c,(_0x12a023,_0x3e2f01,_0x292544)=>{const _0x51fe25=_0x1ed2;!_0x12a023&&_0x3e2f01[_0x51fe25(0x9d)]==0xc8?(debug&&(console['log']('\x0a\x0a\x20【debug】===============这是\x20'+_0x5d1b24+_0x51fe25(0x13f)),console['log'](_0x292544),console[_0x51fe25(0xd4)](_0x51fe25(0x10f)),console['log'](JSON['parse'](_0x292544))),_0x21b21a(JSON[_0x51fe25(0x131)](_0x292544))):_0x11920(_0x12a023);});});}function debugLog(..._0x142d80){debug&&console['log'](..._0x142d80);}function MD5Encrypt(_0x41ea7a){const _0x1dbcad=_0x2ea86d;function _0x22ade8(_0x5bdacb,_0x4628d2){return _0x5bdacb<<_0x4628d2|_0x5bdacb>>>0x20-_0x4628d2;}function _0x2913c4(_0x13663d,_0x18609d){var _0x511a33,_0x28365a,_0x4796a8,_0x42facc,_0x2ee5c6;return _0x4796a8=0x80000000&_0x13663d,_0x42facc=0x80000000&_0x18609d,_0x511a33=0x40000000&_0x13663d,_0x28365a=0x40000000&_0x18609d,_0x2ee5c6=(0x3fffffff&_0x13663d)+(0x3fffffff&_0x18609d),_0x511a33&_0x28365a?0x80000000^_0x2ee5c6^_0x4796a8^_0x42facc:_0x511a33|_0x28365a?0x40000000&_0x2ee5c6?0xc0000000^_0x2ee5c6^_0x4796a8^_0x42facc:0x40000000^_0x2ee5c6^_0x4796a8^_0x42facc:_0x2ee5c6^_0x4796a8^_0x42facc;}function _0x225613(_0x196e29,_0x1abfe8,_0x4248aa){return _0x196e29&_0x1abfe8|~_0x196e29&_0x4248aa;}function _0x1be9b3(_0xa2d5ba,_0x22619d,_0x398123){return _0xa2d5ba&_0x398123|_0x22619d&~_0x398123;}function _0x4da6c6(_0x9832f9,_0x4139f8,_0x2f2da1){return _0x9832f9^_0x4139f8^_0x2f2da1;}function _0x56e604(_0x40efb8,_0xb9ff06,_0x5347a2){return _0xb9ff06^(_0x40efb8|~_0x5347a2);}function _0x91a0d1(_0x3b8fce,_0x401323,_0x44976f,_0x3bf819,_0x30efac,_0x14cbb2,_0x56be95){return _0x3b8fce=_0x2913c4(_0x3b8fce,_0x2913c4(_0x2913c4(_0x225613(_0x401323,_0x44976f,_0x3bf819),_0x30efac),_0x56be95)),_0x2913c4(_0x22ade8(_0x3b8fce,_0x14cbb2),_0x401323);}function _0x53ce37(_0x4b910a,_0x19b164,_0x366a95,_0x4d17d6,_0x8c47dd,_0x1d0a68,_0x2c40e5){return _0x4b910a=_0x2913c4(_0x4b910a,_0x2913c4(_0x2913c4(_0x1be9b3(_0x19b164,_0x366a95,_0x4d17d6),_0x8c47dd),_0x2c40e5)),_0x2913c4(_0x22ade8(_0x4b910a,_0x1d0a68),_0x19b164);}function _0x2d12f6(_0x2d0314,_0x5437e4,_0x46bf4c,_0x330f36,_0x21f577,_0x11f4fe,_0x4cd667){return _0x2d0314=_0x2913c4(_0x2d0314,_0x2913c4(_0x2913c4(_0x4da6c6(_0x5437e4,_0x46bf4c,_0x330f36),_0x21f577),_0x4cd667)),_0x2913c4(_0x22ade8(_0x2d0314,_0x11f4fe),_0x5437e4);}function _0x110050(_0x181d88,_0x5da52,_0x25d02a,_0x4b11f4,_0xab541d,_0x294322,_0x1c4a43){return _0x181d88=_0x2913c4(_0x181d88,_0x2913c4(_0x2913c4(_0x56e604(_0x5da52,_0x25d02a,_0x4b11f4),_0xab541d),_0x1c4a43)),_0x2913c4(_0x22ade8(_0x181d88,_0x294322),_0x5da52);}function _0x338e4f(_0x4dcf97){const _0x5e7b07=_0x1ed2;for(var _0x4bd561,_0x4934fe=_0x4dcf97[_0x5e7b07(0xe5)],_0x399436=_0x4934fe+0x8,_0xeaf680=(_0x399436-_0x399436%0x40)/0x40,_0x444d1c=0x10*(_0xeaf680+0x1),_0x273707=new Array(_0x444d1c-0x1),_0x4b8450=0x0,_0x2e8140=0x0;_0x4934fe>_0x2e8140;)_0x4bd561=(_0x2e8140-_0x2e8140%0x4)/0x4,_0x4b8450=_0x2e8140%0x4*0x8,_0x273707[_0x4bd561]=_0x273707[_0x4bd561]|_0x4dcf97[_0x5e7b07(0x127)](_0x2e8140)<<_0x4b8450,_0x2e8140++;return _0x4bd561=(_0x2e8140-_0x2e8140%0x4)/0x4,_0x4b8450=_0x2e8140%0x4*0x8,_0x273707[_0x4bd561]=_0x273707[_0x4bd561]|0x80<<_0x4b8450,_0x273707[_0x444d1c-0x2]=_0x4934fe<<0x3,_0x273707[_0x444d1c-0x1]=_0x4934fe>>>0x1d,_0x273707;}function _0x123009(_0x2acc71){const _0x28e65a=_0x1ed2;var _0x506685,_0x1ace16,_0x4c82f6='',_0x3d4244='';for(_0x1ace16=0x0;0x3>=_0x1ace16;_0x1ace16++)_0x506685=_0x2acc71>>>0x8*_0x1ace16&0xff,_0x3d4244='0'+_0x506685[_0x28e65a(0x16f)](0x10),_0x4c82f6+=_0x3d4244[_0x28e65a(0x164)](_0x3d4244[_0x28e65a(0xe5)]-0x2,0x2);return _0x4c82f6;}function _0x29313b(_0x4e0d84){const _0x4f7ec3=_0x1ed2;_0x4e0d84=_0x4e0d84[_0x4f7ec3(0xa5)](/\r\n/g,'\x0a');for(var _0x2ec86a='',_0x5a842b=0x0;_0x5a842b<_0x4e0d84[_0x4f7ec3(0xe5)];_0x5a842b++){var _0x1cbe32=_0x4e0d84[_0x4f7ec3(0x127)](_0x5a842b);0x80>_0x1cbe32?_0x2ec86a+=String[_0x4f7ec3(0xc6)](_0x1cbe32):_0x1cbe32>0x7f&&0x800>_0x1cbe32?(_0x2ec86a+=String['fromCharCode'](_0x1cbe32>>0x6|0xc0),_0x2ec86a+=String[_0x4f7ec3(0xc6)](0x3f&_0x1cbe32|0x80)):(_0x2ec86a+=String['fromCharCode'](_0x1cbe32>>0xc|0xe0),_0x2ec86a+=String[_0x4f7ec3(0xc6)](_0x1cbe32>>0x6&0x3f|0x80),_0x2ec86a+=String[_0x4f7ec3(0xc6)](0x3f&_0x1cbe32|0x80));}return _0x2ec86a;}var _0x28526f,_0x3b9e18,_0x36b241,_0x377413,_0x11d349,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69=[],_0x20d47d=0x7,_0xb48f41=0xc,_0x507a8b=0x11,_0x55a845=0x16,_0x3fba2a=0x5,_0x35296c=0x9,_0x4af797=0xe,_0x2edbcb=0x14,_0x46c7d8=0x4,_0xeb79dc=0xb,_0x325c64=0x10,_0x54325c=0x17,_0x156261=0x6,_0x547737=0xa,_0x38e4f8=0xf,_0x2e1aa8=0x15;for(_0x41ea7a=_0x29313b(_0x41ea7a),_0x3a6e69=_0x338e4f(_0x41ea7a),_0xff8c7f=0x67452301,_0x3ca4ca=0xefcdab89,_0x1b3089=0x98badcfe,_0xafc131=0x10325476,_0x28526f=0x0;_0x28526f<_0x3a6e69[_0x1dbcad(0xe5)];_0x28526f+=0x10)_0x3b9e18=_0xff8c7f,_0x36b241=_0x3ca4ca,_0x377413=_0x1b3089,_0x11d349=_0xafc131,_0xff8c7f=_0x91a0d1(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x0],_0x20d47d,0xd76aa478),_0xafc131=_0x91a0d1(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x1],_0xb48f41,0xe8c7b756),_0x1b3089=_0x91a0d1(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x2],_0x507a8b,0x242070db),_0x3ca4ca=_0x91a0d1(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x3],_0x55a845,0xc1bdceee),_0xff8c7f=_0x91a0d1(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x4],_0x20d47d,0xf57c0faf),_0xafc131=_0x91a0d1(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x5],_0xb48f41,0x4787c62a),_0x1b3089=_0x91a0d1(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x6],_0x507a8b,0xa8304613),_0x3ca4ca=_0x91a0d1(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x7],_0x55a845,0xfd469501),_0xff8c7f=_0x91a0d1(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x8],_0x20d47d,0x698098d8),_0xafc131=_0x91a0d1(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x9],_0xb48f41,0x8b44f7af),_0x1b3089=_0x91a0d1(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xa],_0x507a8b,0xffff5bb1),_0x3ca4ca=_0x91a0d1(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0xb],_0x55a845,0x895cd7be),_0xff8c7f=_0x91a0d1(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0xc],_0x20d47d,0x6b901122),_0xafc131=_0x91a0d1(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0xd],_0xb48f41,0xfd987193),_0x1b3089=_0x91a0d1(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xe],_0x507a8b,0xa679438e),_0x3ca4ca=_0x91a0d1(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0xf],_0x55a845,0x49b40821),_0xff8c7f=_0x53ce37(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x1],_0x3fba2a,0xf61e2562),_0xafc131=_0x53ce37(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x6],_0x35296c,0xc040b340),_0x1b3089=_0x53ce37(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xb],_0x4af797,0x265e5a51),_0x3ca4ca=_0x53ce37(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x0],_0x2edbcb,0xe9b6c7aa),_0xff8c7f=_0x53ce37(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x5],_0x3fba2a,0xd62f105d),_0xafc131=_0x53ce37(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0xa],_0x35296c,0x2441453),_0x1b3089=_0x53ce37(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xf],_0x4af797,0xd8a1e681),_0x3ca4ca=_0x53ce37(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x4],_0x2edbcb,0xe7d3fbc8),_0xff8c7f=_0x53ce37(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x9],_0x3fba2a,0x21e1cde6),_0xafc131=_0x53ce37(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0xe],_0x35296c,0xc33707d6),_0x1b3089=_0x53ce37(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x3],_0x4af797,0xf4d50d87),_0x3ca4ca=_0x53ce37(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x8],_0x2edbcb,0x455a14ed),_0xff8c7f=_0x53ce37(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0xd],_0x3fba2a,0xa9e3e905),_0xafc131=_0x53ce37(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x2],_0x35296c,0xfcefa3f8),_0x1b3089=_0x53ce37(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x7],_0x4af797,0x676f02d9),_0x3ca4ca=_0x53ce37(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0xc],_0x2edbcb,0x8d2a4c8a),_0xff8c7f=_0x2d12f6(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x5],_0x46c7d8,0xfffa3942),_0xafc131=_0x2d12f6(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x8],_0xeb79dc,0x8771f681),_0x1b3089=_0x2d12f6(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xb],_0x325c64,0x6d9d6122),_0x3ca4ca=_0x2d12f6(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0xe],_0x54325c,0xfde5380c),_0xff8c7f=_0x2d12f6(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x1],_0x46c7d8,0xa4beea44),_0xafc131=_0x2d12f6(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x4],_0xeb79dc,0x4bdecfa9),_0x1b3089=_0x2d12f6(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x7],_0x325c64,0xf6bb4b60),_0x3ca4ca=_0x2d12f6(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0xa],_0x54325c,0xbebfbc70),_0xff8c7f=_0x2d12f6(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0xd],_0x46c7d8,0x289b7ec6),_0xafc131=_0x2d12f6(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x0],_0xeb79dc,0xeaa127fa),_0x1b3089=_0x2d12f6(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x3],_0x325c64,0xd4ef3085),_0x3ca4ca=_0x2d12f6(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x6],_0x54325c,0x4881d05),_0xff8c7f=_0x2d12f6(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x9],_0x46c7d8,0xd9d4d039),_0xafc131=_0x2d12f6(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0xc],_0xeb79dc,0xe6db99e5),_0x1b3089=_0x2d12f6(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xf],_0x325c64,0x1fa27cf8),_0x3ca4ca=_0x2d12f6(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x2],_0x54325c,0xc4ac5665),_0xff8c7f=_0x110050(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x0],_0x156261,0xf4292244),_0xafc131=_0x110050(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x7],_0x547737,0x432aff97),_0x1b3089=_0x110050(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xe],_0x38e4f8,0xab9423a7),_0x3ca4ca=_0x110050(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x5],_0x2e1aa8,0xfc93a039),_0xff8c7f=_0x110050(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0xc],_0x156261,0x655b59c3),_0xafc131=_0x110050(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0x3],_0x547737,0x8f0ccc92),_0x1b3089=_0x110050(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0xa],_0x38e4f8,0xffeff47d),_0x3ca4ca=_0x110050(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x1],_0x2e1aa8,0x85845dd1),_0xff8c7f=_0x110050(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x8],_0x156261,0x6fa87e4f),_0xafc131=_0x110050(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0xf],_0x547737,0xfe2ce6e0),_0x1b3089=_0x110050(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x6],_0x38e4f8,0xa3014314),_0x3ca4ca=_0x110050(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0xd],_0x2e1aa8,0x4e0811a1),_0xff8c7f=_0x110050(_0xff8c7f,_0x3ca4ca,_0x1b3089,_0xafc131,_0x3a6e69[_0x28526f+0x4],_0x156261,0xf7537e82),_0xafc131=_0x110050(_0xafc131,_0xff8c7f,_0x3ca4ca,_0x1b3089,_0x3a6e69[_0x28526f+0xb],_0x547737,0xbd3af235),_0x1b3089=_0x110050(_0x1b3089,_0xafc131,_0xff8c7f,_0x3ca4ca,_0x3a6e69[_0x28526f+0x2],_0x38e4f8,0x2ad7d2bb),_0x3ca4ca=_0x110050(_0x3ca4ca,_0x1b3089,_0xafc131,_0xff8c7f,_0x3a6e69[_0x28526f+0x9],_0x2e1aa8,0xeb86d391),_0xff8c7f=_0x2913c4(_0xff8c7f,_0x3b9e18),_0x3ca4ca=_0x2913c4(_0x3ca4ca,_0x36b241),_0x1b3089=_0x2913c4(_0x1b3089,_0x377413),_0xafc131=_0x2913c4(_0xafc131,_0x11d349);var _0x47340a=_0x123009(_0xff8c7f)+_0x123009(_0x3ca4ca)+_0x123009(_0x1b3089)+_0x123009(_0xafc131);return _0x47340a['toLowerCase']();}function Env(_0x1ef4d7,_0x5016d2){const _0x4d0ca4=_0x2ea86d;_0x4d0ca4(0xad)!=typeof process&&JSON['stringify'](process['env'])['indexOf'](_0x4d0ca4(0x100))>-0x1&&process[_0x4d0ca4(0xea)](0x0);class _0x454f51{constructor(_0x444cc5){const _0x1db79d=_0x4d0ca4;this[_0x1db79d(0x178)]=_0x444cc5;}[_0x4d0ca4(0xd9)](_0x106a7c,_0x5aae3e=_0x4d0ca4(0x126)){const _0x53b13d=_0x4d0ca4;_0x106a7c='string'==typeof _0x106a7c?{'url':_0x106a7c}:_0x106a7c;let _0x2bbfa5=this[_0x53b13d(0xcd)];return'POST'===_0x5aae3e&&(_0x2bbfa5=this['post']),new Promise((_0x126fa2,_0x17430d)=>{const _0x23158e=_0x53b13d;_0x2bbfa5[_0x23158e(0x14e)](this,_0x106a7c,(_0x15a283,_0x1f04f3,_0x4de4f7)=>{_0x15a283?_0x17430d(_0x15a283):_0x126fa2(_0x1f04f3);});});}[_0x4d0ca4(0xcd)](_0x4aff1a){const _0x30b4e1=_0x4d0ca4;return this[_0x30b4e1(0xd9)][_0x30b4e1(0x14e)](this[_0x30b4e1(0x178)],_0x4aff1a);}[_0x4d0ca4(0x106)](_0x578a55){const _0x1062e0=_0x4d0ca4;return this[_0x1062e0(0xd9)][_0x1062e0(0x14e)](this[_0x1062e0(0x178)],_0x578a55,_0x1062e0(0x155));}}return new class{constructor(_0x7b4a25,_0x220808){const _0x2cf85c=_0x4d0ca4;this[_0x2cf85c(0xa2)]=_0x7b4a25,this[_0x2cf85c(0xb0)]=new _0x454f51(this),this[_0x2cf85c(0x107)]=null,this[_0x2cf85c(0x11a)]='box.dat',this[_0x2cf85c(0x11f)]=[],this[_0x2cf85c(0xb1)]=!0x1,this[_0x2cf85c(0xec)]=!0x1,this[_0x2cf85c(0xdf)]='\x0a',this[_0x2cf85c(0x9a)]=new Date()[_0x2cf85c(0xc3)](),Object['assign'](this,_0x220808),this[_0x2cf85c(0xd4)]('','🔔'+this[_0x2cf85c(0xa2)]+_0x2cf85c(0xb2));}[_0x4d0ca4(0x119)](){const _0x32d0bc=_0x4d0ca4;return'undefined'!=typeof module&&!!module[_0x32d0bc(0xb6)];}['isQuanX'](){return'undefined'!=typeof $task;}[_0x4d0ca4(0x8d)](){const _0x838f32=_0x4d0ca4;return _0x838f32(0xad)!=typeof $httpClient&&_0x838f32(0xad)==typeof $loon;}[_0x4d0ca4(0x171)](){const _0x1c4ca2=_0x4d0ca4;return _0x1c4ca2(0xad)!=typeof $loon;}['toObj'](_0x371714,_0x30855c=null){const _0x11e886=_0x4d0ca4;try{return JSON[_0x11e886(0x131)](_0x371714);}catch{return _0x30855c;}}[_0x4d0ca4(0xd2)](_0x510591,_0xad0498=null){const _0x5ced3c=_0x4d0ca4;try{return JSON[_0x5ced3c(0xfd)](_0x510591);}catch{return _0xad0498;}}[_0x4d0ca4(0xd0)](_0xbc81d2,_0x4f2ff4){const _0x3ea105=_0x4d0ca4;let _0x533c11=_0x4f2ff4;const _0x376114=this[_0x3ea105(0x9e)](_0xbc81d2);if(_0x376114)try{_0x533c11=JSON[_0x3ea105(0x131)](this[_0x3ea105(0x9e)](_0xbc81d2));}catch{}return _0x533c11;}[_0x4d0ca4(0x176)](_0x519f72,_0x587f2c){const _0x33de3a=_0x4d0ca4;try{return this[_0x33de3a(0x15d)](JSON[_0x33de3a(0xfd)](_0x519f72),_0x587f2c);}catch{return!0x1;}}[_0x4d0ca4(0xb7)](_0x51bfac){return new Promise(_0x307c3b=>{const _0x258a6b=_0x1ed2;this[_0x258a6b(0xcd)]({'url':_0x51bfac},(_0x346650,_0x3999be,_0x2a06e8)=>_0x307c3b(_0x2a06e8));});}[_0x4d0ca4(0x15e)](_0x3d2f52,_0x457189){return new Promise(_0x2ee4b6=>{const _0x26a497=_0x1ed2;let _0x296a73=this[_0x26a497(0x9e)]('@chavy_boxjs_userCfgs.httpapi');_0x296a73=_0x296a73?_0x296a73['replace'](/\n/g,'')[_0x26a497(0xce)]():_0x296a73;let _0xdceca6=this[_0x26a497(0x9e)](_0x26a497(0x99));_0xdceca6=_0xdceca6?0x1*_0xdceca6:0x14,_0xdceca6=_0x457189&&_0x457189[_0x26a497(0x12f)]?_0x457189[_0x26a497(0x12f)]:_0xdceca6;const [_0x1ae256,_0x1e5e49]=_0x296a73[_0x26a497(0x10a)]('@'),_0x440180={'url':_0x26a497(0x143)+_0x1e5e49+_0x26a497(0xbb),'body':{'script_text':_0x3d2f52,'mock_type':'cron','timeout':_0xdceca6},'headers':{'X-Key':_0x1ae256,'Accept':_0x26a497(0x121)}};this['post'](_0x440180,(_0x4797b0,_0x1225bb,_0x255bfd)=>_0x2ee4b6(_0x255bfd));})['catch'](_0x492523=>this['logErr'](_0x492523));}['loaddata'](){const _0x22d552=_0x4d0ca4;if(!this[_0x22d552(0x119)]())return{};{this['fs']=this['fs']?this['fs']:require('fs'),this[_0x22d552(0x105)]=this[_0x22d552(0x105)]?this[_0x22d552(0x105)]:require('path');const _0x4031e7=this['path'][_0x22d552(0x163)](this[_0x22d552(0x11a)]),_0x45205c=this[_0x22d552(0x105)][_0x22d552(0x163)](process[_0x22d552(0xe2)](),this['dataFile']),_0x31f02e=this['fs'][_0x22d552(0xfe)](_0x4031e7),_0x300ce3=!_0x31f02e&&this['fs'][_0x22d552(0xfe)](_0x45205c);if(!_0x31f02e&&!_0x300ce3)return{};{const _0x353632=_0x31f02e?_0x4031e7:_0x45205c;try{return JSON['parse'](this['fs']['readFileSync'](_0x353632));}catch(_0x402e8d){return{};}}}}[_0x4d0ca4(0x13a)](){const _0x694f03=_0x4d0ca4;if(this['isNode']()){this['fs']=this['fs']?this['fs']:require('fs'),this['path']=this[_0x694f03(0x105)]?this['path']:require('path');const _0x42d461=this[_0x694f03(0x105)][_0x694f03(0x163)](this['dataFile']),_0x3e1c99=this[_0x694f03(0x105)][_0x694f03(0x163)](process[_0x694f03(0xe2)](),this['dataFile']),_0x43ed4b=this['fs'][_0x694f03(0xfe)](_0x42d461),_0x3965a9=!_0x43ed4b&&this['fs'][_0x694f03(0xfe)](_0x3e1c99),_0x1bc33b=JSON['stringify'](this[_0x694f03(0x107)]);_0x43ed4b?this['fs']['writeFileSync'](_0x42d461,_0x1bc33b):_0x3965a9?this['fs'][_0x694f03(0x92)](_0x3e1c99,_0x1bc33b):this['fs'][_0x694f03(0x92)](_0x42d461,_0x1bc33b);}}[_0x4d0ca4(0x168)](_0x3df75a,_0x254683,_0x200447){const _0x299743=_0x4d0ca4,_0x4f21e7=_0x254683[_0x299743(0xa5)](/\[(\d+)\]/g,_0x299743(0x109))[_0x299743(0x10a)]('.');let _0xe5e277=_0x3df75a;for(const _0x3e5428 of _0x4f21e7)if(_0xe5e277=Object(_0xe5e277)[_0x3e5428],void 0x0===_0xe5e277)return _0x200447;return _0xe5e277;}[_0x4d0ca4(0xc7)](_0x453cbb,_0x756979,_0x399f8b){const _0x71a035=_0x4d0ca4;return Object(_0x453cbb)!==_0x453cbb?_0x453cbb:(Array['isArray'](_0x756979)||(_0x756979=_0x756979[_0x71a035(0x16f)]()[_0x71a035(0xf8)](/[^.[\]]+/g)||[]),_0x756979[_0x71a035(0x146)](0x0,-0x1)[_0x71a035(0xfb)]((_0x5072bd,_0x18699d,_0x53f5f2)=>Object(_0x5072bd[_0x18699d])===_0x5072bd[_0x18699d]?_0x5072bd[_0x18699d]:_0x5072bd[_0x18699d]=Math[_0x71a035(0x91)](_0x756979[_0x53f5f2+0x1])>>0x0==+_0x756979[_0x53f5f2+0x1]?[]:{},_0x453cbb)[_0x756979[_0x756979['length']-0x1]]=_0x399f8b,_0x453cbb);}[_0x4d0ca4(0x9e)](_0x2e44a7){const _0x2150ce=_0x4d0ca4;let _0x346133=this[_0x2150ce(0x134)](_0x2e44a7);if(/^@/[_0x2150ce(0x122)](_0x2e44a7)){const [,_0x565bfe,_0x1a6a83]=/^@(.*?)\.(.*?)$/[_0x2150ce(0x12e)](_0x2e44a7),_0x2d9330=_0x565bfe?this[_0x2150ce(0x134)](_0x565bfe):'';if(_0x2d9330)try{const _0x5ccb74=JSON[_0x2150ce(0x131)](_0x2d9330);_0x346133=_0x5ccb74?this[_0x2150ce(0x168)](_0x5ccb74,_0x1a6a83,''):_0x346133;}catch(_0x511e44){_0x346133='';}}return _0x346133;}['setdata'](_0x2e67b9,_0x168e23){const _0x5c0013=_0x4d0ca4;let _0x310af6=!0x1;if(/^@/[_0x5c0013(0x122)](_0x168e23)){const [,_0x2dc35c,_0x23c8bb]=/^@(.*?)\.(.*?)$/[_0x5c0013(0x12e)](_0x168e23),_0x35a845=this[_0x5c0013(0x134)](_0x2dc35c),_0x532519=_0x2dc35c?'null'===_0x35a845?null:_0x35a845||'{}':'{}';try{const _0x453b8=JSON[_0x5c0013(0x131)](_0x532519);this[_0x5c0013(0xc7)](_0x453b8,_0x23c8bb,_0x2e67b9),_0x310af6=this['setval'](JSON['stringify'](_0x453b8),_0x2dc35c);}catch(_0x476917){const _0x1f127c={};this[_0x5c0013(0xc7)](_0x1f127c,_0x23c8bb,_0x2e67b9),_0x310af6=this[_0x5c0013(0x153)](JSON[_0x5c0013(0xfd)](_0x1f127c),_0x2dc35c);}}else _0x310af6=this['setval'](_0x2e67b9,_0x168e23);return _0x310af6;}[_0x4d0ca4(0x134)](_0x11b29e){const _0x46e987=_0x4d0ca4;return this[_0x46e987(0x8d)]()||this[_0x46e987(0x171)]()?$persistentStore[_0x46e987(0x14b)](_0x11b29e):this['isQuanX']()?$prefs['valueForKey'](_0x11b29e):this['isNode']()?(this['data']=this[_0x46e987(0x138)](),this['data'][_0x11b29e]):this[_0x46e987(0x107)]&&this[_0x46e987(0x107)][_0x11b29e]||null;}[_0x4d0ca4(0x153)](_0x31eaf9,_0x13dcd7){const _0x3f1c69=_0x4d0ca4;return this['isSurge']()||this[_0x3f1c69(0x171)]()?$persistentStore[_0x3f1c69(0xf6)](_0x31eaf9,_0x13dcd7):this[_0x3f1c69(0x116)]()?$prefs[_0x3f1c69(0xd5)](_0x31eaf9,_0x13dcd7):this['isNode']()?(this[_0x3f1c69(0x107)]=this[_0x3f1c69(0x138)](),this[_0x3f1c69(0x107)][_0x13dcd7]=_0x31eaf9,this['writedata'](),!0x0):this[_0x3f1c69(0x107)]&&this[_0x3f1c69(0x107)][_0x13dcd7]||null;}[_0x4d0ca4(0xba)](_0x5b8177){const _0x59ea33=_0x4d0ca4;this[_0x59ea33(0xd1)]=this[_0x59ea33(0xd1)]?this[_0x59ea33(0xd1)]:require('got'),this[_0x59ea33(0x12a)]=this[_0x59ea33(0x12a)]?this[_0x59ea33(0x12a)]:require('tough-cookie'),this[_0x59ea33(0xa4)]=this[_0x59ea33(0xa4)]?this[_0x59ea33(0xa4)]:new this['cktough']['CookieJar'](),_0x5b8177&&(_0x5b8177[_0x59ea33(0xed)]=_0x5b8177[_0x59ea33(0xed)]?_0x5b8177['headers']:{},void 0x0===_0x5b8177[_0x59ea33(0xed)][_0x59ea33(0x111)]&&void 0x0===_0x5b8177[_0x59ea33(0x158)]&&(_0x5b8177['cookieJar']=this[_0x59ea33(0xa4)]));}['get'](_0x130adb,_0x3ce133=()=>{}){const _0x3fe6cc=_0x4d0ca4;_0x130adb[_0x3fe6cc(0xed)]&&(delete _0x130adb[_0x3fe6cc(0xed)][_0x3fe6cc(0xe3)],delete _0x130adb[_0x3fe6cc(0xed)][_0x3fe6cc(0x17a)]),this[_0x3fe6cc(0x8d)]()||this['isLoon']()?(this[_0x3fe6cc(0x8d)]()&&this['isNeedRewrite']&&(_0x130adb[_0x3fe6cc(0xed)]=_0x130adb[_0x3fe6cc(0xed)]||{},Object[_0x3fe6cc(0xeb)](_0x130adb['headers'],{'X-Surge-Skip-Scripting':!0x1})),$httpClient[_0x3fe6cc(0xcd)](_0x130adb,(_0x37b7e3,_0x1559eb,_0x2ac87a)=>{const _0x268865=_0x3fe6cc;!_0x37b7e3&&_0x1559eb&&(_0x1559eb[_0x268865(0x130)]=_0x2ac87a,_0x1559eb[_0x268865(0x9d)]=_0x1559eb[_0x268865(0xcf)]),_0x3ce133(_0x37b7e3,_0x1559eb,_0x2ac87a);})):this[_0x3fe6cc(0x116)]()?(this[_0x3fe6cc(0xec)]&&(_0x130adb['opts']=_0x130adb[_0x3fe6cc(0xaf)]||{},Object[_0x3fe6cc(0xeb)](_0x130adb[_0x3fe6cc(0xaf)],{'hints':!0x1})),$task[_0x3fe6cc(0xc5)](_0x130adb)['then'](_0x1f4491=>{const {statusCode:_0x52ee36,statusCode:_0x46dd23,headers:_0x270537,body:_0x385a10}=_0x1f4491;_0x3ce133(null,{'status':_0x52ee36,'statusCode':_0x46dd23,'headers':_0x270537,'body':_0x385a10},_0x385a10);},_0x4427ee=>_0x3ce133(_0x4427ee))):this['isNode']()&&(this[_0x3fe6cc(0xba)](_0x130adb),this['got'](_0x130adb)['on'](_0x3fe6cc(0xf7),(_0x2bd45c,_0x27c005)=>{const _0x1f61de=_0x3fe6cc;try{if(_0x2bd45c['headers'][_0x1f61de(0xbc)]){const _0x4600dc=_0x2bd45c[_0x1f61de(0xed)]['set-cookie'][_0x1f61de(0x110)](this[_0x1f61de(0x12a)]['Cookie'][_0x1f61de(0x131)])[_0x1f61de(0x16f)]();_0x4600dc&&this[_0x1f61de(0xa4)]['setCookieSync'](_0x4600dc,null),_0x27c005[_0x1f61de(0x158)]=this['ckjar'];}}catch(_0x20c540){this['logErr'](_0x20c540);}})[_0x3fe6cc(0x118)](_0x1f6012=>{const {statusCode:_0x16c346,statusCode:_0x18cc1e,headers:_0x43254b,body:_0x290006}=_0x1f6012;_0x3ce133(null,{'status':_0x16c346,'statusCode':_0x18cc1e,'headers':_0x43254b,'body':_0x290006},_0x290006);},_0x95cba8=>{const _0x547a0b=_0x3fe6cc,{message:_0x5426e0,response:_0x1e7a49}=_0x95cba8;_0x3ce133(_0x5426e0,_0x1e7a49,_0x1e7a49&&_0x1e7a49[_0x547a0b(0x130)]);}));}[_0x4d0ca4(0x106)](_0x2a2127,_0x3d405c=()=>{}){const _0x47e4af=_0x4d0ca4;if(_0x2a2127[_0x47e4af(0x130)]&&_0x2a2127[_0x47e4af(0xed)]&&!_0x2a2127['headers'][_0x47e4af(0xe3)]&&(_0x2a2127[_0x47e4af(0xed)][_0x47e4af(0xe3)]=_0x47e4af(0x154)),_0x2a2127[_0x47e4af(0xed)]&&delete _0x2a2127[_0x47e4af(0xed)][_0x47e4af(0x17a)],this[_0x47e4af(0x8d)]()||this['isLoon']())this[_0x47e4af(0x8d)]()&&this['isNeedRewrite']&&(_0x2a2127[_0x47e4af(0xed)]=_0x2a2127['headers']||{},Object['assign'](_0x2a2127['headers'],{'X-Surge-Skip-Scripting':!0x1})),$httpClient['post'](_0x2a2127,(_0x21f6db,_0x1b782e,_0x44b6)=>{const _0x254e3b=_0x47e4af;!_0x21f6db&&_0x1b782e&&(_0x1b782e['body']=_0x44b6,_0x1b782e[_0x254e3b(0x9d)]=_0x1b782e[_0x254e3b(0xcf)]),_0x3d405c(_0x21f6db,_0x1b782e,_0x44b6);});else{if(this['isQuanX']())_0x2a2127[_0x47e4af(0xf9)]='POST',this[_0x47e4af(0xec)]&&(_0x2a2127[_0x47e4af(0xaf)]=_0x2a2127['opts']||{},Object[_0x47e4af(0xeb)](_0x2a2127[_0x47e4af(0xaf)],{'hints':!0x1})),$task[_0x47e4af(0xc5)](_0x2a2127)['then'](_0x174cc3=>{const {statusCode:_0xc91514,statusCode:_0x1c7989,headers:_0x18c3e3,body:_0x5eb3c7}=_0x174cc3;_0x3d405c(null,{'status':_0xc91514,'statusCode':_0x1c7989,'headers':_0x18c3e3,'body':_0x5eb3c7},_0x5eb3c7);},_0x96de6c=>_0x3d405c(_0x96de6c));else{if(this[_0x47e4af(0x119)]()){this[_0x47e4af(0xba)](_0x2a2127);const {url:_0x4bdc11,..._0x2314e9}=_0x2a2127;this[_0x47e4af(0xd1)]['post'](_0x4bdc11,_0x2314e9)['then'](_0x47b11e=>{const {statusCode:_0x2c4b5a,statusCode:_0x1c7993,headers:_0x1b4e10,body:_0x4a8cc9}=_0x47b11e;_0x3d405c(null,{'status':_0x2c4b5a,'statusCode':_0x1c7993,'headers':_0x1b4e10,'body':_0x4a8cc9},_0x4a8cc9);},_0x44f64a=>{const {message:_0x2cf1cd,response:_0x2b936f}=_0x44f64a;_0x3d405c(_0x2cf1cd,_0x2b936f,_0x2b936f&&_0x2b936f['body']);});}}}}['time'](_0x1405b1,_0x2010c3=null){const _0x39aad2=_0x4d0ca4,_0x553aa8=_0x2010c3?new Date(_0x2010c3):new Date();let _0x1dde23={'M+':_0x553aa8['getMonth']()+0x1,'d+':_0x553aa8[_0x39aad2(0x125)](),'H+':_0x553aa8[_0x39aad2(0xef)](),'m+':_0x553aa8[_0x39aad2(0xac)](),'s+':_0x553aa8['getSeconds'](),'q+':Math['floor']((_0x553aa8[_0x39aad2(0xde)]()+0x3)/0x3),'S':_0x553aa8[_0x39aad2(0xbe)]()};/(y+)/[_0x39aad2(0x122)](_0x1405b1)&&(_0x1405b1=_0x1405b1[_0x39aad2(0xa5)](RegExp['$1'],(_0x553aa8[_0x39aad2(0xe1)]()+'')[_0x39aad2(0x164)](0x4-RegExp['$1'][_0x39aad2(0xe5)])));for(let _0x551091 in _0x1dde23)new RegExp('('+_0x551091+')')[_0x39aad2(0x122)](_0x1405b1)&&(_0x1405b1=_0x1405b1[_0x39aad2(0xa5)](RegExp['$1'],0x1==RegExp['$1']['length']?_0x1dde23[_0x551091]:('00'+_0x1dde23[_0x551091])['substr']((''+_0x1dde23[_0x551091])[_0x39aad2(0xe5)])));return _0x1405b1;}[_0x4d0ca4(0x14d)](_0x2430bc=_0x1ef4d7,_0x8f05f3='',_0x4358a0='',_0x1c0903){const _0x3399e3=_0x4d0ca4,_0xa9655d=_0x55b22d=>{const _0x3cf96d=_0x1ed2;if(!_0x55b22d)return _0x55b22d;if(_0x3cf96d(0x13b)==typeof _0x55b22d)return this['isLoon']()?_0x55b22d:this[_0x3cf96d(0x116)]()?{'open-url':_0x55b22d}:this[_0x3cf96d(0x8d)]()?{'url':_0x55b22d}:void 0x0;if('object'==typeof _0x55b22d){if(this[_0x3cf96d(0x171)]()){let _0x139a24=_0x55b22d['openUrl']||_0x55b22d[_0x3cf96d(0xdd)]||_0x55b22d[_0x3cf96d(0x174)],_0x360719=_0x55b22d[_0x3cf96d(0xe4)]||_0x55b22d[_0x3cf96d(0xaa)];return{'openUrl':_0x139a24,'mediaUrl':_0x360719};}if(this[_0x3cf96d(0x116)]()){let _0x59864e=_0x55b22d[_0x3cf96d(0x174)]||_0x55b22d[_0x3cf96d(0xdd)]||_0x55b22d[_0x3cf96d(0x141)],_0x4e8a00=_0x55b22d[_0x3cf96d(0xaa)]||_0x55b22d[_0x3cf96d(0xe4)];return{'open-url':_0x59864e,'media-url':_0x4e8a00};}if(this[_0x3cf96d(0x8d)]()){let _0x9a7f67=_0x55b22d['url']||_0x55b22d[_0x3cf96d(0x141)]||_0x55b22d[_0x3cf96d(0x174)];return{'url':_0x9a7f67};}}};if(this[_0x3399e3(0xb1)]||(this[_0x3399e3(0x8d)]()||this[_0x3399e3(0x171)]()?$notification['post'](_0x2430bc,_0x8f05f3,_0x4358a0,_0xa9655d(_0x1c0903)):this[_0x3399e3(0x116)]()&&$notify(_0x2430bc,_0x8f05f3,_0x4358a0,_0xa9655d(_0x1c0903))),!this['isMuteLog']){let _0x22d7b6=['',_0x3399e3(0x9b)];_0x22d7b6[_0x3399e3(0xf0)](_0x2430bc),_0x8f05f3&&_0x22d7b6[_0x3399e3(0xf0)](_0x8f05f3),_0x4358a0&&_0x22d7b6[_0x3399e3(0xf0)](_0x4358a0),console['log'](_0x22d7b6[_0x3399e3(0x16a)]('\x0a')),this[_0x3399e3(0x11f)]=this['logs'][_0x3399e3(0x12b)](_0x22d7b6);}}[_0x4d0ca4(0xd4)](..._0x1b75a5){const _0x21ce8e=_0x4d0ca4;_0x1b75a5[_0x21ce8e(0xe5)]>0x0&&(this[_0x21ce8e(0x11f)]=[...this['logs'],..._0x1b75a5]),console[_0x21ce8e(0xd4)](_0x1b75a5[_0x21ce8e(0x16a)](this['logSeparator']));}[_0x4d0ca4(0x120)](_0x44d481,_0x423a59){const _0x4b2aeb=_0x4d0ca4,_0x96e60d=!this[_0x4b2aeb(0x8d)]()&&!this[_0x4b2aeb(0x116)]()&&!this[_0x4b2aeb(0x171)]();_0x96e60d?this['log']('','❗️'+this['name']+_0x4b2aeb(0xda),_0x44d481[_0x4b2aeb(0x151)]):this[_0x4b2aeb(0xd4)]('','❗️'+this[_0x4b2aeb(0xa2)]+_0x4b2aeb(0xda),_0x44d481);}[_0x4d0ca4(0x157)](_0x1d1f3e){return new Promise(_0x30615a=>setTimeout(_0x30615a,_0x1d1f3e));}['done'](_0x2fb03d={}){const _0x3c2b85=_0x4d0ca4,_0x4ab1d8=new Date()[_0x3c2b85(0xc3)](),_0x2bc1b1=(_0x4ab1d8-this['startTime'])/0x3e8;this[_0x3c2b85(0xd4)]('','🔔'+this[_0x3c2b85(0xa2)]+_0x3c2b85(0x10b)+_0x2bc1b1+'\x20秒'),this[_0x3c2b85(0xd4)](),(this['isSurge']()||this[_0x3c2b85(0x116)]()||this[_0x3c2b85(0x171)]())&&$done(_0x2fb03d);}}(_0x1ef4d7,_0x5016d2);} -------------------------------------------------------------------------------- /zsq_JS/kgjd.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 矿工驾到 app (链接带邀请) 谢谢填写 3 | * 下载地址: 【矿工驾到】打开链接,下载安装应用http://kgjd.jmsfx.top/download/d72e2fb8eb3c11ae?user=84500 4 | * 脚本地址 https://raw.githubusercontent.com/sofm13/qinlongjs/master/zsq_JS/kgjd.js 5 | * 6 | * cron 5 * * * * sofm13_qinlongjs_master/jzkg.js 7 | * 8 | * 矿工驾到 app 类似以前的疯狂水晶,只有app 9 | * 10 | * 薅了可能有,不薅一定没有,别问收益!! 11 | * 12 | *一键收矿石:这个比较特殊,需要邀请超过10人才能开启,然后有两个地方,一个是跟随任务每天 8 点一次,另一个跟随 红包雨 每小时一次 13 | * 14 | * ========= 青龙--配置文件 ========= 15 | * 变量格式: export kgjd_data='userid1 @ userid2' 多个账号用 @分割 16 | * 17 | * userid app 页面兑换界面--左上角 有 id , 找不到的可以告别羊毛了 在问自杀 18 | * 19 | * 还是不会的请百度或者群里求助: https://t.me/zsq_ql, https://t.me/zsq_sofm13 联系群主 @sofm_13 或Q群978963762来一起交流啊 20 | * 21 | */ 22 | const $ = new Env("矿工驾到"); 23 | const notify = $.isNode() ? require("./sendNotify") : ""; 24 | const Notify = 1; //0为关闭通知,1为打开通知,默认为1 25 | const debug = 0; //0为关闭调试,1为打开调试,默认为0 26 | ////////////////////// 27 | let ckStr = process.env.kgjd_data; 28 | let kgjd_dataArr = []; 29 | let msg = ""; 30 | let ck = ""; 31 | let sign = ""; 32 | 33 | 34 | ///////////////////////////////////////////////////////// 35 | console.log(ckStr); 36 | 37 | async function tips(ckArr) { 38 | console.log(`\n本地脚本4-28`); 39 | // console.log(`\n 脚本已恢复正常状态,请及时更新! `); 40 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 41 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 42 | console.log(`\n 脚本测试中,有bug及时反馈! \n`); 43 | 44 | console.log( 45 | `\n================================================\n脚本执行 - 北京时间(UTC+8): ${new Date( 46 | new Date().getTime() + 47 | new Date().getTimezoneOffset() * 60 * 1000 + 48 | 8 * 60 * 60 * 1000 49 | ).toLocaleString()} \n================================================\n` 50 | ); 51 | 52 | await wyy(); 53 | 54 | console.log( 55 | `\n=================== 共找到 ${ckArr.length} 个账号 ===================` 56 | ); 57 | debugLog(`【debug】 这是你的账号数组:\n ${ckArr}`); 58 | } 59 | 60 | !(async () => { 61 | let ckArr = await getCks(ckStr, "jzkg_data"); 62 | 63 | await tips(ckArr); 64 | 65 | for (let index = 0; index < ckArr.length; index++) { 66 | let num = index + 1; 67 | console.log(`\n========= 开始【第 ${num} 个账号】=========\n`); 68 | 69 | ck = ckArr[index].split("&"); 70 | if (debug) { 71 | console.log(`\n 【debug】 这是你第 ${num} 账号信息:\n ${ck}\n`); 72 | } 73 | 74 | await start(); 75 | } 76 | await SendMsg(msg); 77 | 78 | })() 79 | .catch((e) => $.logErr(e)) 80 | .finally(() => $.done()); 81 | 82 | async function start() { 83 | 84 | let myDate = new Date(); 85 | h = myDate.getHours(); 86 | // console.log(h); 87 | console.log(`现在的时间 ${h} 点 ,签到,观看视频,惊喜红包,升级 等任务每天 8 点开启! `); 88 | if (h == 8) { 89 | 90 | console.log("开始 签到"); 91 | await signin(); 92 | await $.wait(2 * 1000); 93 | 94 | console.log('开始 观看视频'); 95 | await ad_video(); 96 | await $.wait(2 * 1000); 97 | 98 | console.log('开始 惊喜红包'); 99 | await gold_ad_video(); 100 | await $.wait(2 * 1000); 101 | 102 | console.log('开始 升级'); 103 | await Upgrade(); 104 | await $.wait(2 * 1000); 105 | } else { 106 | console.log(`现在的时间 ${h} 点 , 跳过其他任务,执行红包雨任务! `); 107 | 108 | } 109 | 110 | console.log('开始 一键收矿石'); 111 | await collection(); 112 | await $.wait(2 * 1000); 113 | 114 | 115 | console.log('开始 红包雨'); 116 | await rain_open_redbag(); 117 | await $.wait(2 * 1000); 118 | 119 | } 120 | 121 | 122 | /** 123 | * 签到 get 124 | * https://kg.jmsfx.top/app/index.php??i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=ee0709fabd462f2fcc1ba9606e3329c0&m=skai_tooln_c&dopost=make_sign&userid=68738 125 | * 126 | * https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=ee0709fabd462f2fcc1ba9606e3329c0&m=skai_tooln_c&dopost=make_sign&userid=68738 127 | * 128 | */ 129 | async function signin(timeout = 3 * 1000) { 130 | 131 | let sign = MD5Encrypt(`a=wxapp&c=entry&do=user&dopost=make_sign&from=wxapp&i=2&m=skai_tooln_c&t=0&userid=${ck}&v=1.0undefined`); 132 | // console.log(sign); 133 | 134 | let url = { 135 | url: `https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=${sign}&m=skai_tooln_c&dopost=make_sign&userid=${ck}`, 136 | headers: { 137 | "Content-Type": "application/x-www-form-urlencoded", 138 | Host: "kg.jmsfx.top", 139 | }, 140 | }; 141 | 142 | let result = await httpGet(url, `签到`, timeout); 143 | if (result.result == "success") { 144 | console.log( 145 | `\n 签到:成功 🎉 您已经连续签到 ${result.sign_total} 天\n签到获得 能量 ${result.addpower} ,累计能量 ${result.power}\n` 146 | ); 147 | 148 | // msg += `\n 签到:成功 🎉 您已经连续签到 ${result.sign_total} 天\n签到获得 能量 ${result.addpower} ,累计能量 ${result.power}\n` 149 | } else if (result.result == "fail") { 150 | console.log(`\n 签到:${result.msg}\n`); 151 | } else { 152 | console.log(`\n 签到: 失败 ❌ 了呢,原因未知!\n ${result} \n `); 153 | } 154 | } 155 | 156 | /** 157 | * 观看视频 get 158 | * https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=4ca5032b2f0f16e2423880292792e5fa&m=skai_tooln_c&dopost=get_some_power_ad_video&userid=17803 159 | */ 160 | async function ad_video(timeout = 3 * 1000) { 161 | let sign = MD5Encrypt(`a=wxapp&c=entry&do=user&dopost=get_some_power_ad_video&from=wxapp&i=2&m=skai_tooln_c&t=0&userid=${ck}&v=1.0undefined`); 162 | // console.log(sign); 163 | 164 | let url = { 165 | url: `https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=${sign}&m=skai_tooln_c&dopost=get_some_power_ad_video&userid=${ck}`, 166 | headers: { 167 | "Content-Type": "application/x-www-form-urlencoded", 168 | Host: "kg.jmsfx.top", 169 | }, 170 | }; 171 | 172 | let result = await httpGet(url, `观看视频`, timeout); 173 | if (result.result == "success") { 174 | console.log( 175 | `\n 观看视频:成功 🎉 您今天已看: ${result.userdata.ad_video_num}/8 次, \n 观看视频 获得 能量 ${result.addpower} ,累计有能量 ${result.power}\n` 176 | ); 177 | 178 | if (result.userdata.ad_video_num < 8) { 179 | let num = randomInt(40, 60); 180 | console.log(`\n 等待 ${num} s后,继续观看视频\n`); 181 | await $.wait(num * 1000); 182 | console.log("开始 观看视频"); 183 | await ad_video(); 184 | } 185 | } else if (result.result == "fail") { 186 | console.log(`\n 观看视频:${result.msg}\n`); 187 | } else { 188 | console.log(`\n 观看视频: 失败 ❌ 了呢,原因未知!\n ${result} \n `); 189 | } 190 | } 191 | 192 | /** 193 | * 惊喜红包 get 194 | * https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=13a6d7f8418c39085c261a91e9da665a&m=skai_tooln_c&dopost=get_some_gold_ad_video_full&userid=17803 195 | */ 196 | async function gold_ad_video(timeout = 3 * 1000) { 197 | 198 | let sign = MD5Encrypt(`a=wxapp&c=entry&do=user&dopost=get_some_gold_ad_video_full&from=wxapp&i=2&m=skai_tooln_c&t=0&userid=${ck}&v=1.0undefined`); 199 | 200 | let url = { 201 | url: `https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=${sign}&m=skai_tooln_c&dopost=get_some_gold_ad_video_full&userid=${ck}`, 202 | headers: { 203 | "Content-Type": "application/x-www-form-urlencoded", 204 | Host: "kg.jmsfx.top", 205 | }, 206 | }; 207 | 208 | let result = await httpGet(url, `惊喜红包`, timeout); 209 | if (result.result == "success") { 210 | console.log( 211 | `\n 惊喜红包:成功 🎉 您今天已看: ${result.userdata.ad_videob_num}/5 次 \n 惊喜红包 获得 金币 ${result.addgold} \n` 212 | ); 213 | 214 | if (result.userdata.ad_videob_num < 5) { 215 | let num = randomInt(40, 50); 216 | console.log(`\n 等待 ${num} s后,继续惊喜红包\n`); 217 | await $.wait(num * 1000); 218 | console.log("开始 惊喜红包"); 219 | await gold_ad_video(); 220 | } 221 | } else if (result.result == "fail") { 222 | console.log(`\n 惊喜红包:${result.msg}\n`); 223 | } else { 224 | console.log(`\n 惊喜红包: 失败 ❌ 了呢,原因未知!\n ${result} \n `); 225 | } 226 | } 227 | 228 | /** 229 | * 升级 get 230 | * https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=d1a53fca503869437cd14a2f0e9ab794&m=skai_tooln_c&dopost=update_grade&userid=17803 231 | */ 232 | async function Upgrade(timeout = 3 * 1000) { 233 | 234 | let sign = MD5Encrypt(`a=wxapp&c=entry&do=user&dopost=update_grade&from=wxapp&i=2&m=skai_tooln_c&t=0&userid=${ck}&v=1.0undefined`); 235 | let url = { 236 | url: `https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=user&sign=${sign}&m=skai_tooln_c&dopost=update_grade&userid=${ck}`, 237 | headers: { 238 | "Content-Type": "application/x-www-form-urlencoded", 239 | Host: "kg.jmsfx.top", 240 | }, 241 | }; 242 | 243 | let result = await httpGet(url, `升级`, timeout); 244 | if (result.result == "success") { 245 | console.log(`\n 升级:成功 🎉 您已经 ${result.grade} 级了呢! 好厉害\n`); 246 | } else if (result.result == "fail") { 247 | console.log(`\n 升级:${result.msg} ,不灰心,攒攒下次一定行!\n`); 248 | } else { 249 | console.log(`\n 升级: 失败 ❌ 了呢,原因未知!\n ${result} \n `); 250 | } 251 | } 252 | 253 | /** 254 | * 一键收矿石 get 255 | * https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=friend&sign=5d1015991229a24dbb4f513a35db571b&m=skai_tooln_c&dopost=all_take_up&userid=17803 256 | */ 257 | async function collection(timeout = 3 * 1000) { 258 | let sign = MD5Encrypt(`a=wxapp&c=entry&do=friend&dopost=all_take_up&from=wxapp&i=2&m=skai_tooln_c&t=0&userid=${ck}&v=1.0undefined`); 259 | let url = { 260 | url: `https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=friend&sign=${sign}&m=skai_tooln_c&dopost=all_take_up&userid=${ck}`, 261 | headers: { 262 | "Content-Type": "application/x-www-form-urlencoded", 263 | Host: "kg.jmsfx.top", 264 | }, 265 | }; 266 | 267 | let result = await httpGet(url, `一键收矿石`, timeout); 268 | if (result.result == "success") { 269 | console.log( 270 | `\n 一键收矿石:${result.result} 🎉 恭喜您获得 ${result.take_up_all_stone} 矿石呢!\n` 271 | ); 272 | } else if (result.result == "fail") { 273 | console.log(`\n 一键收矿石:${result.msg}!\n`); 274 | } else { 275 | console.log(`\n 一键收矿石: 失败 ❌ 了呢,原因未知!\n ${result} \n `); 276 | } 277 | } 278 | 279 | 280 | 281 | 282 | 283 | 284 | /** 285 | * 红包雨 get 286 | * https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=index&sign=f85cf8026a9b813635995a143f9d3039&m=skai_tooln_c&dopost=rain_open_redbag&userid=17803&time=11 287 | */ 288 | async function rain_open_redbag(timeout = 3 * 1000) { 289 | let myDate = new Date(); 290 | time = myDate.getHours(); 291 | // // console.log(h); 292 | let sign = MD5Encrypt(`a=wxapp&c=entry&do=index&dopost=rain_open_redbag&from=wxapp&i=2&m=skai_tooln_c&t=0&time=${time}&userid=${ck}&v=1.0undefined`); 293 | 294 | let url = { 295 | url: `https://kg.jmsfx.top/app/index.php?i=2&t=0&v=1.0&from=wxapp&c=entry&a=wxapp&do=index&sign=${sign}&m=skai_tooln_c&dopost=rain_open_redbag&userid=${ck}&time=${time}`, 296 | headers: { 297 | "Content-Type": "application/x-www-form-urlencoded", 298 | Host: "kg.jmsfx.top", 299 | }, 300 | }; 301 | 302 | let result = await httpGet(url, `红包雨`, timeout); 303 | if (result.result == "success") { 304 | console.log( 305 | `\n 红包雨: ${result.result} 🎉 您在 ${time} 点红包雨 获得 金币 ${result.addmoney} \n` 306 | ); 307 | 308 | 309 | } else if (result.result == "fail") { 310 | console.log(`\n 红包雨:${result.msg}\n`); 311 | } else { 312 | console.log(`\n 惊喜红包: 失败 ❌ 了呢,原因未知!\n ${result} \n `); 313 | } 314 | } 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | //#region 固定代码 333 | // ============================================变量检查============================================ \\ 334 | 335 | async function getCks(ck, str) { 336 | 337 | 338 | return new Promise((resolve, reject) => { 339 | 340 | let ckArr = [] 341 | if (ck) { 342 | if (ck.indexOf("@") != -1) { 343 | 344 | ck.split("@").forEach((item) => { 345 | ckArr.push(item); 346 | }); 347 | } else { 348 | ckArr.push(ck); 349 | } 350 | resolve(ckArr) 351 | } else { 352 | console.log(`\n 【${$.name}】:未填写变量 ${str}`) 353 | } 354 | 355 | } 356 | ) 357 | } 358 | 359 | // ============================================发送消息============================================ \\ 360 | 361 | async function SendMsg(message) { 362 | if (!message) return; 363 | 364 | if (Notify > 0) { 365 | if ($.isNode()) { 366 | var notify = require("../矿工驾到/sendNotify"); 367 | await notify.sendNotify($.name, message); 368 | } else { 369 | $.msg(message); 370 | } 371 | } else { 372 | console.log(message); 373 | } 374 | } 375 | 376 | /** 377 | * 随机数生成 378 | */ 379 | 380 | function randomString(e) { 381 | e = e || 32; 382 | var t = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890", 383 | a = t.length, 384 | n = ""; 385 | 386 | for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a)); 387 | return n; 388 | } 389 | 390 | /** 391 | * 随机整数生成 392 | */ 393 | 394 | function randomInt(min, max) { 395 | return Math.round(Math.random() * (max - min) + min); 396 | } 397 | 398 | //每日网抑云 399 | function wyy(timeout = 3 * 1000) { 400 | return new Promise((resolve) => { 401 | let url = { 402 | url: `https://keai.icu/apiwyy/api` 403 | } 404 | $.get(url, async (err, resp, data) => { 405 | try { 406 | data = JSON.parse(data) 407 | console.log(`\n 【网抑云时间】: ${data.content} by--${data.music}`); 408 | 409 | } catch (e) { 410 | $.logErr(e, resp); 411 | } finally { 412 | resolve() 413 | } 414 | }, timeout) 415 | }) 416 | } 417 | // ============================================ get请求 ============================================ \\ 418 | async function httpGet(getUrlObject, tip, timeout = 3 * 1000) { 419 | return new Promise((resolve) => { 420 | let url = getUrlObject; 421 | if (!tip) { 422 | let tmp = arguments.callee.toString(); 423 | let re = /function\s*(\w*)/i; 424 | let matches = re.exec(tmp); 425 | tip = matches[1]; 426 | } 427 | if (debug) { 428 | console.log( 429 | `\n 【debug】=============== 这是 ${tip} 请求 url ===============` 430 | ); 431 | console.log(url); 432 | } 433 | 434 | $.get( 435 | url, 436 | async (error, response, _data) => { 437 | try { 438 | if (debug) { 439 | console.log( 440 | `\n\n 【debug】===============这是 ${tip} 返回data==============` 441 | ); 442 | console.log(_data); 443 | console.log(`======`); 444 | console.log(JSON.parse(_data)); 445 | } 446 | let result = JSON.parse(_data); 447 | resolve(result); 448 | } catch (e) { 449 | console.log(e); 450 | } finally { 451 | resolve(); 452 | } 453 | }, 454 | timeout 455 | ); 456 | }); 457 | } 458 | 459 | // ============================================ post请求 ============================================ \\ 460 | async function httpPost(postUrlObject, tip, timeout = 3 * 1000) { 461 | return new Promise((resolve) => { 462 | let url = postUrlObject; 463 | if (!tip) { 464 | let tmp = arguments.callee.toString(); 465 | let re = /function\s*(\w*)/i; 466 | let matches = re.exec(tmp); 467 | tip = matches[1]; 468 | } 469 | if (debug) { 470 | console.log( 471 | `\n 【debug】=============== 这是 ${tip} 请求 url ===============` 472 | ); 473 | console.log(url); 474 | } 475 | 476 | $.post( 477 | url, 478 | async (error, response, data) => { 479 | try { 480 | if (debug) { 481 | console.log( 482 | `\n\n 【debug】===============这是 ${tip} 返回data==============` 483 | ); 484 | console.log(data); 485 | console.log(`======`); 486 | console.log(JSON.parse(data)); 487 | } 488 | let result = JSON.parse(data); 489 | resolve(result); 490 | } catch (e) { 491 | console.log(e); 492 | } finally { 493 | resolve(); 494 | } 495 | }, 496 | timeout 497 | ); 498 | }); 499 | } 500 | 501 | // ============================================ debug调试 ============================================ \\ 502 | function debugLog(...args) { 503 | if (debug) { 504 | console.log(...args); 505 | } 506 | } 507 | 508 | //#endregion 509 | 510 | // prettier-ignore 511 | function MD5Encrypt(a) { function b(a, b) { return a << b | a >>> 32 - b } function c(a, b) { var c, d, e, f, g; return e = 2147483648 & a, f = 2147483648 & b, c = 1073741824 & a, d = 1073741824 & b, g = (1073741823 & a) + (1073741823 & b), c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1073741824 ^ g ^ e ^ f : g ^ e ^ f } function d(a, b, c) { return a & b | ~a & c } function e(a, b, c) { return a & c | b & ~c } function f(a, b, c) { return a ^ b ^ c } function g(a, b, c) { return b ^ (a | ~c) } function h(a, e, f, g, h, i, j) { return a = c(a, c(c(d(e, f, g), h), j)), c(b(a, i), e) } function i(a, d, f, g, h, i, j) { return a = c(a, c(c(e(d, f, g), h), j)), c(b(a, i), d) } function j(a, d, e, g, h, i, j) { return a = c(a, c(c(f(d, e, g), h), j)), c(b(a, i), d) } function k(a, d, e, f, h, i, j) { return a = c(a, c(c(g(d, e, f), h), j)), c(b(a, i), d) } function l(a) { for (var b, c = a.length, d = c + 8, e = (d - d % 64) / 64, f = 16 * (e + 1), g = new Array(f - 1), h = 0, i = 0; c > i;)b = (i - i % 4) / 4, h = i % 4 * 8, g[b] = g[b] | a.charCodeAt(i) << h, i++; return b = (i - i % 4) / 4, h = i % 4 * 8, g[b] = g[b] | 128 << h, g[f - 2] = c << 3, g[f - 1] = c >>> 29, g } function m(a) { var b, c, d = "", e = ""; for (c = 0; 3 >= c; c++)b = a >>> 8 * c & 255, e = "0" + b.toString(16), d += e.substr(e.length - 2, 2); return d } function n(a) { a = a.replace(/\r\n/g, "\n"); for (var b = "", c = 0; c < a.length; c++) { var d = a.charCodeAt(c); 128 > d ? b += String.fromCharCode(d) : d > 127 && 2048 > d ? (b += String.fromCharCode(d >> 6 | 192), b += String.fromCharCode(63 & d | 128)) : (b += String.fromCharCode(d >> 12 | 224), b += String.fromCharCode(d >> 6 & 63 | 128), b += String.fromCharCode(63 & d | 128)) } return b } var o, p, q, r, s, t, u, v, w, x = [], y = 7, z = 12, A = 17, B = 22, C = 5, D = 9, E = 14, F = 20, G = 4, H = 11, I = 16, J = 23, K = 6, L = 10, M = 15, N = 21; for (a = n(a), x = l(a), t = 1732584193, u = 4023233417, v = 2562383102, w = 271733878, o = 0; o < x.length; o += 16)p = t, q = u, r = v, s = w, t = h(t, u, v, w, x[o + 0], y, 3614090360), w = h(w, t, u, v, x[o + 1], z, 3905402710), v = h(v, w, t, u, x[o + 2], A, 606105819), u = h(u, v, w, t, x[o + 3], B, 3250441966), t = h(t, u, v, w, x[o + 4], y, 4118548399), w = h(w, t, u, v, x[o + 5], z, 1200080426), v = h(v, w, t, u, x[o + 6], A, 2821735955), u = h(u, v, w, t, x[o + 7], B, 4249261313), t = h(t, u, v, w, x[o + 8], y, 1770035416), w = h(w, t, u, v, x[o + 9], z, 2336552879), v = h(v, w, t, u, x[o + 10], A, 4294925233), u = h(u, v, w, t, x[o + 11], B, 2304563134), t = h(t, u, v, w, x[o + 12], y, 1804603682), w = h(w, t, u, v, x[o + 13], z, 4254626195), v = h(v, w, t, u, x[o + 14], A, 2792965006), u = h(u, v, w, t, x[o + 15], B, 1236535329), t = i(t, u, v, w, x[o + 1], C, 4129170786), w = i(w, t, u, v, x[o + 6], D, 3225465664), v = i(v, w, t, u, x[o + 11], E, 643717713), u = i(u, v, w, t, x[o + 0], F, 3921069994), t = i(t, u, v, w, x[o + 5], C, 3593408605), w = i(w, t, u, v, x[o + 10], D, 38016083), v = i(v, w, t, u, x[o + 15], E, 3634488961), u = i(u, v, w, t, x[o + 4], F, 3889429448), t = i(t, u, v, w, x[o + 9], C, 568446438), w = i(w, t, u, v, x[o + 14], D, 3275163606), v = i(v, w, t, u, x[o + 3], E, 4107603335), u = i(u, v, w, t, x[o + 8], F, 1163531501), t = i(t, u, v, w, x[o + 13], C, 2850285829), w = i(w, t, u, v, x[o + 2], D, 4243563512), v = i(v, w, t, u, x[o + 7], E, 1735328473), u = i(u, v, w, t, x[o + 12], F, 2368359562), t = j(t, u, v, w, x[o + 5], G, 4294588738), w = j(w, t, u, v, x[o + 8], H, 2272392833), v = j(v, w, t, u, x[o + 11], I, 1839030562), u = j(u, v, w, t, x[o + 14], J, 4259657740), t = j(t, u, v, w, x[o + 1], G, 2763975236), w = j(w, t, u, v, x[o + 4], H, 1272893353), v = j(v, w, t, u, x[o + 7], I, 4139469664), u = j(u, v, w, t, x[o + 10], J, 3200236656), t = j(t, u, v, w, x[o + 13], G, 681279174), w = j(w, t, u, v, x[o + 0], H, 3936430074), v = j(v, w, t, u, x[o + 3], I, 3572445317), u = j(u, v, w, t, x[o + 6], J, 76029189), t = j(t, u, v, w, x[o + 9], G, 3654602809), w = j(w, t, u, v, x[o + 12], H, 3873151461), v = j(v, w, t, u, x[o + 15], I, 530742520), u = j(u, v, w, t, x[o + 2], J, 3299628645), t = k(t, u, v, w, x[o + 0], K, 4096336452), w = k(w, t, u, v, x[o + 7], L, 1126891415), v = k(v, w, t, u, x[o + 14], M, 2878612391), u = k(u, v, w, t, x[o + 5], N, 4237533241), t = k(t, u, v, w, x[o + 12], K, 1700485571), w = k(w, t, u, v, x[o + 3], L, 2399980690), v = k(v, w, t, u, x[o + 10], M, 4293915773), u = k(u, v, w, t, x[o + 1], N, 2240044497), t = k(t, u, v, w, x[o + 8], K, 1873313359), w = k(w, t, u, v, x[o + 15], L, 4264355552), v = k(v, w, t, u, x[o + 6], M, 2734768916), u = k(u, v, w, t, x[o + 13], N, 1309151649), t = k(t, u, v, w, x[o + 4], K, 4149444226), w = k(w, t, u, v, x[o + 11], L, 3174756917), v = k(v, w, t, u, x[o + 2], M, 718787259), u = k(u, v, w, t, x[o + 9], N, 3951481745), t = c(t, p), u = c(u, q), v = c(v, r), w = c(w, s); var O = m(t) + m(u) + m(v) + m(w); return O.toLowerCase() } 512 | 513 | function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } -------------------------------------------------------------------------------- /zsq_JS/xydt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 幸运答题,余额达50元即可提现,定时收货红包与答题卡,答题需要自己手动 3 | * 4 | * 地址: https://raw.githubusercontent.com/sofm13/qinlongjs/master/zsq_JS/xydt.js 5 | * 6 | * cron 5 * * * * sofm13_qinlongjs_master/xydt.js 7 | * 8 | * 有需求可加入tg:https://t.me/zsq_ql, https://t.me/zsq_sofm13 联系群主 @sofm_13 或Q群978963762来一起交流啊 9 | * 10 | * 抓包方式 进入小程序随机抓取接口 xcx.szlzyd.com 取body内的openid与customKey即可 11 | * 12 | * ========= 青龙 ========= 13 | * 变量格式:export xydt='openId=?&key=? @ openId=?&key=? ' 多个账号用 @分割 14 | * 15 | */ 16 | 17 | 18 | // @ts-ignore 19 | const $ = new Env("幸运答题") 20 | const request = require('request'); 21 | // @ts-ignore 22 | const Notify = 1 //0为关闭通知,1为打开通知,默认为1 23 | const debug = 0 //0为关闭调试,1为打开调试,默认为0 24 | ////////////////////// 25 | 26 | const initRequestHeaders = () => { 27 | return { 28 | "User-Agent": "Mozilla/5.0 (Linux; Android 12; IN2020 Build/SKQ1.210216.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3211 MMWEBSDK/20211001 Mobile Safari/537.36 MMWEBID/87 MicroMessenger/8.0.16.2040(0x2800105F) Process/appbrand2 WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android", 29 | "content-type": "application/json", 30 | 'Host': 'xcx.szlzyd.com', 31 | }; 32 | } 33 | 34 | let msg = '' 35 | let ck = '' 36 | // @ts-ignore 37 | let ckStr = process.env.xydt 38 | //let ckStr = '' 39 | let ckStrArr = [] 40 | let guids = ''; 41 | ///////////////////////////////////////////////////////// 42 | const taskType = [{ "name": "领取红包", "value": 54 }, { "name": "漂浮答题卡", "value": 90 }, { "name": "领取答题卡", "value": 92 }]; 43 | const signDay = { 44 | "1": 72, 45 | "2": 74, 46 | "3": 76, 47 | "4": 78, 48 | "5": 80, 49 | "6": 82, 50 | "7": 84 51 | } 52 | 53 | !(async () => { 54 | 55 | if (!(await MoreUser())) //多账号分割 判断变量是否为空 初步处理多账号 56 | return; 57 | else { 58 | 59 | await wyy(); 60 | console.log( 61 | `\n\n========================================= \n脚本执行 - 北京时间(UTC+8):${new Date( 62 | new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 63 | 8 * 60 * 60 * 1000).toLocaleString()} \n=========================================\n` 64 | ); 65 | 66 | console.log(`\n=================== 共找到 ${ckStrArr.length} 个账号 ===================`) 67 | 68 | if (debug) { 69 | console.log(`【debug】 这是你的全部账号:\n ${ckStrArr}`); 70 | } 71 | 72 | 73 | for (let index = 0; index < ckStrArr.length; index++) { 74 | 75 | let num = index + 1 76 | console.log(`\n========= 开始【第 ${num} 个账号】=========\n`) 77 | 78 | ck = ckStrArr[index].split('&'); // 这里是分割你每个账号的每个小项 79 | 80 | let openid = ck[0].split('=')[1]; 81 | let key = ck[1].split('=')[1]; 82 | 83 | for (let i = 0; i < taskType.length; i++) { 84 | 85 | $.log(`开始执行${taskType[i].name} `) 86 | await postKa(openid, key, taskType[i].value, generateUUID()) 87 | } 88 | 89 | for (const [k, v] of Object.entries(signDay)) { 90 | $.log(`开始签到 ${v}`) 91 | await postKa(openid, key, v, generateUUID()) 92 | } 93 | 94 | await sign(openid, key, generateUUID()) 95 | var datika = await getBonusesNum(openid, key, generateUUID()) 96 | 97 | var answerId = 0; 98 | var correct = ""; 99 | var isfirst = 1; 100 | 101 | if (datika >= 20 && datika % 2 == 0) { 102 | $.log(`答题卡大于20张开始答题`); 103 | for (let i = 0; i < parseInt(datika); i++) { 104 | 105 | $.log(`开始答题第${i + 1}道`); 106 | let answer = await answerQuery(openid, key, generateUUID()); 107 | answerId = answer.answerId; 108 | correct = answer.correct; 109 | 110 | //延时 111 | await sleep(1000); 112 | let result = await finish(openid, key, generateUUID(), answerId, correct, isfirst); 113 | 114 | isfirst = isfirst == 1 ? 0 : 1; 115 | if (result.find(element => element.type == 1) != undefined) { 116 | $.log(`获得金币${result.find(element => element.type == 0).amount} 余额${parseFloat(result.find(element => element.type == 1).amount / 10000)} 🎉`); 117 | } 118 | else { 119 | $.log(`获得金币${result.find(element => element.type == 0).amount} 🎉`); 120 | } 121 | //延时 122 | await sleep(1000); 123 | await getBonusesNum(openid, key, generateUUID()); 124 | await sleep(1000); 125 | } 126 | } 127 | 128 | 129 | await user(openid, key, generateUUID()) 130 | 131 | } 132 | 133 | await SendMsg(msg); 134 | $.done() 135 | } 136 | 137 | })() 138 | .catch((e) => $.logErr(e)) 139 | .finally() 140 | 141 | const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay)) 142 | async function user(openId, key, guid) { 143 | let url = `https://xcx.szlzyd.com/new/api/user/account/wxb405959bf31342b2/v=030101_${openId}`; 144 | let body = JSON.stringify({ 145 | "b": { 146 | "appId": "wxb405959bf31342b2", 147 | "productId": 10, 148 | "productName": "幸运答题赚", 149 | "openId": openId, 150 | "customKey": key, 151 | "unionId": "", 152 | "uuid": guid, 153 | "platform": "android", 154 | "version": "030101" 155 | }, 156 | "o": {} 157 | }); 158 | 159 | var result = await requestPost(url, body) 160 | 161 | if (request.code == 0) { 162 | $.logErr(result.msg); 163 | } 164 | else { 165 | let addmsg = `\n 账号${openId} 金币 ${result.data[0].validGold} 余额${parseFloat(result.data[0].validMoney / 10000)} \n`; 166 | $.log(addmsg); 167 | msg += addmsg; 168 | 169 | //如果金币大于10000自动兑换 170 | if (result.data[0].validGold > 10000) { 171 | $.log("金币大于10000,自动兑换10元余额 🎉") 172 | await exchange(openId, key, generateUUID()); 173 | } 174 | } 175 | } 176 | 177 | //答题卡 178 | async function getBonusesNum(openId, key, guid) { 179 | let url = `https://xcx.szlzyd.com/new/api/task/getBonusesNum/wxb405959bf31342b2/v=030101_${openId}`; 180 | let body = JSON.stringify({ 181 | "b": { 182 | "appId": "wxb405959bf31342b2", 183 | "productId": 10, 184 | "productName": "幸运答题赚", 185 | "openId": openId, 186 | "customKey": key, 187 | "unionId": "", 188 | "uuid": guid, 189 | "platform": "android", 190 | "version": "030101" 191 | }, 192 | "o": { "rightsId": 8 } 193 | }); 194 | 195 | var result = await requestPost(url, body) 196 | 197 | if (request.code == 0) { 198 | $.logErr(result.msg); 199 | } 200 | else { 201 | $.log(`共有${result.data[0]}张答题卡`) 202 | return result.data[0] 203 | } 204 | } 205 | 206 | //签到 207 | async function sign(openId, key, guid) { 208 | let url = `https://xcx.szlzyd.com/new/api/sign/serialSign/wxb405959bf31342b2/v=030101_${openId}`; 209 | let body = JSON.stringify({ 210 | "b": { 211 | "appId": "wxb405959bf31342b2", 212 | "productId": 10, 213 | "productName": "幸运答题赚", 214 | "openId": openId, 215 | "customKey": key, 216 | "unionId": "", 217 | "uuid": guid, 218 | "platform": "android", 219 | "version": "030101" 220 | }, 221 | "o": { 222 | "1": 72, 223 | "2": 74, 224 | "3": 76, 225 | "4": 78, 226 | "5": 80, 227 | "6": 82, 228 | "7": 84 229 | } 230 | }); 231 | 232 | var result = await requestPost(url, body) 233 | 234 | if (request.code == 0) { 235 | $.logErr(result.msg); 236 | } 237 | else { 238 | $.log(`签到成功 🎉`) 239 | } 240 | } 241 | 242 | //查题目 243 | async function answerQuery(openId, key, guid) { 244 | let url = `https://xcx.szlzyd.com/new/api/answer/query/wxb405959bf31342b2/v=030101_${openId}`; 245 | let body = JSON.stringify({ 246 | "b": { 247 | "appId": "wxb405959bf31342b2", 248 | "productId": 10, 249 | "productName": "幸运答题赚", 250 | "openId": openId, 251 | "customKey": key, 252 | "unionId": "", 253 | "uuid": guid, 254 | "platform": "android", 255 | "version": "030101" 256 | }, 257 | "o": { "answerType": 2 } 258 | }); 259 | 260 | var result = await requestPost(url, body) 261 | 262 | if (request.code == 0) { 263 | $.logErr(result.msg); 264 | } 265 | else { 266 | return result.data[0]; 267 | } 268 | } 269 | 270 | //完成题目 271 | async function finish(openId, key, guid, answerId, correct, isfirst) { 272 | let url = `https://xcx.szlzyd.com/new/api/answer/finish/wxb405959bf31342b2/v=030101_${openId}`; 273 | let body = JSON.stringify({ 274 | "b": { 275 | "appId": "wxb405959bf31342b2", 276 | "productId": 10, 277 | "productName": "幸运答题赚", 278 | "openId": openId, 279 | "customKey": key, 280 | "unionId": "", 281 | "uuid": guid, 282 | "platform": "android", 283 | "version": "030101" 284 | }, 285 | "o": { "answer": correct, "answerId": answerId, "isFirst": isfirst } 286 | }); 287 | 288 | var result = await requestPost(url, body) 289 | 290 | if (request.code == 0) { 291 | $.logErr(result.msg); 292 | } 293 | else { 294 | return result.data; 295 | } 296 | } 297 | 298 | async function exchange(openId, key, guid) { 299 | let url = `https://xcx.szlzyd.com/new/api/user/exchange/wxb405959bf31342b2/v=030101_${openId}`; 300 | let body = JSON.stringify({ 301 | "b": { 302 | "appId": "wxb405959bf31342b2", 303 | "productId": 10, 304 | "productName": "幸运答题赚", 305 | "openId": openId, 306 | "customKey": key, 307 | "unionId": "", 308 | "uuid": guid, 309 | "platform": "android", 310 | "version": "030101" 311 | }, 312 | "o": {} 313 | }); 314 | 315 | var result = await requestPost(url, body) 316 | 317 | if (request.code == 0) { 318 | $.logErr(result.msg); 319 | } 320 | else { 321 | $.log(result.msg); 322 | } 323 | } 324 | 325 | 326 | async function postKa(openId, key, type, guid) { 327 | 328 | //$.log(`${openId} ${key} ${type} ${guid}`) 329 | 330 | let url = `https://xcx.szlzyd.com/new/api/task/minute/wxb405959bf31342b2/v=030101_${openId}`; 331 | let body = JSON.stringify({ 332 | "b": { 333 | "appId": "wxb405959bf31342b2", 334 | "productId": 10, 335 | "productName": "幸运答题赚", 336 | "openId": openId, 337 | "customKey": key, 338 | "unionId": "", 339 | "uuid": guid, 340 | "platform": "android", 341 | "version": "030101" 342 | }, 343 | "o": { 344 | "bonusesTypeIds": [ 345 | type 346 | ] 347 | } 348 | }); 349 | 350 | var result = await requestPost(url, body) 351 | 352 | if (request.code == 0) { 353 | $.logErr(result.msg); 354 | } 355 | else { 356 | $.log(result.msg); 357 | } 358 | // body: '{"b": {"appId": "wxb405959bf31342b2","productId": 10,"productName": "幸运答题赚","openId": "o0T6Q4j28SW7VtnOlNFcIY4Js6PQ","customKey": "8EFF631B3BC2D9020FB7","unionId": "","uuid": "7cddb7ae-6a85-4a47-9790-99c8b5cfc379","platform": "android","version": "030101"},"o": {"bonusesTypeIds": [92]}}' 359 | } 360 | 361 | 362 | function wyy(timeout = 3 * 1000) { 363 | return new Promise((resolve) => { 364 | let url = { 365 | url: `https://keai.icu/apiwyy/api` 366 | } 367 | $.get(url, async (err, resp, data) => { 368 | try { 369 | data = JSON.parse(data) 370 | console.log(`\n 【网抑云时间】: ${data.content} by--${data.music}`); 371 | return data.content; 372 | } catch (e) { 373 | console.log(e, resp); 374 | } finally { 375 | resolve() 376 | } 377 | }, timeout) 378 | }) 379 | } 380 | 381 | function generateUUID() { // Public Domain/MIT 382 | var d = new Date().getTime();//Timestamp 383 | var d2 = ((typeof performance !== 'undefined') && performance.now && (performance.now() * 1000)) || 0;//Time in microseconds since page-load or 0 if unsupported 384 | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { 385 | var r = Math.random() * 16;//random number between 0 and 16 386 | if (d > 0) {//Use timestamp until depleted 387 | r = (d + r) % 16 | 0; 388 | d = Math.floor(d / 16); 389 | } else {//Use microseconds since page-load if supported 390 | r = (d2 + r) % 16 | 0; 391 | d2 = Math.floor(d2 / 16); 392 | } 393 | return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); 394 | }); 395 | } 396 | 397 | function requestPost(url, body) { 398 | var options = { 399 | 'method': 'POST', 400 | 'url': url, 401 | 'headers': initRequestHeaders(), 402 | body: body 403 | 404 | }; 405 | return new Promise((resolve, reject) => { 406 | const req = request(options, (error, res, body) => { 407 | if (!error && res.statusCode == 200) { 408 | resolve(JSON.parse(body)); 409 | } else { 410 | reject(error); 411 | } 412 | }); 413 | }); 414 | } 415 | //#region 固定代码 416 | // ============================================变量检查============================================ \\ 417 | // @ts-ignore 418 | async function MoreUser() { 419 | if (ckStr) { 420 | if (ckStr.indexOf("@") != -1) { 421 | ckStr.split("@").forEach((item) => { 422 | ckStrArr.push(item); 423 | }); 424 | } else { 425 | ckStrArr.push(ckStr); 426 | } 427 | } else { 428 | console.log(`\n 【${$.name}】:未填写变量 xydt`) 429 | return; 430 | } 431 | 432 | return true; 433 | } 434 | 435 | // ============================================发送消息============================================ \\ 436 | // @ts-ignore 437 | async function SendMsg(message) { 438 | if (!message) 439 | return; 440 | 441 | if (Notify > 0) { 442 | if ($.isNode()) { 443 | // @ts-ignore 444 | var notify = require('./sendNotify'); 445 | await notify.sendNotify($.name, message); 446 | } else { 447 | $.msg(message); 448 | } 449 | } else { 450 | console.log(message); 451 | } 452 | } 453 | 454 | /** 455 | * 随机数生成 456 | */ 457 | // @ts-ignore 458 | function randomString(e) { 459 | e = e || 32; 460 | var t = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890", 461 | a = t.length, 462 | n = ""; 463 | // @ts-ignore 464 | for (i = 0; i < e; i++) 465 | n += t.charAt(Math.floor(Math.random() * a)); 466 | return n 467 | } 468 | 469 | /** 470 | * 随机整数生成 471 | */ 472 | // @ts-ignore 473 | function randomInt(min, max) { 474 | return Math.round(Math.random() * (max - min) + min) 475 | } 476 | 477 | 478 | //#endregion 479 | 480 | 481 | 482 | 483 | // prettier-ignore 484 | // @ts-ignore 485 | function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } 486 | --------------------------------------------------------------------------------