├── README.md ├── USER_AGENTS.js ├── jdCookie.js ├── jd_Advent_exchange.js ├── jd_CheckCK.js ├── jd_XinFarm_draw.js ├── jd_XinFarm_help.js ├── jd_XinFarm_helpnum.js ├── jd_XinFarm_task.js ├── jd_XinFarm_water.js ├── jd_XinFarm_wxhelp.js ├── jd_beanSign.js ├── jd_bean_change.js ├── jd_bean_home.js ├── jd_beanday.js ├── jd_beangame_sign.js ├── jd_cacheIsvToken.js ├── jd_car_sign.js ├── jd_channel_follow.js ├── jd_channel_venue_sign.js ├── jd_clean_cart.js ├── jd_clean_coupon.js ├── jd_clothing_draw.js ├── jd_day.js ├── jd_daycj.js ├── jd_dayf.js ├── jd_dayf2.js ├── jd_disable_duplicate_task.js ├── jd_dplh0524.js ├── jd_dplh052402.js ├── jd_dplh0525.js ├── jd_dplh0601.js ├── jd_dplh_viewShop.js ├── jd_dpqd_main.js ├── jd_dpqd_record.js ├── jd_dpqd_sign.js ├── jd_dpqd_single.js ├── jd_drawShopGift.js ├── jd_dwapp.js ├── jd_evaluation.js ├── jd_fcwb_auto.js ├── jd_fcwb_help.js ├── jd_gwfd.js ├── jd_gzsl_contact.js ├── jd_gzsl_lottery.js ├── jd_healthCheck.js ├── jd_healthy_task.js ├── jd_indeps.js ├── jd_insight.js ├── jd_jinggeng_blindBox.js ├── jd_jinggeng_cart.js ├── jd_jinggeng_drawOne.js ├── jd_jinggeng_exchangeActDetail.js ├── jd_jinggeng_favoriteShop.js ├── jd_jinggeng_floor.js ├── jd_jinggeng_perfectInformation.js ├── jd_jinggeng_sign.js ├── jd_jinggeng_taskDraw.js ├── jd_jr_fish_help.js ├── jd_jrsign.js ├── jd_kd_bean.js ├── jd_kd_dlcs.js ├── jd_kd_fruit.js ├── jd_liveLottery.js ├── jd_lzkj_loreal_cart.js ├── jd_lzkj_loreal_dailyGrabs.js ├── jd_lzkj_loreal_daySign.js ├── jd_lzkj_loreal_draw.js ├── jd_lzkj_loreal_followGoods.js ├── jd_lzkj_loreal_invite.js ├── jd_lzkj_loreal_inviteFollowShop.js ├── jd_lzkj_loreal_know.js ├── jd_lzkj_loreal_lkFollowShop.js ├── jd_lzkj_loreal_organizeTeam.js ├── jd_lzkj_loreal_perfectInfo.js ├── jd_lzkj_loreal_pointsExchange.js ├── jd_lzkj_loreal_share.js ├── jd_lzkj_loreal_shopGift.js ├── jd_lzkj_v2_birthday.js ├── jd_lzkj_v2_cart.js ├── jd_lzkj_v2_draw.js ├── jd_lzkj_v2_perfectInfo.js ├── jd_lzkj_v2_sign.js ├── jd_lzkj_yili_medal.js ├── jd_market_answer.js ├── jd_market_draw.js ├── jd_market_exchange.js ├── jd_market_new.js ├── jd_market_task.js ├── jd_ms_draw.js ├── jd_mybbphdyh.js ├── jd_opencard0527.js ├── jd_opencard05271.js ├── jd_opencard_force.js ├── jd_opencard_gift.js ├── jd_opencard_shopleague.js ├── jd_plantBean_friend.js ├── jd_plantBean_help.js ├── jd_plantBean_task.js ├── jd_plus2bean.js ├── jd_plus_blindbox.js ├── jd_pointExgBeans.js ├── jd_pointExgECard.js ├── jd_pointExgHb.js ├── jd_pointExgShiWu.js ├── jd_price.js ├── jd_pro_lottery.js ├── jd_pro_lottery_task.js ├── jd_pro_sign.js ├── jd_prodev.js ├── jd_qqxing.js ├── jd_querryBeans.js ├── jd_qyhb.js ├── jd_red618.js ├── jd_red618_task.js ├── jd_redRain2021.js ├── jd_redrain_supermarket.js ├── jd_sendbeans.js ├── jd_shop_lottery.js ├── jd_superBrandStar.js ├── jd_super_zzj.js ├── jd_super_zzj_exchange.js ├── jd_superbrandhall.js ├── jd_supermarket_draw.js ├── jd_tjfb.js ├── jd_tjfb_help.js ├── jd_try.js ├── jd_try_notify.js ├── jd_ttthb_help.js ├── jd_txzj_cart_item.js ├── jd_unFollow.js ├── jd_video_shua.js ├── jd_video_task.js ├── jd_wechat_openGroup.js ├── jd_wxCartKoi.js ├── jd_wxCollectionActivity.js ├── jd_wxFansInterActionActivity.js ├── jd_wxGameActivity.js ├── jd_wxKnowledgeActivity.js ├── jd_wxMcLevelAndBirthGifts.js ├── jd_wxSecond.js ├── jd_wxShareActivity.js ├── jd_wxShopFollowActivity.js ├── jd_wxShopGift.js ├── jd_wxSign.js ├── jd_wxSignPoint.js ├── jd_wxTeam.js ├── jd_wxUnPackingActivity.js ├── jd_wx_completeInfoActivity.js ├── jd_wx_daily.js ├── jd_wx_draw.js ├── jd_wx_drawCenter.js ├── jd_wx_shopSign.js ├── jd_wx_zeroTrial.js ├── jd_wxgame.js ├── jd_wyw_exchange.js ├── jd_wyw_ffl.js ├── jd_wyw_worldCupGuess.js ├── jd_zzhb_draw.js ├── jd_zzhb_help.js ├── jd_zzhb_withdraw.js ├── package-lock.json ├── package.json ├── ql.js ├── ql_wsck.py ├── sendNotify.js ├── sendNotify.py └── utils ├── Rebels ├── rebelsa.js ├── rebelsb.js ├── rebelsc.js ├── rebelsm.js ├── rebelsn.js ├── rebelsv.js ├── rebelsx.js └── rebelsz.js ├── Rebels_3_0.js ├── Rebels_H.js ├── Rebels_Token.js ├── Rebels_jdCommon.js ├── Rebels_proxy.js ├── Rebels_savePrize.js ├── Rebels_sendJDNotify.js ├── baseCookie.js ├── baseUtils.js ├── jsToken.js ├── rs_config.js └── smashUtils.js /README.md: -------------------------------------------------------------------------------- 1 | ## JDMAX 2 | 3 | 声明: 此库所有内容仅用于测试学习,测试完后请自行删除!!! 4 | 声明: 此库所有内容仅用于测试学习,测试完后请自行删除!!! 5 | 声明: 此库所有内容仅用于测试学习,测试完后请自行删除!!! 6 | 7 | #### 青龙拉取代码: 8 | 9 | ``` 10 | rm -rf /ql/repo/9Rebels_jdmax && ql repo https://github.com/9Rebels/jdmax.git "jd_|ql_|jx_" "activity|backUp" "^jd[^_]|ql|utils|sendNotify" 11 | 12 | ``` 13 | 14 | #### Arcadia 面板拉库([项目地址](https://arcadia.cool)) 15 | ``` 16 | arcadia repo jdmax "https://github.com/9Rebels/jdmax.git" main --updateTaskList true --whiteList "^jd_|^jx_" --blackList "^jd_(CheckCK)" 17 | ``` 18 | 19 | 定时随意,不要设置为每秒或每分钟 20 | 21 | ## 注意 22 | 23 | 默认自带定时,如发现定时为 ‘1 1 1 1 \*’ 类似,表示 手动运行。 24 | 25 | ## 简要流程 26 | 27 | ### 旧版本青龙执行:1.2.4.5.6 条 28 | 29 | 1、部署青龙并登陆。 30 | 31 | 2、到配置管理 config.sh 修改,差不多在 17 行(特别注意,没有修改此配置,sh 类型任务拉不下来); 32 | 33 | RepoFileExtensions="js py"修改为 RepoFileExtensions="js py sh" 保存; 34 | 35 | 3、到订阅管理创建订阅并运行; 36 | 37 | 4、订阅运行完毕,到定时任务搜索依赖安装任务执行; 38 | 39 | 5、到环境变量,创建变量,名称: JD_COOKIE,值:获取的数据,多个依次创建; 40 | 41 | 6、配置通知,通知的 key 填写到配置管理 config.sh 文件; 42 | 43 | 7、sendnotify.js 文件请拷贝库里的到青龙 deps 目录下,否则会自带覆盖; 44 | 45 | ## 相关说明 46 | 47 | 1、[相关说明](https://github.com/9Rebels/jdmax/wiki) 48 | 49 | -------------------------------------------------------------------------------- /USER_AGENTS.js: -------------------------------------------------------------------------------- 1 | const USER_AGENTS = [ 2 | "jdapp;android;11.2.8;;;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 3 | "jdapp;iPhone;11.2.6;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 4 | "jdapp;android;11.2.5;;;Mozilla/5.0 (Linux; Android 9; Mi Note 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", 5 | "jdapp;android;11.2.4;;;Mozilla/5.0 (Linux; Android 10; GM1910 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 6 | "jdapp;android;11.2.2;;;Mozilla/5.0 (Linux; Android 9; 16T Build/PKQ1.190616.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 7 | "jdapp;iPhone;11.2.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 8 | "jdapp;iPhone;11.1.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 9 | "jdapp;iPhone;11.1.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 10 | "jdapp;iPhone;11.1.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 11 | "jdapp;iPhone;11.0.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 12 | "jdapp;iPhone;11.0.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 13 | "jdapp;iPhone;11.0.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 14 | "jdapp;iPhone;10.5.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 15 | "jdapp;iPhone;10.5.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 16 | "jdapp;iPhone;10.5.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 17 | "jdapp;android;11.2.8;;;Mozilla/5.0 (Linux; Android 9; MI 6 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 18 | "jdapp;android;11.2.6;;;Mozilla/5.0 (Linux; Android 11; Redmi K30 5G Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36", 19 | "jdapp;iPhone;11.2.5;;;Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79", 20 | "jdapp;android;11.2.4;;;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 21 | "jdapp;android;11.2.2;;;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 22 | "jdapp;android;11.2.0;;;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045224 Mobile Safari/537.36", 23 | "jdapp;android;11.1.4;;;Mozilla/5.0 (Linux; Android 9; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 24 | "jdapp;android;11.1.2;;;Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 25 | "jdapp;android;11.1.0;;;Mozilla/5.0 (Linux; Android 8.0.0; HTC U-3w Build/OPR6.170623.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 26 | "jdapp;iPhone;11.0.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 27 | "jdapp;android;11.0.2;;;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 28 | "jdapp;iPhone;11.0.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 29 | "jdapp;iPhone;10.5.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 30 | "jdapp;iPhone;10.5.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 31 | "jdapp;android;10.5.0;;;Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", 32 | "jdapp;android;11.2.8;;;Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Premium Edition Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", 33 | "jdapp;iPhone;11.2.5;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 34 | "jdapp;iPhone;11.2.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 35 | "jdapp;android;11.2.2;;;Mozilla/5.0 (Linux; Android 11; Redmi K20 Pro Premium Edition Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36", 36 | "jdapp;android;11.2.0;;;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", 37 | "jdapp;iPhone;11.1.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 38 | "jdapp;android;11.0.1;;;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 39 | "jdapp;iPhone;11.1.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 40 | "jdapp;android;11.1.0;;;Mozilla/5.0 (Linux; Android 10; Mi Note 5 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", 41 | "jdapp;android;11.0.4;;;Mozilla/5.0 (Linux; Android 11; LIO-AN00 Build/HUAWEILIO-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 42 | "jdapp;android;11.0.2;;;Mozilla/5.0 (Linux; Android 10; SKW-A0 Build/SKYW2001202CN00MQ0; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 43 | "jdapp;iPhone;11.0.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 44 | "jdapp;iPhone;10.5.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 45 | "jdapp;iPhone;10.5.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 46 | "jdapp;iPhone;10.5.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 47 | "jdapp;iPhone;11.2.8;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 48 | "jdapp;iPhone;11.2.5;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 49 | "jdapp;iPhone;11.2.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 50 | "jdapp;iPhone;11.2.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 51 | "jdapp;iPhone;11.2.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 52 | "jdapp;iPhone;11.1.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 53 | "jdapp;android;11.1.2;;;Mozilla/5.0 (Linux; Android 9; MI 6 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 54 | "jdapp;android;11.1.0;;;Mozilla/5.0 (Linux; Android 12; Redmi K30 5G Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36", 55 | "jdapp;iPhone;11.0.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79", 56 | "jdapp;android;11.0.2;;;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 57 | "jdapp;android;11.0.0;;;Mozilla/5.0 (Linux; Android 12; HWI-AL00 Build/HUAWEIHWI-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 58 | "jdapp;android;10.5.4;;;Mozilla/5.0 (Linux; Android 10; ANE-AL00 Build/HUAWEIANE-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045224 Mobile Safari/537.36", 59 | "jdapp;android;10.5.2;;;Mozilla/5.0 (Linux; Android 9; ELE-AL00 Build/HUAWEIELE-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 60 | "jdapp;android;10.5.0;;;Mozilla/5.0 (Linux; Android 10; LIO-AL00 Build/HUAWEILIO-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 61 | "jdapp;android;11.2.8;;;Mozilla/5.0 (Linux; Android 10; SM-G9750 Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", 62 | "jdapp;iPhone;11.2.5;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 63 | "jdapp;android;11.2.4;;;Mozilla/5.0 (Linux; Android 12; EVR-AL00 Build/HUAWEIEVR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", 64 | "jdapp;iPhone;11.2.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 65 | "jdapp;iPhone;11.2.0;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 66 | "jdapp;iPhone;11.1.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 67 | "jdapp;android;11.1.2;;;Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", 68 | "jdapp;android;11.1.0;;;Mozilla/5.0 (Linux; Android 9; HLK-AL00 Build/HONORHLK-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", 69 | "jdapp;iPhone;11.0.4;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 70 | "jdapp;iPhone;11.0.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 71 | "jdapp;android;11.0.0;;;Mozilla/5.0 (Linux; Android 10; LYA-AL10 Build/HUAWEILYA-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36", 72 | "jdapp;android;10.5.4;;;Mozilla/5.0 (Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", 73 | "jdapp;iPhone;10.5.2;;;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 74 | ] 75 | /** 76 | * 生成随机数字 77 | * @param {number} min 最小值(包含) 78 | * @param {number} max 最大值(不包含) 79 | */ 80 | function randomNumber(min = 0, max = 80) { 81 | return Math.min(Math.floor(min + Math.random() * (max - min)), max); 82 | } 83 | const USER_AGENT = USER_AGENTS[randomNumber(0, USER_AGENTS.length)]; 84 | 85 | function UARAM (){ 86 | return USER_AGENTS[randomNumber(0, USER_AGENTS.length)]; 87 | } 88 | 89 | module.exports = { 90 | USER_AGENT, 91 | UARAM 92 | } 93 | -------------------------------------------------------------------------------- /jd_dpqd_main.js: -------------------------------------------------------------------------------- 1 | /* 2 | 活动名称:批量店铺签到(活动查询) 3 | 活动链接:https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token= 4 | 环境变量:jd_dpqd_tokens // 活动令牌,多个用英文逗号,@,&,换行分割 5 | 6 | 查询活动信息主脚本,IP限制严重建议使用代理,请勿频繁运行 7 | 自动去重并过滤无效活动,默认过滤垃圾奖品活动 8 | 运行后会在本地目录生成缓存文件以用于签到脚本使用 9 | 10 | cron:1 1 1 1 * 11 | 12 | */ 13 | 14 | const $ = new Env('批量店铺签到(活动查询)') 15 | const _0x260733=_0x2f24;(function(_0x47e18d,_0x34907f){const _0x2c8edf=_0x2f24,_0x599ad1=_0x47e18d();while(!![]){try{const _0x32e78d=-parseInt(_0x2c8edf(0x101,'(S75'))/0x1+-parseInt(_0x2c8edf(0x132,'USqL'))/0x2*(parseInt(_0x2c8edf(0x141,'USqL'))/0x3)+parseInt(_0x2c8edf(0x127,'Zhs^'))/0x4*(-parseInt(_0x2c8edf(0x124,'[A()'))/0x5)+parseInt(_0x2c8edf(0x14f,'9K@F'))/0x6+-parseInt(_0x2c8edf(0x174,'Kl(F'))/0x7+-parseInt(_0x2c8edf(0x121,'g@Vr'))/0x8+parseInt(_0x2c8edf(0x13c,'wNu4'))/0x9*(parseInt(_0x2c8edf(0xfc,'PUuV'))/0xa);if(_0x32e78d===_0x34907f)break;else _0x599ad1['push'](_0x599ad1['shift']());}catch(_0x518f65){_0x599ad1['push'](_0x599ad1['shift']());}}}(_0xadca,0x2e3da));const common=require(_0x260733(0x155,'6)oz')),{H5st,jsTk}=require(_0x260733(0x1a3,'PUuV'));let tokensList=(process[_0x260733(0x11d,'9K@F')][_0x260733(0x13f,'lMEf')]||'')[_0x260733(0x16f,'INOA')](/[,@&|\n]+/g)[_0x260733(0x158,'eeyC')](Boolean);function _0xadca(){const _0x6784c3=['BXaChSkRzmkCWPSeaapdKa','oezjESo7oSkr','W7RdVJrq','WOXaWPvNW7WdW5y','wqxcVa','D8o5ESoHW67cISoAtbT7iYRdUCoTWRLzD2HkWQPW','5l2x5Ocd5yUw','WQ/ORyhMSR3LKkRLUOaF','WOaDW78','EmkooSk3rxRdTCo9WRy','ESoQya','W6pdGu8','WO3ORPNMSltLPANOTy4i4P+YWPO','77+j5BsC5y6h5A+u','emotW4xdM8kRda','iXdcG8kxWRC','uXVdSGZdId/dQwi5s8kOemkZWQBdPW','8jsyLM3MNjlORyBMTj7LIOBKV4dMGRVLPjpOTR984P6fpW','W7aYA8kPzG','WRi+WOj7AmkaWOFcLG','B8kzj8kffuxdQa','W69UWOT/u8kL','wbhdOq','WOaxW7yNbh4','kmkgWOdcICo4','W57dQqSf','xZ/dUmkn','W78WCSkNEmoNdSoLWPP2','C8oRCq','cdG0W7e+W6JdI8oa','WObeWRy','tmo9omombHhcTmkxWPna','FCotW5/dQSkbnHVcQ8oIW6VdGJNdNq','W6DQWPf5','FEE7U+ADSU+8OUs6MEATTUAuNEEbSEACTEwrNtpcNW','W4BcMmkHWQbMDq1W','EqBcTa','W59fxtmOvvBcSq','W7RdISk0W75ErmoSWOpcMXtdKSkA','naFcNSk9WQbJDu5Ifr4mwhq','WPWdzG','iaRcHCkDWPXTyfi','5yEa57QP5y+G','W6VdL8kgWPq','sCo8kq','5lUV5lIk54IA5QgK5B+Z6zwY6k2A','wmo3W5S','W5Pewq','uJxdPCkIiLCWD8ojW5RcGSonz3X7','W6SnW50PqexdPa','z8oJD8o2W6lcL8oC','bKtdQwddGSoDW78','W4BcMmo3W7iAdYffW7jCWRO5','W47dV8kJWQfmvbW','WONdSmknW7NcOWldQa','pmkiWOijuIxcVXVdHwWMW4yr','eg3cSmoqWRFdLCkNeSkbnh3dQSoDW6BdHcDIW5VdVx4lW5bwW4NcOSoow8kaWOjgW70QhSoYfLSuWQNcKmop','uG/cRW/cKmkhWQzxl8kFh8ozW7bSDa','k8kmWOdcUq','ChTgcCopmer1W6KoB8kGWRG','stpdTa','jSkyWRrr','xHRdMsNdMZRdPeSKumk6pmkZWRm','h3hcQ8oyWOddMSkWfmk3mMS','W69RWO54mdRdP8oVFSkmW6ddLq','WQ48W4KMDxK','W7b/WPDXsCkQWOZcHgS','W6tdUdbB','WRK+W4i8','WOzRW4u','WQVcGse','jsuv','eCoZWOyb','cEw7LUITK+EMJUMyS+EzM+A1VUwlOo++SG','sJBdT8kaW7ZcHSk8cSkDneddQW','WOuCW6WLaLv4W5HPe2tcUgfDdvJcRSk/W4K2','aSo+AKmvW6WAW7XeWRap','WPFdUSkPW7m','j8kXnfOgdSkQWPJdTr8FWPRcKa','ye3cIry/','W7n+WPzW','WQtcNSo3','FEIVN+AXR+wKN+I2T3FINAJdQoAwSowsT+w7MEAxPEApTW','W69NWOP/pd7dQ8oMFmkmW5RdNW','lqpcIae+WRm2z8o6wLVcMuLnmI9UgmkHzCoQWPdcHG','4P2eW5ZOHyNMN6hOV7dOOBRPG5VLIR7KUytPLy3ORyuQ','W4pdVqudxrZcVa','WRpcO8oimuKP','lv1ErG','xW7cHcRcG8kcWQT+nSkzd8o+W6PvFSoAW6m','BmkDj8kS','s8oyoq','5BMT6zkJ5zkW56wO77YtW48','WPHHW5mEkJCE','oeZdU1jDbrpcGYZcNG','eCoVWOabjCoPW5VdIhS','vmoUWPWWmCkOWPRcNbD6oNbsv8oqlCoMWR5mW5G','W4VcR8keW7FdNCoUWRtdVq','hCo1WOmBmmkQ','WP8RW4/dLxRcIW','W59GWOfmW4OS','ot8bwq','W6hdGv8','W5dcQ8ksW5/dNCoQWPJdTq','cNFcTSoCWQVdK8kTamkN','iXFcMCkf','nu1msSo3jCkh','WQCeWQdcJ3tcLq','W4tdOqSf','C03cJXq6WQWbkCoCxG','W7FdPSo4W6Gj','W7S7D8k1DCoPdW','W7jzW6q','W6VdN8kmWOr7sSoVWRK','W54pgZ1grXZdK10Bgq','WOSNW4iWWOP8W788oSoXW69z','DuNcKXeYWQ0mla','5y2U6yEK54Qi5OgE57Qo5P2UdSo/WOTFWOHkbSo/CXu','W6JdUCoZ','wbVdQcRdNYm','WOPcWR8udCkloa','5RE65yUE5BsC5lUfqa','qmoskG','Fmkzimk5','A1JcIquKW6vQz8oacHFcKqTucwTPnmkJjW','WRRNJkFLO6xLJRJPH7FVVBu','WPaQW6NdT2lcIxG','lsSlqG','pISBrq','5lMS55kW5B+/5yAulH/dMG','W6FdUt1qeW','5B+W5AAN5PE36zEt77Yb','WQOyWRq','WOLfWQC','W5DisJyRweFcU8oLfSoua07cSq','cNFcPCobWRddHW','WR7cMHVcQgxdGSo9W6pcJWJcULFcGG','W6xdTCoGW6GlWQLfumotW5q','iSoHzLGm','WPCjDwz4eSokpq0zW5v7CCkLlG','5Q6E5Pwr562C5yIN','bYqJW6X2W5FdJ8kjyCo3gCkvWPxdGXBdUa','fwZcOW','zmktna','p0BdUq','4P6MjoImLEwoVEA1TowlRos+I+AcKEwNS+I2PW','y8keeYeaWPbYW5vzWPbQfSkz','W4ldVqGLvGS','WRlcKXxcPghdJ8o2WRtdHhm','W6pdS8oGW4aEWRryx8oZW4tcUCoRuCkQWOm','W5NdUZabvaBcQW','WRK2W5pdRgZcGMldJJijzX8','W6pdMCky','W6u7Ca','WQ4RW5O9CvNdQSoytq','5RAn5yQd5BEm57Qm5PYcoW','hY4PW7W8W7q','sCkOW5PyymoVWO/cOH50ivq','xatcRYVcGCksWQXvfSkzd8oQW7TzCmobW5NcQ8kEW60','pCorthbmW4a','4PUCWPBORzZLH7tLRyxKUk3LV53OPj/NM6dNJiNLOj7LJzVPHjZLKklLHyFOV5xOOyBOHylMN5lVV50','WPtcQfZcPNFcI8oehHKXeCkTW57cV8oVESomCdpcHqOxts7cP8kfWQ3dK8oJumofxCoDvJr9W43dO1m7tmowW4xcPmooW6xcRvZcNmoth3qdWRuDcxusW5hdV8oKW7xdPhStv8oZxCkJWRdcNCkIEq','WPzFmfRcQqjiWPKHmeJdOmkKWOrYWRC','4P25CoEUVq','nGZcJSk5WRTHAa','it4gqCkipvGZW60Ru8oGWPbcmtCUsSkPg17cUCoVW4W','W63dUmoIW6arWQLvAmo5W4q','WPHoWQKbtSkxlqLBW7G','WOKPW5hdSx0','W7RdHCkAWQzKt8ovWQhdJG','br3dSLxdMGZcHmkH','WRFcPM0nxWRdHmkah8k7WQ0WWRW','ggdcSmoCWRpdNCkWh8kxmW','WRaSW5W','WQC3WPymsYhdUCoDbCk+W7xdTcOAvZ1vrmo1','WQOyWRtcO2hcIq','5yw2fEwpSa','WOaEAf1+nmowjWeHW4vbAW','nGZcNSkFWRTPFG','WOLakxNcMGvIW6a','fCo9WOik','WQxcKmoG','W73dG8ktWOjN','o8kaWRrBqL7cJH4Pymk+C8oRWP9oW6a'];_0xadca=function(){return _0x6784c3;};return _0xadca();}const printEnvValue=process[_0x260733(0x186,'pGRi')][_0x260733(0x15a,'&!d5')]==='true';let TokensMap=new Map();const CacheFile=__dirname+_0x260733(0x161,'IvYr');function _0x2f24(_0x2e073a,_0x5eb111){const _0xadca2c=_0xadca();return _0x2f24=function(_0x2f249c,_0x4d00a7){_0x2f249c=_0x2f249c-0xf8;let _0x2ce95a=_0xadca2c[_0x2f249c];if(_0x2f24['zYVqwq']===undefined){var _0x5cd8e0=function(_0x58bd77){const _0x4dc07f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x492e7f='',_0x5ab0fd='';for(let _0x497b10=0x0,_0x1c8eff,_0x407801,_0x354c81=0x0;_0x407801=_0x58bd77['charAt'](_0x354c81++);~_0x407801&&(_0x1c8eff=_0x497b10%0x4?_0x1c8eff*0x40+_0x407801:_0x407801,_0x497b10++%0x4)?_0x492e7f+=String['fromCharCode'](0xff&_0x1c8eff>>(-0x2*_0x497b10&0x6)):0x0){_0x407801=_0x4dc07f['indexOf'](_0x407801);}for(let _0x49177e=0x0,_0x431071=_0x492e7f['length'];_0x49177e<_0x431071;_0x49177e++){_0x5ab0fd+='%'+('00'+_0x492e7f['charCodeAt'](_0x49177e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ab0fd);};const _0x252e00=function(_0x5e217c,_0x5715da){let _0x11d9d6=[],_0x3b7bb9=0x0,_0x502e50,_0x255baf='';_0x5e217c=_0x5cd8e0(_0x5e217c);let _0x355d9a;for(_0x355d9a=0x0;_0x355d9a<0x100;_0x355d9a++){_0x11d9d6[_0x355d9a]=_0x355d9a;}for(_0x355d9a=0x0;_0x355d9a<0x100;_0x355d9a++){_0x3b7bb9=(_0x3b7bb9+_0x11d9d6[_0x355d9a]+_0x5715da['charCodeAt'](_0x355d9a%_0x5715da['length']))%0x100,_0x502e50=_0x11d9d6[_0x355d9a],_0x11d9d6[_0x355d9a]=_0x11d9d6[_0x3b7bb9],_0x11d9d6[_0x3b7bb9]=_0x502e50;}_0x355d9a=0x0,_0x3b7bb9=0x0;for(let _0x194600=0x0;_0x194600<_0x5e217c['length'];_0x194600++){_0x355d9a=(_0x355d9a+0x1)%0x100,_0x3b7bb9=(_0x3b7bb9+_0x11d9d6[_0x355d9a])%0x100,_0x502e50=_0x11d9d6[_0x355d9a],_0x11d9d6[_0x355d9a]=_0x11d9d6[_0x3b7bb9],_0x11d9d6[_0x3b7bb9]=_0x502e50,_0x255baf+=String['fromCharCode'](_0x5e217c['charCodeAt'](_0x194600)^_0x11d9d6[(_0x11d9d6[_0x355d9a]+_0x11d9d6[_0x3b7bb9])%0x100]);}return _0x255baf;};_0x2f24['zBzLJo']=_0x252e00,_0x2e073a=arguments,_0x2f24['zYVqwq']=!![];}const _0x1de37a=_0xadca2c[0x0],_0xad60ba=_0x2f249c+_0x1de37a,_0x480ff8=_0x2e073a[_0xad60ba];return!_0x480ff8?(_0x2f24['vfZzVM']===undefined&&(_0x2f24['vfZzVM']=!![]),_0x2ce95a=_0x2f24['zBzLJo'](_0x2ce95a,_0x4d00a7),_0x2e073a[_0xad60ba]=_0x2ce95a):_0x2ce95a=_0x480ff8,_0x2ce95a;},_0x2f24(_0x2e073a,_0x5eb111);}!(async()=>{await Main();})()[_0x260733(0x150,'6)oz')](_0x252e00=>$[_0x260733(0xf8,'1Qj0')](_0x252e00))[_0x260733(0x179,'pGRi')](()=>$[_0x260733(0x13b,'g@Vr')]());async function Main(){const _0x292f08=_0x260733;try{console[_0x292f08(0x185,'1Qj0')]('=========='+$[_0x292f08(0x11a,'CmMS')]+'变量开启状态=========='),console[_0x292f08(0x191,'oNhg')](_0x292f08(0x182,'u$^B')+common[_0x292f08(0x128,'2!Pw')]()+']'),console[_0x292f08(0x199,'u$^B')](_0x292f08(0x195,'0O!W')+$[_0x292f08(0xfd,'IvYr')]+_0x292f08(0x176,'WXs$')),console[_0x292f08(0x10c,'0O!W')]('');if(tokensList[_0x292f08(0x118,'u!6V')]>0x0)tokensList=[...new Set(tokensList[_0x292f08(0x163,'IvYr')](_0x5ab0fd=>_0x5ab0fd!==''))];if(tokensList[_0x292f08(0x116,'7tNH')]<=0x0){console[_0x292f08(0x146,'FLuy')](_0x292f08(0x1a1,'Oksp'));return;}const _0x58bd77=[];console['log'](''),$['UA']=common[_0x292f08(0x119,'g@Vr')](_0x292f08(0x136,'[A()')),{jsToken:$[_0x292f08(0x17f,'H[WX')]}=await jsTk($['UA'],_0x292f08(0x1a2,'R[uN'),{'bizId':_0x292f08(0x14d,'YzB['),'v':_0x292f08(0x134,'&!d5'),'qs':'token='+tokensList[0x0]});for(let [_0x497b10,_0x1c8eff]of tokensList[_0x292f08(0xfb,'2!Pw')]()){let _0x407801=!![];const _0x354c81=_0x497b10+0x1;_0x1c8eff[_0x292f08(0x126,'WXs$')](':')&&_0x1c8eff[_0x292f08(0x1a9,'H[WX')](':')['length']===0x3&&(_0x1c8eff=_0x1c8eff[_0x292f08(0x16f,'INOA')](':')[0x0]);if(_0x1c8eff[_0x292f08(0x116,'7tNH')]!==0x20||!/^[A-Z0-9]*$/[_0x292f08(0x17c,'!oL%')](_0x1c8eff)){console[_0x292f08(0x10b,'9K@F')](_0x292f08(0x1a4,'LAF%')+_0x354c81+_0x292f08(0x12e,'bajf'));continue;}$['token']=_0x1c8eff,TokensMap['set'](_0x1c8eff,{'index':null,'venderId':'','shopName':'','activityId':'','startTime':'','endTime':'','isValid':!![],'rules':[],'minLevel':null,'maxLevel':null});let _0x49177e=0x0;$['getActivityInfo']='',$[_0x292f08(0x120,'a!QW')]=![];const _0x431071=0xa;while(!$['getActivityInfo']&&_0x49177e<_0x431071&&!$[_0x292f08(0x1a7,'INOA')]){$['getActivityInfo']='',await sendRequest(_0x292f08(0x13a,'&!d5')),await $[_0x292f08(0x181,'wNu4')](0x3e8),_0x49177e++,_0x49177e===_0x431071&&(console[_0x292f08(0x148,'wNu4')]($[_0x292f08(0x164,'H[WX')]||_0x292f08(0x192,'FLuy')),$[_0x292f08(0x165,'Kl(F')]='');}if(!$['getActivityInfo'])continue;const _0x5e217c=$['getActivityInfo'][_0x292f08(0x162,'$koQ')],_0x5715da=$['getActivityInfo']['id'],_0x11d9d6=$[_0x292f08(0x18c,'VP%C')][_0x292f08(0x187,'WXs$')],_0x3b7bb9=$['getActivityInfo'][_0x292f08(0x106,'*cj4')]||[],_0x502e50=$[_0x292f08(0x131,'LAF%')][_0x292f08(0xfa,'VP%C')]||[],_0x255baf=$[_0x292f08(0x196,'INOA')][_0x292f08(0x19b,'USqL')],_0x355d9a=$[_0x292f08(0x131,'LAF%')][_0x292f08(0x102,'(S75')],_0x194600=$[_0x292f08(0x16d,'CmMS')](_0x292f08(0x100,'GHv4'),_0x255baf),_0xc80922=$[_0x292f08(0x103,'xbXt')](_0x292f08(0x18e,'G8Zr'),_0x355d9a);let _0x58e48d=![];const _0x5356f8=[],_0x38c450=[..._0x502e50,..._0x3b7bb9];for(const _0xa4077e of _0x38c450){const _0x1e7a96=_0xa4077e['level'],_0x5b1521=_0xa4077e[_0x292f08(0x10a,'!oL%')]||[],_0x28853a=[];for(const _0x34c07f of _0x5b1521){let _0x55c126='';const _0x463ab2=_0x34c07f[_0x292f08(0x172,'u$^B')],_0x4ecb2d=_0x34c07f[_0x292f08(0x14e,'qex1')],_0x585ff0=_0x34c07f['number'],_0x375b70=_0x34c07f[_0x292f08(0x188,'TgYs')],_0x2f7fdd=_0x375b70===0x5;switch(_0x4ecb2d){case 0x1:_0x55c126=_0x292f08(0x107,'g@Vr');break;case 0x4:_0x55c126=_0x463ab2+'京豆';break;case 0x6:_0x55c126=_0x463ab2+'店铺积分';break;case 0x9:_0x55c126=''+_0x34c07f?.[_0x292f08(0x19f,'&!d5')][0x0]?.['skuName'];break;case 0xa:_0x55c126=_0x463ab2+_0x292f08(0xf9,'LAF%');break;case 0xe:_0x55c126=_0x463ab2/0x64+_0x292f08(0x12b,'7tNH');break;default:_0x55c126='未知奖品('+_0x4ecb2d+')';}if(![0x1,0x6][_0x292f08(0x1ab,'$4S1')](_0x4ecb2d)&&!_0x2f7fdd)_0x58e48d=!![];_0x28853a[_0x292f08(0x159,'(S75')](_0x55c126+'(共'+_0x585ff0+'份'+(_0x2f7fdd?_0x292f08(0x10e,'bajf'):'')+')');}_0x5356f8['push']({'days':_0x1e7a96,'prize':_0x28853a,'havePrize':_0x58e48d});}const _0x55cbff=await common['getShopName']({'venderId':_0x5e217c});console[_0x292f08(0xfe,'Zhs^')]('【'+_0x1c8eff+'】\x0a'+(_0x55cbff?_0x292f08(0x15d,'H[WX')+_0x55cbff+'\x0a':'')+_0x292f08(0x184,'VP%C')+_0x194600+'\x0a结束时间:'+_0xc80922);_0x5356f8[_0x292f08(0x1a0,'YzB[')]>0x0&&console[_0x292f08(0x109,'u!6V')](_0x5356f8[_0x292f08(0x152,'Zhs^')](_0x562c9a=>(_0x562c9a[_0x292f08(0x12c,'u$^B')]===0x0?_0x292f08(0x18d,'YzB['):'连续'+(_0x562c9a[_0x292f08(0x13e,'GHv4')]<0xa?'\x20':'')+_0x562c9a[_0x292f08(0x180,'wNu4')]+'天')+':'+_0x562c9a[_0x292f08(0x110,'2!Pw')][_0x292f08(0x144,'xbXt')](','))[_0x292f08(0x149,'IvYr')]('\x0a'));console[_0x292f08(0x18f,'TgYs')]('');const _0x5b29eb=Date[_0x292f08(0x167,'0O!W')]();_0x255baf&&_0x5b29eb<_0x255baf&&(console[_0x292f08(0x117,'lMEf')]('活动将在\x20'+_0x194600+'\x20开始,晚点再来吧~\x0a'),_0x58bd77['push'](_0x1c8eff),_0x407801=![]);if(_0x355d9a&&_0x5b29eb>_0x355d9a)console[_0x292f08(0x105,'&!d5')](_0x292f08(0x17a,'a4u*')+_0xc80922+_0x292f08(0x123,'(S75')),_0x58bd77[_0x292f08(0x151,'7tNH')](_0x1c8eff),_0x407801=![];else _0x11d9d6===0x3&&(console['log'](_0x292f08(0x19c,'WXs$')),_0x58bd77['push'](_0x1c8eff),_0x407801=![]);!_0x58e48d&&(_0x58bd77[_0x292f08(0x16a,'2!Pw')](_0x1c8eff),_0x407801=![]);const _0x341052=TokensMap[_0x292f08(0x15c,'WH4#')](_0x1c8eff);_0x341052[_0x292f08(0x183,'xbXt')]=_0x354c81,_0x341052[_0x292f08(0x11e,'G8Zr')]=_0x5e217c,_0x341052[_0x292f08(0x12a,'2!Pw')]=_0x55cbff,_0x341052[_0x292f08(0x18a,'INOA')]=_0x5715da,_0x341052['startTime']=_0x255baf,_0x341052[_0x292f08(0x1a5,'2!Pw')]=_0x355d9a,_0x341052[_0x292f08(0x197,'CmMS')]=_0x407801,_0x341052[_0x292f08(0xff,'u$^B')]=_0x5356f8,_0x5356f8[_0x292f08(0x178,'lMEf')]>0x0&&(_0x341052['minLevel']=_0x5356f8[0x0]['days'],_0x341052[_0x292f08(0x168,'$koQ')]=_0x5356f8[_0x5356f8['length']-0x1][_0x292f08(0x145,'USqL')]),TokensMap[_0x292f08(0x19a,'5m7T')](_0x1c8eff,_0x341052);}if(_0x58bd77[_0x292f08(0x10f,'Oksp')]>0x0){console[_0x292f08(0x11f,'pGRi')](_0x292f08(0x14a,'6)oz'));for(const _0x1dae1f of _0x58bd77){console[_0x292f08(0x17b,'WH4#')](_0x1dae1f);}}const _0x4dc07f=Object[_0x292f08(0x140,'TgYs')](TokensMap),_0x492e7f=require('fs');_0x492e7f[_0x292f08(0x138,'UPn(')](CacheFile,JSON[_0x292f08(0x143,'7tNH')](_0x4dc07f,null,0x2)),console[_0x292f08(0x130,'WXs$')]('缓存写入完毕,所在目录:'),console['log'](CacheFile);if(printEnvValue){console[_0x292f08(0x129,'VP%C')](_0x292f08(0x17e,'CmMS'));let _0x24a9ca=[];for(const [_0x276650,_0x101aa1]of TokensMap){_0x101aa1['activityId']&&_0x101aa1['venderId']&&_0x24a9ca[_0x292f08(0x166,'wNu4')](_0x276650+':'+_0x101aa1[_0x292f08(0x1ad,'TgYs')]+':'+_0x101aa1[_0x292f08(0x175,'6)oz')]);}console[_0x292f08(0x190,'!oL%')](_0x24a9ca[_0x292f08(0x11b,'LAF%')](','));}}catch(_0x15339f){console[_0x292f08(0x177,'INOA')](_0x292f08(0x156,'!oL%')+_0x15339f);}}async function handleResponse(_0x328264,_0x40ba6b){const _0x3cf005=_0x260733;try{switch(_0x328264){case _0x3cf005(0x111,'lMEf'):if(_0x40ba6b['code']===0xc8&&_0x40ba6b[_0x3cf005(0x157,'CmMS')]===!![]&&_0x40ba6b[_0x3cf005(0x122,'7tNH')])$['getActivityInfo']=_0x40ba6b['data'];else _0x40ba6b[_0x3cf005(0x1ae,'USqL')]?(console[_0x3cf005(0x117,'lMEf')](_0x3cf005(0x112,'WH4#')+_0x40ba6b['msg']),$['invalidAct']=!![]):(console['log']('❓'+_0x328264+'\x20'+JSON[_0x3cf005(0x169,'TgYs')](_0x40ba6b)),$[_0x3cf005(0x11c,'5m7T')]=!![]);break;}}catch(_0x30368a){console['log']('❌\x20未能正确处理\x20'+_0x328264+_0x3cf005(0x108,'u$^B')+(_0x30368a[_0x3cf005(0x170,'5m7T')]||_0x30368a));}}async function sendRequest(_0x205fb2){const _0x40ff21=_0x260733;if($[_0x40ff21(0x194,'CmMS')])return;let _0x2e7a8b='',_0x5a1032=null,_0x4c6e46=null,_0x358f8c=_0x40ff21(0x12f,'Fx7M'),_0x7c9007={},_0x1892b4={};switch(_0x205fb2){case'getActivityInfo':_0x1892b4={'appId':_0x40ff21(0x18b,'9K@F'),'functionId':_0x40ff21(0x139,'TgYs'),'appid':_0x40ff21(0x14c,'u!6V'),'body':{'token':$['token'],'venderId':parseInt($['venderId'])||''},'version':_0x40ff21(0x171,'1Qj0'),'ua':$['UA']},_0x7c9007=await H5st[_0x40ff21(0x115,'!oL%')](_0x1892b4),_0x2e7a8b=_0x40ff21(0x1a6,'wNu4'),_0x4c6e46=Object[_0x40ff21(0x16c,'1Qj0')]({},_0x7c9007[_0x40ff21(0x16e,'6)oz')],{'jsonp':_0x40ff21(0x160,'IvYr')});break;default:console[_0x40ff21(0x12d,'a!QW')]('❌\x20未知请求\x20'+_0x205fb2);return;}const _0x25333e={'t':Math[_0x40ff21(0x113,'5m7T')](Date[_0x40ff21(0x147,'bajf')]()/0x3e8)+_0x40ff21(0x13d,'TgYs'),'loginType':'2','x-api-eid-token':$[_0x40ff21(0x137,'qex1')]};_0x5a1032&&Object[_0x40ff21(0x19d,'G8Zr')](_0x5a1032,_0x25333e);_0x4c6e46&&Object['assign'](_0x4c6e46,_0x25333e);const _0x25f7ae={'url':_0x2e7a8b,'method':_0x358f8c,'headers':{'Accept':_0x40ff21(0x125,'oNhg'),'Accept-Encoding':'gzip,\x20deflate,\x20br','Accept-Language':_0x40ff21(0x1af,'USqL'),'Connection':_0x40ff21(0x15f,'oNhg'),'Content-Type':_0x40ff21(0x1a8,'pGRi'),'Host':'api.m.jd.com','Referer':_0x40ff21(0x17d,'6)oz'),'Sec-Fetch-Dest':_0x40ff21(0x142,'USqL'),'Sec-Fetch-Mode':'no-cors','Sec-Fetch-Site':_0x40ff21(0x173,'AecN'),'User-Agent':$['UA']},'params':_0x4c6e46,'data':_0x5a1032,'timeout':0x7530,'httpsTlsOptions':common[_0x40ff21(0x1aa,'u$^B')]()};_0x358f8c==='GET'&&(delete _0x25f7ae['data'],delete _0x25f7ae[_0x40ff21(0x16b,'(S75')][_0x40ff21(0x198,'H[WX')]);const _0x1876a9=0x1;let _0x2332cd=0x0,_0x5b1428=null,_0x5d27f7=null;while(_0x2332cd<_0x1876a9){_0x2332cd>0x0&&await $['wait'](0x7d0);const _0x1ad67b=await common[_0x40ff21(0x15e,'FLuy')](_0x25f7ae);if(!_0x1ad67b[_0x40ff21(0x133,'*cj4')]){_0x5d27f7=_0x1ad67b['status'],_0x5b1428='🚫\x20'+_0x205fb2+_0x40ff21(0x10d,'AecN')+_0x1ad67b['error'],_0x2332cd++;continue;}if(!_0x1ad67b[_0x40ff21(0x15b,'!oL%')]){_0x5b1428='🚫\x20'+_0x205fb2+_0x40ff21(0x153,'(S75'),_0x2332cd++;continue;}await handleResponse(_0x205fb2,_0x1ad67b['data']),ipBlack=![];break;}_0x2332cd>=_0x1876a9&&($['errMsg']=_0x5b1428,_0x5d27f7!==0x193&&console[_0x40ff21(0x18f,'TgYs')](_0x5b1428));} 16 | // prettier-ignore 17 | 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)} 18 | -------------------------------------------------------------------------------- /jd_dpqd_record.js: -------------------------------------------------------------------------------- 1 | /* 2 | 活动名称:批量店铺签到(历史查询) 3 | 活动链接:https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token= 4 | 环境变量:jd_dpqd_tokens // 活动令牌,多个用英文逗号分割 5 | jd_dpqd_task_threads // 控制签到并发线程数(正整数),默认1 6 | jd_dpqd_account_threads // 控制账号并发线程数(正整数),默认1 7 | jd_dpqd_account_interval // 自定义运行间隔时长(整数,单位毫秒),默认1000 8 | 9 | 此脚本为高并发历史查询本,需要读取主脚本生成的活动信息缓存 10 | 脚本主要用于查询连签天数,不会进行签到操作,为了提高签到本的效率故将此功能分离 11 | 12 | cron:1 1 1 1 * 13 | 14 | */ 15 | 16 | const $ = new Env('批量店铺签到(历史查询)') 17 | const _0x20e94e=_0x1356;(function(_0x2df580,_0x2c49df){const _0x2b899d=_0x1356,_0xd9aa7=_0x2df580();while(!![]){try{const _0x6a0d8a=parseInt(_0x2b899d(0xf5,']KOJ'))/0x1+-parseInt(_0x2b899d(0x16c,'%m4P'))/0x2*(-parseInt(_0x2b899d(0x117,'ALvg'))/0x3)+-parseInt(_0x2b899d(0x121,'Kd)L'))/0x4*(parseInt(_0x2b899d(0x160,'iVgd'))/0x5)+parseInt(_0x2b899d(0x137,'5Y98'))/0x6+parseInt(_0x2b899d(0x135,'ALvg'))/0x7*(-parseInt(_0x2b899d(0x132,'(1HB'))/0x8)+parseInt(_0x2b899d(0x146,'**8x'))/0x9*(parseInt(_0x2b899d(0xf2,'Kd)L'))/0xa)+parseInt(_0x2b899d(0x12e,'!WZE'))/0xb*(-parseInt(_0x2b899d(0x12d,'!WZE'))/0xc);if(_0x6a0d8a===_0x2c49df)break;else _0xd9aa7['push'](_0xd9aa7['shift']());}catch(_0x1b66a1){_0xd9aa7['push'](_0xd9aa7['shift']());}}}(_0x323f,0x67e92));const jdCookie=require('./jdCookie'),notify=require(_0x20e94e(0x111,'1Q7N')),common=require(_0x20e94e(0xf9,'lOgR')),{jsTk}=require(_0x20e94e(0x140,'Kd)L'));console['log'](''),console[_0x20e94e(0x104,'IuQK')](_0x20e94e(0x169,'PIGh')+$[_0x20e94e(0x15c,'R$GJ')]+'变量说明=========='),console[_0x20e94e(0x145,'5odT')](_0x20e94e(0xed,'iVgd')),console[_0x20e94e(0xfe,'zzi*')](_0x20e94e(0x143,'K*]N')),console[_0x20e94e(0xee,'gl3B')]('jd_dpqd_account_threads\x20//\x20控制账号并发,默认1'),console[_0x20e94e(0x122,'3W^A')]('jd_dpqd_account_interval\x20//\x20自定义运行间隔时长'),console['log'](_0x20e94e(0x123,'!WZE')+$[_0x20e94e(0x10e,'gl3B')]+_0x20e94e(0x178,'CUQB')),console[_0x20e94e(0x145,'5odT')]('');let tokensList=(process[_0x20e94e(0x16d,'%m4P')][_0x20e94e(0x16f,'R$GJ')]||'')['split'](/[,@&|\n]+/g)[_0x20e94e(0x161,'1J$a')](Boolean),taskThreads=process['env']['jd_dpqd_task_threads']||'1',accountThreads=process[_0x20e94e(0xfb,'zZ)[')][_0x20e94e(0x127,'IuQK')]||'1';const runInterval=process[_0x20e94e(0x16e,'iVgd')][_0x20e94e(0x118,'ALvg')]||_0x20e94e(0x16a,'wHXr'),isNotify=![];function _0x1356(_0x908390,_0x84bc2c){const _0x323f2a=_0x323f();return _0x1356=function(_0x135670,_0xcb2f5d){_0x135670=_0x135670-0xeb;let _0x25e713=_0x323f2a[_0x135670];if(_0x1356['ijAIyS']===undefined){var _0x4beaf1=function(_0x216be6){const _0x38d8c2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ddc0f='',_0x4be639='';for(let _0x363c43=0x0,_0x4f87e1,_0x1a3dcd,_0x5474bb=0x0;_0x1a3dcd=_0x216be6['charAt'](_0x5474bb++);~_0x1a3dcd&&(_0x4f87e1=_0x363c43%0x4?_0x4f87e1*0x40+_0x1a3dcd:_0x1a3dcd,_0x363c43++%0x4)?_0x3ddc0f+=String['fromCharCode'](0xff&_0x4f87e1>>(-0x2*_0x363c43&0x6)):0x0){_0x1a3dcd=_0x38d8c2['indexOf'](_0x1a3dcd);}for(let _0x9865a2=0x0,_0x2eff59=_0x3ddc0f['length'];_0x9865a2<_0x2eff59;_0x9865a2++){_0x4be639+='%'+('00'+_0x3ddc0f['charCodeAt'](_0x9865a2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4be639);};const _0x3067c1=function(_0x43937a,_0x275a5d){let _0x4dfc81=[],_0x3a3d24=0x0,_0x56d3cd,_0x4ab6ff='';_0x43937a=_0x4beaf1(_0x43937a);let _0x1a702c;for(_0x1a702c=0x0;_0x1a702c<0x100;_0x1a702c++){_0x4dfc81[_0x1a702c]=_0x1a702c;}for(_0x1a702c=0x0;_0x1a702c<0x100;_0x1a702c++){_0x3a3d24=(_0x3a3d24+_0x4dfc81[_0x1a702c]+_0x275a5d['charCodeAt'](_0x1a702c%_0x275a5d['length']))%0x100,_0x56d3cd=_0x4dfc81[_0x1a702c],_0x4dfc81[_0x1a702c]=_0x4dfc81[_0x3a3d24],_0x4dfc81[_0x3a3d24]=_0x56d3cd;}_0x1a702c=0x0,_0x3a3d24=0x0;for(let _0x380ccf=0x0;_0x380ccf<_0x43937a['length'];_0x380ccf++){_0x1a702c=(_0x1a702c+0x1)%0x100,_0x3a3d24=(_0x3a3d24+_0x4dfc81[_0x1a702c])%0x100,_0x56d3cd=_0x4dfc81[_0x1a702c],_0x4dfc81[_0x1a702c]=_0x4dfc81[_0x3a3d24],_0x4dfc81[_0x3a3d24]=_0x56d3cd,_0x4ab6ff+=String['fromCharCode'](_0x43937a['charCodeAt'](_0x380ccf)^_0x4dfc81[(_0x4dfc81[_0x1a702c]+_0x4dfc81[_0x3a3d24])%0x100]);}return _0x4ab6ff;};_0x1356['IrgcxL']=_0x3067c1,_0x908390=arguments,_0x1356['ijAIyS']=!![];}const _0x584760=_0x323f2a[0x0],_0x33264=_0x135670+_0x584760,_0x4a54f6=_0x908390[_0x33264];return!_0x4a54f6?(_0x1356['sJCyfp']===undefined&&(_0x1356['sJCyfp']=!![]),_0x25e713=_0x1356['IrgcxL'](_0x25e713,_0xcb2f5d),_0x908390[_0x33264]=_0x25e713):_0x25e713=_0x4a54f6,_0x25e713;},_0x1356(_0x908390,_0x84bc2c);}let TokensMap=new Map();function _0x323f(){const _0x2d7b39=['WPfRv1zkW7myWQm','tNNdKa','W4iiW5pdJa','F27dU3LIWQKzW4O','kZhdJW','W6xcLWS','WP3dN8oLWRpcVg7dM8oPW5yx','gslcJ157ua','kmojW5bmW4FdRhvQWRTHW4hdHSo8','CZXKW5O','W5L7WRyYWO95f8kVvmkPWOHVreRcICkNW7jxFcG','WRRdNmkhW7/cVdTCW6dcSCkCW7/dJa','WQ8YhmoqW57dPgxcUmoAW6ik','tqHyW6i','pmozW4D8W4VdUgG','WRNdHLPuWOVcGCoxgSoDFa','WOpdImkxAq','n+IUQUAXKUwrTUw7ISkA','iZXsW64AW5hdSq','CJnM','W4NcImkK','W4ynW6hdJvpdQHhdM2fFoflcHWa','W5asWPhcLq','WQ7dVubtW60CWPCBcG7cGMa','WOajhmol','W7xdTmov','WQxdVSoeW6JdHsLCDW','iXndWPZdKYe','W5CjWPiKWRCaWPXsWP3cHSov','WPGWkG','5O+M56wK57ML5P67kbmyr27cJqaQWQZcHq','W6pcNHm6W5/dM8keDCkfiJaRWQq','WQBdS8kkWP/cIdxcS8khmG','WRRdNmkgW7/cVtviW7tcOSkCW5xdNG','W6m5WRmaWRzKWQHMWR/cOSkbgZX3W4RcHgi','W4BcGSknW6lcJM3dTmo1W4OqkYRdVG7cPv4NWOhMTldLIBVcHHBVV6dLPAdKU4NNLQFOIidML7RPGz/LJzlLIR/LI7O','W6NcL8kc','o+kFHmkm','W4hdH8o5sWxcJ8kfW7m','W77dTmopxmkMWPy','WOeLWOq0WOH4e8k1','77265Bsi6l6K5lQx6zMO77YJ','WP7dILa7','WPL1nI/dH8kaeCkXomoZWO/cHW','WRFdLvvhWOFcKSoA','W4BINPyE6k+v5RgC5AAR6lwq77+o5PAl5zgA5BMg5PwL5O+l77+j8yA7Pa','4P62WOVOHlpMNAtOVRpOO6/PG5ZLIPlKUOhPLyNOR5nt','WRXMW789rCkFWRVcJmo+q8ksqCk1WPtcLhxdKtJdSYddTSkfWOm','WQFdUv0nW7miW5jqtfJdG2dcO3hcImo5WOm4pSkyEmkTWPyZDSkpWPz2W4lcVcTUBhqsW7FcMmoIsSo1WQS8W7yWWQFdSCk4W5JdI2bqurpdKmkKWPDrs8kcWO/cMCkVlCoNkxzXW5dcISo4WQ3cOWC','WQNdRSkt','W7C6WOldGq','oa7cTW','W5GCWOi','sa5qW7n1WOK','W4dcNCogpwCPy8ovgSkRcCoU','W5hINAtdLEIST+AWJUwKOEI1IE+9IG','k01h','44gF6lsJ5yY2','d8k/WQq','kI3dJW','W4f6Da','WQ/cN8ooobJdOmk+WQXJWPz5W5tdTa','W4i0DgJcH8kmC8oBeSkIW67cICo9WQrBW6hdJSkeW6ddQq','d8ovDmkH','W7qWWPJdQcPHrg4MWRDqWOLUWRW','4PUMhUIVL+wfTowUUUs6How9NUIMREEAR+EpG+wIUEwpTEMhJ+wqIowfT+I9PoIGPoIfVUAFVU+8JW','AuBdNSoxgWCd','ptBcHxLAW6SgW4pcG8oRW6OhW4ldJSkcvSoUWQVdPG','W6VcMCkiW6i','md/dGu5aWQ4rW44','D1aiWQddMc3cSmoxbG','iqddHCochGCjW6tdSmoQWP/dGN0yW6VdLq0Oe8k+e8kVxmkWWPFdG8kb','W7ldHmk9','BqHsW7n1WPuXW500W5pdId8','W6JcMSocWQhdQgm','W4hdJ8oV','W6BcQCowW4VdTW5U','W7FcVXXkWRHXWOGUDIlcOa','WQxdQxyzW7bdWPKGrq7cJMldUhxcMmkiWOK5j8osAmk6WPu6','W7ZdTdlcNcJdUXlcL8kxz8kSFCkgW6ddSHPiW4GAEmoBBXBdQq','fCkFBSoEv0xdN8khWRveW4JcHL/cQG','h3K/c2nR','W7lcMCkmW7pdMx1EWQq','WQ3dOmk5','W71hWPW','W7RdISkxB1ZcUW','W7pdJSkPnYTYWPy','WOuLW7OcWPfyc8kksW','W7JdRYe','t8ohj8kGbrFcICotW60V','W5ZdH8oZDau','W4ldH8oSyG','W4mUDh3cHSoxp8kajCo0WQxcISkNWQTnWPddNSkdW6lcTSknWQNcVMxdOfrxlINcMs3dU8k2WR5Nv8kjWQe','cCk0WPXEB8oUjuW4W5zTtI9XbSk1WPRcTCklEmkoymot','fY7cGK57umk0','44k75O6f56s144gB6kY25yEj6iYZ5y++W5PvrSoOW7eH','W4fUcW','W7BcM8kxW67dVwa','W7RcNCodWQhdOwP4W4pcIG','q8oiEColB37dSSkK','s8oklCkTcbNcJCkcWQbDW6/cS2y','WQGsWPrfoG','Ctf/W5qS','W7BdSmovwG','WQVcOHRdUSknpSkjW7a','W4xdImoIAXxcNCkfW6W','W6Peoa','W7ZcUb5kWRikWQqUDqNcIhW','s+kCQcdINOXU5P6T6kYg5AAT6lEtWOldLL0','WQq5gSosW5tcNIJcGSo7W78Zxh8','WOudsmoBW6ddPJ8','WR/dIbJdICkXWOmPW43dK8kM','y0RdNSoraWm','W7VIN6BdNEkDR27MN6tORAVLPR7OTBlVVyG','hxeNhG','W4NdLmoZAbi','W5GwWOVcK8ooW7m','4P69W5JMN5/OGl3MRk/NOB7LPAJNKytcVa','WP46WRCJWPrwaCoUCSkPWPHvw1hcUCkF','6lwK5y6x5PEq5PA9WPtWRkMI','W7WGWPJdOILNsG','WPVcNmkQWQq8yqGDW6GZj8kkgSkmW4LEwcPvu8oIWQeGaEAmPowiN+ETJ+wkS+w5UEwoOo+/NoM4ToIUGaS','W4hdH8oX','W786WOS','WPS3vs3cOCoMp8kxsmk4fSoSWRy','WPVdIf0HfCokW6/dM040','WO7dHeiTdCkE','dCkXWQ5F','W49Ua3ldT8k3Aa','W6BdTmozt8o9WO7dHSoazGa','W6DhWOxdMa','W5ZcKSknW7BcL3i','W7FcRCotW53dUG','W7hcJWfeWO4','W67dVCkTWQ5WASolW7C2AmogBadcQ8oHWPapWPxcPN8','WRtdImkJW6tdUfzsWRu','W74SW6qUwmkB','xqzrW6i9WPq3WPKhW4pdLG','W4hcLCk1','WQJdMb/dRa','W44TzJ4','WP3cL8ks','xrnDW7vKWOGsWPKuW4i','oComW4VdOsS'];_0x323f=function(){return _0x2d7b39;};return _0x323f();}const invalidTokensMap=new Map(),CacheFile=__dirname+_0x20e94e(0x150,'r^0P'),cookiesArr=Object[_0x20e94e(0x172,'Fd4H')](jdCookie)[_0x20e94e(0x144,'G7WY')](_0x3067c1=>jdCookie[_0x3067c1])[_0x20e94e(0xff,'Z93F')](_0x216be6=>_0x216be6);!cookiesArr[0x0]&&($[_0x20e94e(0x154,'iVgd')]($[_0x20e94e(0x125,'G7WY')],_0x20e94e(0x129,'jgoB')),process[_0x20e94e(0x156,'jgoB')](0x1));!(async()=>{const _0x4894c9=_0x20e94e;try{notify['config']({'title':$[_0x4894c9(0x149,'IuQK')]});if(tokensList[_0x4894c9(0x11f,'Wsfq')]>0x0)tokensList=[...new Set(tokensList[_0x4894c9(0x11b,'#)hq')](_0x3ddc0f=>_0x3ddc0f!==''))];if(tokensList[_0x4894c9(0xf1,'aslA')]<=0x0){console['log'](_0x4894c9(0x10b,'nsh4'));return;}const _0x38d8c2=require('fs');if(_0x38d8c2['existsSync'](CacheFile)){const _0x4be639=_0x38d8c2[_0x4894c9(0x100,'wHXr')](CacheFile,_0x4894c9(0x14f,'PIGh')),_0x363c43=JSON[_0x4894c9(0x124,'G7WY')](_0x4be639);for(const _0x4f87e1 in _0x363c43){TokensMap['set'](_0x4f87e1,_0x363c43[_0x4f87e1]);}}$[_0x4894c9(0x10f,'Gasg')]=null;if(runInterval)try{const _0x1a3dcd=parseInt(runInterval);_0x1a3dcd>=0x0&&($['waitTime']=_0x1a3dcd);}catch{console['log']('⚠\x20自定义运行间隔时长设置错误');}try{const _0x5474bb=parseInt(taskThreads);_0x5474bb>0x0&&_0x5474bb!==0x1&&(taskThreads=_0x5474bb);}catch{taskThreads=0x1;}try{const _0x9865a2=parseInt(accountThreads);_0x9865a2>0x0&&_0x9865a2!==0x1&&(accountThreads=_0x9865a2);}catch{accountThreads=0x1;}await common['concTask'](accountThreads,cookiesArr,async(_0x2eff59,_0x43937a)=>{const _0x3a239e=_0x4894c9;await concMain(taskThreads,tokensList,_0x2eff59,_0x43937a,Main);if($[_0x3a239e(0x15a,'&XL8')])await $[_0x3a239e(0x14c,'E#nt')]($['waitTime']);}),isNotify&¬ify[_0x4894c9(0x139,'b$*X')]()&&await notify['push']();}catch(_0x275a5d){console[_0x4894c9(0x11d,'r^0P')](_0x4894c9(0xf8,'Vk^7')+_0x275a5d);}})()[_0x20e94e(0x14e,'Kts6')](_0x4dfc81=>$['logErr'](_0x4dfc81))[_0x20e94e(0x10c,'1Q7N')](()=>$[_0x20e94e(0xfc,'5odT')]());async function Main(_0x3a3d24,_0x56d3cd){const _0x391a57=_0x20e94e,{title:_0x4ab6ff,UA:_0x1a702c,cookie:_0x380ccf,message:_0x2e12a7,jsToken:_0x37be90}=_0x56d3cd;if(invalidTokensMap['get'](_0x3a3d24))return;let _0x285812='',_0x353a99='',_0x419ec9=null;const _0x1446aa=TokensMap['get'](_0x3a3d24);if(_0x1446aa)_0x285812=_0x1446aa['venderId'],_0x353a99=_0x1446aa[_0x391a57(0x147,'Vk^7')],_0x419ec9=_0x1446aa[_0x391a57(0xf0,'G7WY')];else try{if(_0x3a3d24[_0x391a57(0x133,'G7WY')](':')&&_0x3a3d24[_0x391a57(0x159,'V^L@')](':')[_0x391a57(0x152,'lOgR')]===0x3){const _0x22cbd7=_0x3a3d24['split'](':');if(!_0x22cbd7[0x0]||!_0x22cbd7[0x1]||!_0x22cbd7[0x2])return;_0x3a3d24=_0x22cbd7[0x0];if(_0x3a3d24[_0x391a57(0x13e,'zzi*')]!==0x20||!/^[A-Z0-9]*$/['test'](_0x3a3d24))return;_0x353a99=_0x22cbd7[0x1],_0x285812=_0x22cbd7[0x2],_0x22cbd7[0x2][_0x391a57(0x158,'Z93F')](_0x391a57(0x15b,'1J$a'))&&_0x22cbd7[0x2][_0x391a57(0x13e,'zzi*')]===0x8&&!_0x22cbd7[0x1]['startsWith']('123')&&(_0x353a99=_0x22cbd7[0x2],_0x285812=_0x22cbd7[0x1]),TokensMap[_0x391a57(0x106,'HWBL')](_0x3a3d24,{'index':null,'venderId':_0x285812,'shopName':'','activityId':_0x353a99,'startTime':'','endTime':'','isValid':!![],'rules':[],'minLevel':null,'maxLevel':null});}}catch(_0x33405e){return;}if(!_0x285812||!_0x353a99)return;const _0xd3f0ec=Math[_0x391a57(0x130,'%m4P')](Date['now']()/0x3e8)+'000';if(invalidTokensMap[_0x391a57(0x173,'aslA')](_0x3a3d24))return;await _0x32af9f(_0x391a57(0x162,']]!4'));if($[_0x391a57(0x11c,'gl3B')])await $['wait']($['waitTime']);function _0xd7e509(_0x9068c7,_0x2871d4){const _0xbb00fd=_0x391a57;try{switch(_0x9068c7){case _0xbb00fd(0x179,'PIGh'):if(_0x2871d4[_0xbb00fd(0x167,'Z93F')]===0xc8&&_0x2871d4[_0xbb00fd(0x168,']]!4')]===!![]&&_0x2871d4[_0xbb00fd(0x109,'NrjG')]){const _0x41e54b=_0x2871d4[_0xbb00fd(0x170,'zzi*')][_0xbb00fd(0xf4,'Vk^7')];console[_0xbb00fd(0x157,'K*]N')](''+_0x4ab6ff+_0x3a3d24+_0xbb00fd(0xef,'f%90')+(_0x41e54b>0x9?_0x41e54b:'\x20'+_0x41e54b)+'天'+(_0x41e54b>0x0&&_0x419ec9&&_0x41e54b>=_0x419ec9?_0xbb00fd(0xf3,'!WZE'):''));}else _0x2871d4[_0xbb00fd(0x105,'Gasg')]?console[_0xbb00fd(0x112,'(X2w')](''+_0x4ab6ff+_0x3a3d24+_0xbb00fd(0x13b,'XlyS')+_0x2871d4[_0xbb00fd(0x102,'nsh4')]+')'):console['log'](''+_0x4ab6ff+_0x3a3d24+_0xbb00fd(0x136,'NrjG')+JSON[_0xbb00fd(0x12c,'*lW#')](_0x2871d4));break;}}catch(_0x3e3f90){console[_0xbb00fd(0x12a,'**8x')](_0xbb00fd(0x13f,'K*]N')+_0x9068c7+_0xbb00fd(0x16b,'%m4P')+(_0x3e3f90[_0xbb00fd(0x120,'(X2w')]||_0x3e3f90));}}async function _0x32af9f(_0x4ea779){const _0x5c68bf=_0x391a57;let _0x320437='',_0x39a799=null,_0x110002=null,_0x3474ac=_0x5c68bf(0x134,'**8x'),_0x366de2={},_0x2db7fc={};switch(_0x4ea779){case'getSignRecord':_0x320437=_0x5c68bf(0x119,'3W^A'),_0x110002={'appid':_0x5c68bf(0x164,'Kd)L'),'functionId':_0x5c68bf(0x126,']KOJ'),'body':JSON['stringify']({'token':_0x3a3d24,'venderId':parseInt(_0x285812)||'','activityId':parseInt(_0x353a99)||'','type':0x38}),'jsonp':_0x5c68bf(0x17a,'zZ)[')};break;}const _0x2aba8b={'t':_0xd3f0ec,'loginType':'2','x-api-eid-token':_0x37be90};_0x39a799&&Object[_0x5c68bf(0x175,'cr%7')](_0x39a799,_0x2aba8b);_0x110002&&Object[_0x5c68bf(0x114,'*lW#')](_0x110002,_0x2aba8b);const _0x4ab549={'url':_0x320437,'method':_0x3474ac,'headers':{'Accept':_0x5c68bf(0x177,'HWBL'),'Accept-Encoding':_0x5c68bf(0xec,'iv^@'),'Accept-Language':_0x5c68bf(0x10d,'Gasg'),'Connection':'keep-alive','Content-Type':_0x5c68bf(0x14b,'aslA'),'Host':_0x5c68bf(0x171,'ALvg'),'Referer':_0x5c68bf(0x108,']KOJ'),'Sec-Fetch-Dest':_0x5c68bf(0x12b,'gl3B'),'Sec-Fetch-Mode':_0x5c68bf(0x138,'Fd4H'),'Sec-Fetch-Site':_0x5c68bf(0x153,'Z93F'),'User-Agent':_0x1a702c,'Cookie':_0x380ccf},'params':_0x110002,'data':_0x39a799,'timeout':0x7530};_0x3474ac===_0x5c68bf(0xfd,'1J$a')&&(delete _0x4ab549[_0x5c68bf(0x13c,'#)hq')],delete _0x4ab549[_0x5c68bf(0x128,'1J$a')][_0x5c68bf(0x113,'Z93F')]);const _0x38a26b=0x3;let _0x3180dc=0x0,_0x3c7d2c=null,_0xb3c806=![];while(_0x3180dc<_0x38a26b){const _0x4b078a=await common[_0x5c68bf(0x116,'Kts6')](_0x4ab549);if(!_0x4b078a['success']){_0x3c7d2c=''+_0x4ab6ff+_0x3a3d24+_0x5c68bf(0x101,'K*]N')+_0x4b078a[_0x5c68bf(0x13d,'G7WY')]+')🚫',_0x3180dc++;continue;}if(!_0x4b078a[_0x5c68bf(0x131,'aslA')]){_0x3c7d2c=''+_0x4ab6ff+_0x3a3d24+_0x5c68bf(0xf7,'&XL8'),_0x3180dc++;continue;}_0xd7e509(_0x4ea779,_0x4b078a[_0x5c68bf(0x163,'%m4P')]),_0xb3c806=![];break;}_0x3180dc>=_0x38a26b&&(console[_0x5c68bf(0x15e,'Gasg')](_0x3c7d2c),_0xb3c806&&($[_0x5c68bf(0x142,'5odT')]=!![]));}}async function concMain(_0x34d813=0x1,_0x17bac0,_0x49e2c8,_0x41d678,_0x31e5df){const _0x233793=_0x20e94e,_0x5c51b9=_0x17bac0[_0x233793(0x11e,'E#nt')](_0x43f066=>_0x43f066),_0x3b88bb=decodeURIComponent(common[_0x233793(0x11a,'!WZE')](_0x49e2c8,_0x233793(0x14d,'iVgd'))),_0x17cbcb=_0x233793(0x103,'i#c%')+_0x41d678+'】'+_0x3b88bb+':',_0x13c022=await common[_0x233793(0x10a,'5odT')](_0x49e2c8);if(!_0x13c022&&typeof _0x13c022===_0x233793(0x14a,'**8x')){console['log'](_0x17cbcb+_0x233793(0x141,'cr%7'));return;}const _0x33abec=notify['create'](_0x41d678,_0x3b88bb),_0x4c60d6=common['genUA'](_0x3b88bb),{jsToken:_0x2193df}=await jsTk(_0x4c60d6,_0x233793(0xfa,'ALvg'),{'bizId':_0x233793(0x176,'iv^@'),'v':_0x233793(0xf6,'PIGh'),'qs':_0x233793(0x148,'Vk^7')+_0x17bac0[0x0]}),_0x3039ca={'cookie':_0x49e2c8,'index':_0x41d678,'title':_0x17cbcb,'UA':_0x4c60d6,'message':_0x33abec,'jsToken':_0x2193df};let _0x5d7f1c=0x0;async function _0x235f0e(_0x3fe20e){await _0x31e5df(_0x3fe20e,_0x3039ca),_0x5d7f1c--,_0x3f42b7();}async function _0x3f42b7(){const _0x51ea8a=_0x233793;while(_0x5d7f1c<_0x34d813&&_0x5c51b9[_0x51ea8a(0x13a,'1Q7N')]>0x0){const _0x4877c3=_0x5c51b9[_0x51ea8a(0x12f,'XlyS')]();_0x5d7f1c++,await _0x235f0e(_0x4877c3);}}const _0x48cdc2=Math[_0x233793(0x115,'G7WY')](_0x5c51b9['length'],_0x34d813),_0x40c12d=[];for(let _0x3d271a=0x0;_0x3d271a<_0x48cdc2;_0x3d271a++){const _0x2a5512=_0x5c51b9['shift']();_0x5d7f1c++,_0x40c12d[_0x233793(0x155,'b$*X')](_0x235f0e(_0x2a5512));}await Promise[_0x233793(0x15f,'PIGh')](_0x40c12d),_0x3f42b7(),await new Promise(_0x5c2df4=>{const _0x905278=setInterval(()=>{_0x5d7f1c===0x0&&(clearInterval(_0x905278),_0x5c2df4());},0x64);});} 18 | 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)} 19 | -------------------------------------------------------------------------------- /jd_gwfd.js: -------------------------------------------------------------------------------- 1 | /* 2 | 活动名称:购物返豆 3 | 环境变量:jd_gwfd_interval // 自定义运行间隔时长(整数,单位毫秒),默认2000 4 | jd_gwfd_notify // 是否推送通知(true/false),默认不推送 5 | jd_gwfd_pinFilter // 账号pin过滤,多个用@进行分割 6 | 7 | cron:15 3,19 * * * 8 | 9 | */ 10 | 11 | const $ = new Env('购物返豆') 12 | const _0xb2d40a=_0x1bc5;(function(_0xe51ec5,_0x291d33){const _0x46f0e4=_0x1bc5,_0xb88295=_0xe51ec5();while(!![]){try{const _0x334d09=-parseInt(_0x46f0e4(0xc4,'Wjhz'))/0x1+-parseInt(_0x46f0e4(0x162,'Y#Hz'))/0x2+-parseInt(_0x46f0e4(0x123,'Y#Hz'))/0x3+parseInt(_0x46f0e4(0xc6,'#sGx'))/0x4*(parseInt(_0x46f0e4(0x146,'Nq%l'))/0x5)+-parseInt(_0x46f0e4(0x143,'!pI2'))/0x6+parseInt(_0x46f0e4(0xe0,')POe'))/0x7+parseInt(_0x46f0e4(0xee,'5TlR'))/0x8;if(_0x334d09===_0x291d33)break;else _0xb88295['push'](_0xb88295['shift']());}catch(_0x23bcac){_0xb88295['push'](_0xb88295['shift']());}}}(_0x24c9,0xb3cc2));const jdCookie=require('./jdCookie'),notify=require('./utils/Rebels_sendJDNotify'),common=require(_0xb2d40a(0xda,'uX%k'));let taskThreads=process['env'][_0xb2d40a(0x10c,'1#3M')]||'1';function _0x24c9(){const _0x781a1e=['h8o/W7FcPZ7cQ27dMwzbWP5WW5/dQa','zNZdKW','W7lcP8krWPi','W5BdGeaO','zsT8W7e','WOddOvFdG8kkCxajW5RdN8kFjmkXi8o5lmkNCfNdQsHpka','W7/dQ37cKCknW6a2W7WPW54eoKDWcCoDfmkCW4e','WOLcW5NcGN7cVSoE','W4VdQZdcRCk0AG','cMe9aColWOGAW6KEWQrXteNcGSoCW70+W7aEWQRcOq','geiS','idvoCmkLDaHnWR/dH8owyY0','c08mfs0','WRGdbIRcOCkXja','WRSygItcVW','kZbU','4PYMh+IfPUADLEI+MoIHH+McGowiNUs7N+MvMEITPIi','hLhdLmknWQddIG','b+IVNoAYI+wNR+I1GupINiRdVW','W7dcUmkCW5NcUZNcISk8a8kRWR8p','iCoZztm','tKxdUa0Wxq','eCoYe8k6W6ddMI4AsaG4gHRdVx/cRW','WOr0adlcKCocW6FcThhdGrNcV8oxzW','Cc3cKq','bLhdTmkHW6vvFJ7cGGhdNmkBWRBcVW','W5ZdOci','4P++WQxMNPBOG7tMRRFNORpLPydNKkOc','w8kNWPxcTa','WOjdW5xcGM7cU8ovWRW','WPL4ofb2g37cSmo4wHKBW7C','W7/cRCkqWPpcHhlcJCk3w8kTWPmnWQbRkSkmW64wjXhdRa','AmknAxW','6zw16zUB5Ps66zESWRK4WQu','5lQX6kYg5y2d772G5yY16AcT5y2W','W48GEWy','eSo4cCkw','6AoW5y2b5Aww6lEwW5u','BrZdPspdV1G','W6K3W7PloKezW55sbCoJW5NdI8khivpcRCk1','W7POWPS','zXRdRHldQfG','W4ldJK05W4T/W4G3','qu/dUaKqvmoEWQe','W7ddUN7cRCkFWQ58WQa1WQPAjZ9/h8kahSkCW4i','jCo5DrRcVI7dRwSSW4W7WPPeW5G','ASkrFNaxWP4','pNuVWQ1mWO0nWQy','WPejW6tdVcxcNSkHW6ldHmktW4zFWOpdV8kbf8kIF8krW63dJq','W4BcULBdH8kqjYWjW6NdISkuB8kWFSomiSoTufNdQwPdkSkcW75JFmkhWPRdTSonwCkhW5y','5lQ56lga8kkXSG','WRhdSuiu','WP9UWRK+bSkfWQaPgSkOcmkYWQmiW7RcV8oj','eKmQvCkyhCkOW6u','4PYOjoADSUEEGoITRUAYR1C','amovWR0wA8kNa8otWOfOfchcHcqSDW','W4pcR0ZdGSkcCubjW6tdLSkyiSkPgCoiiSkMsW','WO8yW57dQb7cLq','W7/cP8kc','gCkpW4ZcJ2JdGmkowaFdLSoWWPK','44gL6lEg5yY/','6lsS54IA6l2w6lcG5yQA6kgc5Asl6lAaWQK','ngKPWQbnWOW','hLVdNq','r07dOa','FevWW4FcO8kYySoMACod','W5ZcU0ZdSSknEq','BbldSG','W5ldILaDW615W50RDgldOamPzG','bfal','t0xdPrKLuSoi','bmo2WQZcSLJcRq','f+kFTmoL','kCkeWRZdKtdcMmoMW5v5tSo9bSkH','qSoFWPVdNt7cHCk7','W7lcTqbnwePkW494','bmo8WQu','W5RdNuaOW61CW5u3rMxdJWiX','CmkLnMhdON7cTuWUW5ylWQDu','6lA854QH6lYH6lkX5yUb6kg/5AEr6lE9DG','wW3cQ8oZWQak','W5tdRZRcRCk2y8k2WQP2W7LHxZzqAZddRmkL','b14m','CSo/lG','5Bsn6k+s57+V6lwR6l6W6lYR6kka5B+E5yU/6lEq5y2Y','f3aQdmo3WOOEW6ar','fmkqWRJcPCkW','W7BcRCkbWRlcPgxcJ8kQymk7WRC','WOv/WPuX','W5FdQZhcVmkfASkyWQPSW7bhuY15zZtdI8k4WP1Fra','o34IWQznWOe','eSkfWRZcJmkNnCoiW5NcRv5p','FCoDW6W','mmo5CtpcSd0','W77dIMa','W4BcHcy','pCoFxf7cJe8Sna','AxZdMmo5WPZcPflcKCkAscLCW6W','W5JdOCoJBSkJWRSGC0ZcRComW4zCoG','W6JdIh8pWR8','WQWFbG7cO8k5','W6VdRSoMW7LOWPXCW4S','nhqOWQq','h13dLa','W7bSWP/dN8kSqmkcifVdJa','W7VdOw7cUa','AxldGmo2WPe','W7OzvW','6lAN5y646lYl5RM3WRK4WQu','W5KIvG','jSkMFSk3lSkBWR04wmkSlmkQW6S','mvVdLmkEWRhdJmoBlsldPMxdIa','aX8/yG','WQzFDmksaSkCtmo3','gL05vCkegSkSW6ldGCkIy8kVfHBdS8ktyCkvkCoqWPZdI8oFWRerFhvzWRjMWOFdU34','WQy5W5ZcOmo5bSoddfVdISkaBCkl','deWGtq','W552WR7cGCo1BXtdKa','w+IVMUAWI+wKIoI3IfNINzhcTUAvIowqGow6MEAxSoAmGa','bKbRWQJdLCkg','8jUQNdq','5RoS5P+P5yYw6AoK5y2C55U+5lQk6lgu','WQtORQhMS5BLK7pLU48n','cXeS','lJf6EY7cVa','eK5SWRO','h0W9wa','j8keWQyfW70CqK0AW5ddQMnGWPlcON8','8jI4U2K','5lU155o25B6x5yAcW7pdLv8','rKhdOGS','6AoZ5yY25OUy5yMwW69N','W5S0Fa8','W4XVWR7cGq','W7mlrmkw','fNe2imo3WOK','qaNcRmoGWOaliwS','DqhdTWm','W4CUAa','su7cRmk6nGBdU8kWW5ZdQSkfWOLSWRBcPCoWoSkRsCkWWO8','gmouWPiDFCkIaG','ESkRm2ddP3/dRhmQW5qPWPG','6yoV55+V5O2o6ygys8odWP8','lYT9BI/dSNNdRKJcGmk3cSkjdCotwfKQW75RoI1UzSkDWOBcQ8kPW4tdKCo6WRhcUCoB','bbeNB3iVqJLPWPZcNSkcW40','6lwt5yYx5PsO5PAb','5lUu6loC8l+JKG','D1zGW4m','44ku5O6g56AU44cV6k6S5ywL6i+T5y2NFqBdQCorW5BcOa','WQi6W5pcPSo6bmodl2ZdGSk9s8k/','56woW5lOVz/OO4hPL4JPMAhML4FPL5e','lGOPWP/dRmogo8kiimkm','W7tdOw0','e8kjWQtcVCkWnq','nsPNwZlcRa','WOhcSmkkp8oNW6OcwKFcImokW4m','WROlhcO','rmoqW7/dU8oLCSkvW6BcH055F8o5','W5NdGem','6Akv5y+H5OIe5yI9W6VdMW','awOU','WRifdW','g18VW5zqvf7dIMrJW6WPWRC','W7ZdR37cVa','uCkNWOZcSa','W7ZdGwiGWRVdN8odWP7dGGfwW5hdG8k2WPDFWQP+aq','CSo1j8oHy8oa','bSoEWOu','W6CMWRq','WPmdW6y','W60GWQS','W6vSWPRdP8kSqmkf'];_0x24c9=function(){return _0x781a1e;};return _0x24c9();}const runInterval=process[_0xb2d40a(0x133,'o8c1')][_0xb2d40a(0x154,'E[V7')]||_0xb2d40a(0xd9,'N*(%'),isNotify=(process[_0xb2d40a(0x115,'5CEm')][_0xb2d40a(0x137,'Wjhz')]||process[_0xb2d40a(0xc9,'Q1F#')]['jd_gwfd_Notify'])===_0xb2d40a(0x15e,'LvE&'),pinFilter=(process[_0xb2d40a(0xef,'5h#m')][_0xb2d40a(0x109,'DzB2')]||'')['split']('@'),maxThreads=0x1;let cookiesArr=Object['keys'](jdCookie)[_0xb2d40a(0xfd,'iQv$')](_0x3f0236=>jdCookie[_0x3f0236])['filter'](_0x1b5d91=>_0x1b5d91);!cookiesArr[0x0]&&($[_0xb2d40a(0x140,'Nq%l')]($[_0xb2d40a(0xcd,'[HlV')],_0xb2d40a(0xbd,'4gDw')),process[_0xb2d40a(0x15a,'ED*R')](0x1));!(async()=>{const _0x5dce3d=_0xb2d40a;notify[_0x5dce3d(0x14c,'vSkL')]({'title':$['name']}),await Main(),isNotify&¬ify[_0x5dce3d(0x13d,'iQv$')]()&&await notify[_0x5dce3d(0x159,'tUFv')]();})()[_0xb2d40a(0x13f,']sQi')](_0x1d5985=>$[_0xb2d40a(0xfb,'LvE&')](_0x1d5985))[_0xb2d40a(0xe2,'@jf!')](()=>$[_0xb2d40a(0xf9,'2wO$')]());function _0x1bc5(_0x1a13d8,_0x36c8fb){const _0x24c982=_0x24c9();return _0x1bc5=function(_0x1bc518,_0x56ebed){_0x1bc518=_0x1bc518-0xb7;let _0x2848ad=_0x24c982[_0x1bc518];if(_0x1bc5['WqeYmm']===undefined){var _0x1375b3=function(_0x1b5d91){const _0x1d5985='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b409f='',_0x40812c='';for(let _0x39bfd6=0x0,_0x3d52af,_0x453c75,_0x24b51=0x0;_0x453c75=_0x1b5d91['charAt'](_0x24b51++);~_0x453c75&&(_0x3d52af=_0x39bfd6%0x4?_0x3d52af*0x40+_0x453c75:_0x453c75,_0x39bfd6++%0x4)?_0x1b409f+=String['fromCharCode'](0xff&_0x3d52af>>(-0x2*_0x39bfd6&0x6)):0x0){_0x453c75=_0x1d5985['indexOf'](_0x453c75);}for(let _0x22190d=0x0,_0x1a37f5=_0x1b409f['length'];_0x22190d<_0x1a37f5;_0x22190d++){_0x40812c+='%'+('00'+_0x1b409f['charCodeAt'](_0x22190d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40812c);};const _0x3f0236=function(_0xaf0d9b,_0x40912c){let _0x1266ba=[],_0x349922=0x0,_0x28d4f7,_0x538139='';_0xaf0d9b=_0x1375b3(_0xaf0d9b);let _0x3653fc;for(_0x3653fc=0x0;_0x3653fc<0x100;_0x3653fc++){_0x1266ba[_0x3653fc]=_0x3653fc;}for(_0x3653fc=0x0;_0x3653fc<0x100;_0x3653fc++){_0x349922=(_0x349922+_0x1266ba[_0x3653fc]+_0x40912c['charCodeAt'](_0x3653fc%_0x40912c['length']))%0x100,_0x28d4f7=_0x1266ba[_0x3653fc],_0x1266ba[_0x3653fc]=_0x1266ba[_0x349922],_0x1266ba[_0x349922]=_0x28d4f7;}_0x3653fc=0x0,_0x349922=0x0;for(let _0x448bbb=0x0;_0x448bbb<_0xaf0d9b['length'];_0x448bbb++){_0x3653fc=(_0x3653fc+0x1)%0x100,_0x349922=(_0x349922+_0x1266ba[_0x3653fc])%0x100,_0x28d4f7=_0x1266ba[_0x3653fc],_0x1266ba[_0x3653fc]=_0x1266ba[_0x349922],_0x1266ba[_0x349922]=_0x28d4f7,_0x538139+=String['fromCharCode'](_0xaf0d9b['charCodeAt'](_0x448bbb)^_0x1266ba[(_0x1266ba[_0x3653fc]+_0x1266ba[_0x349922])%0x100]);}return _0x538139;};_0x1bc5['pCVXWy']=_0x3f0236,_0x1a13d8=arguments,_0x1bc5['WqeYmm']=!![];}const _0x41f821=_0x24c982[0x0],_0x378321=_0x1bc518+_0x41f821,_0x494012=_0x1a13d8[_0x378321];return!_0x494012?(_0x1bc5['iaxgMV']===undefined&&(_0x1bc5['iaxgMV']=!![]),_0x2848ad=_0x1bc5['pCVXWy'](_0x2848ad,_0x56ebed),_0x1a13d8[_0x378321]=_0x2848ad):_0x2848ad=_0x494012,_0x2848ad;},_0x1bc5(_0x1a13d8,_0x36c8fb);}async function Main(){const _0x1c12bc=_0xb2d40a;try{try{const _0x40812c=parseInt(taskThreads);_0x40812c>0x0&&_0x40812c!==0x1&&(taskThreads=_0x40812c);}catch{taskThreads=0x1;}taskThreads=Math[_0x1c12bc(0x13c,'nfos')](taskThreads,maxThreads),$[_0x1c12bc(0xff,'GCi[')]=null;if(runInterval)try{const _0x39bfd6=parseInt(runInterval);_0x39bfd6>=0x0&&($[_0x1c12bc(0x135,'$5O(')]=_0x39bfd6);}catch{console[_0x1c12bc(0xd2,'F%i!')]('⚠\x20自定义运行间隔时长设置错误');}$[_0x1c12bc(0xf4,'EnHo')]=[],console[_0x1c12bc(0xd3,'IHNW')](_0x1c12bc(0xc0,'p3@z')+$['name']+'变量开启状态=========='),console[_0x1c12bc(0xd6,']sQi')](_0x1c12bc(0xf6,'IHNW')+$[_0x1c12bc(0x15d,'5TlR')]/0x3e8+_0x1c12bc(0xbf,'HMP%')),console[_0x1c12bc(0x128,'!pI2')](_0x1c12bc(0x156,'VtuT')+common[_0x1c12bc(0x119,'GCi[')]()+']'),console[_0x1c12bc(0xca,'@jf!')](_0x1c12bc(0xb7,'DzB2')+(isNotify?'开启':'关闭')+']'),console[_0x1c12bc(0xc7,'GCi[')](_0x1c12bc(0x141,'IHNW')+pinFilter['join'](',\x20')+']'),console['log']('=========='+$['name']+'变量状态结束=========='),console['log'](''),await common[_0x1c12bc(0x100,'5CEm')](taskThreads,cookiesArr,taskFnc),$[_0x1c12bc(0x15c,'Q1F#')]=![];$[_0x1c12bc(0x105,'F%i!')]['length']>0x0&&(cookiesArr=cookiesArr[_0x1c12bc(0xfe,'LvE&')]((_0x3d52af,_0x453c75)=>!$['needRemoveCookieIndex'][_0x1c12bc(0x104,'N*(%')](_0x453c75+0x1)),$[_0x1c12bc(0xde,'Q1F#')]=[]);const _0x1b409f=notify['getMessage']();_0x1b409f&&console['log']('\x0a📣\x20运行结果\x0a'+_0x1b409f[_0x1c12bc(0x161,'1#3M')](/:/g,_0x1c12bc(0x11d,'5TlR')));}catch(_0x24b51){console[_0x1c12bc(0xe4,'gcQI')](_0x1c12bc(0xe5,'xnmJ')+_0x24b51);}}async function taskFnc(_0x22190d,_0x1a37f5){const _0x1d9765=_0xb2d40a;if($[_0x1d9765(0x139,'@jf!')])return{'runEnd':!![]};const _0xaf0d9b=decodeURIComponent(common[_0x1d9765(0xd5,'$dii')](_0x22190d,_0x1d9765(0x10e,'F%i!')));function _0x40912c(_0x1ebf22,_0x25bc27){const _0x3454db=_0x1d9765;if(_0x1ebf22[_0x3454db(0xea,'5CEm')]<=0x4)return _0x1ebf22;else{const _0x56e8c9=_0x1ebf22[_0x3454db(0x138,'o8c1')](0x0,0x2),_0x564df5=_0x1ebf22['slice'](-0x2),_0x403899=Math['max'](_0x25bc27-_0x56e8c9[_0x3454db(0x11c,'GyB)')]-_0x564df5[_0x3454db(0x125,'5TlR')],0x0),_0x4ba5a1='*'[_0x3454db(0x132,'Y#Hz')](_0x403899);return _0x56e8c9+_0x4ba5a1+_0x564df5;}}const _0x1266ba=decodeURIComponent(_0xaf0d9b),_0x349922=_0x40912c(_0x1266ba,0x6),_0x28d4f7=_0x1d9765(0x111,'#sGx')+_0x1a37f5+'】'+_0x349922+':',_0x538139=notify[_0x1d9765(0x113,'N*(%')](_0x1a37f5,_0xaf0d9b);if(pinFilter['length']>0x0&&(pinFilter[_0x1d9765(0x10a,'V[7K')](_0xaf0d9b)||pinFilter[_0x1d9765(0xf2,'#pb6')](encodeURIComponent(_0xaf0d9b)))){_0x538139['fix'](_0x1d9765(0x129,'F%i!')),console[_0x1d9765(0xd3,'IHNW')](_0x538139[_0x1d9765(0xeb,'2wO$')]()),$[_0x1d9765(0x12e,'5h#m')][_0x1d9765(0x12d,'DzB2')](_0x1a37f5);return;}const _0x3653fc=await common[_0x1d9765(0x102,'Y#Hz')](_0x22190d);if(!_0x3653fc&&typeof _0x3653fc===_0x1d9765(0xdc,'#pb6')){console[_0x1d9765(0xdf,'TDWC')](_0x28d4f7+_0x1d9765(0xba,'#sGx')),_0x538139[_0x1d9765(0xd1,'IHNW')]('账号无效'),$[_0x1d9765(0x160,'tEAH')]['push'](_0x1a37f5);return;}const _0x448bbb=common['genUA'](_0xaf0d9b);let _0x5b2c96,_0x1063ec;_0x5b2c96='',await _0x5253ae('manualCollectIndex'),await $['wait'](parseInt($[_0x1d9765(0x14a,'ED*R')]*0x1+0x1f4,0xa));if(_0x5b2c96){const _0x338b66=_0x5b2c96['orderList']||[];if(_0x338b66&&_0x338b66[_0x1d9765(0xe6,'nfos')]>0x0){_0x1063ec=_0x338b66[_0x1d9765(0x127,'xnmJ')](_0x4c7b92=>_0x4c7b92[_0x1d9765(0x116,'p3@z')]);const _0x2a4361=_0x338b66[_0x1d9765(0xdd,'5h#m')]((_0x504373,_0x3cc057)=>_0x504373+_0x3cc057[_0x1d9765(0xcb,'TDWC')],0x0);console[_0x1d9765(0xc1,'RM*F')](_0x28d4f7+'有'+_0x338b66[_0x1d9765(0x12f,'N*(%')]+_0x1d9765(0xf7,'o8c1')+_0x2a4361+_0x1d9765(0xbb,'$dii')),await _0x5253ae(_0x1d9765(0xfc,'4gDw')),await $[_0x1d9765(0x149,'V[7K')](parseInt($['waitTime']*0x1+0x1f4,0xa));}else console[_0x1d9765(0x131,'f!Wl')](_0x28d4f7+'没有可领取的订单');}if($[_0x1d9765(0xc3,'gcQI')])return{'runEnd':!![]};await $['wait'](parseInt($[_0x1d9765(0x13a,'HMP%')]*0x1+0x1f4,0xa));async function _0x475081(_0x6901d2,_0x4c02a3){const _0x4ef1d1=_0x1d9765;try{switch(_0x6901d2){case _0x4ef1d1(0x10d,'uX%k'):_0x4c02a3[_0x4ef1d1(0x13b,'N*(%')]==='0'?_0x4c02a3[_0x4ef1d1(0xbc,'p3@z')]?_0x5b2c96=_0x4c02a3[_0x4ef1d1(0x145,'&0]o')]:(msg=common[_0x4ef1d1(0x130,'#sGx')](_0x4c02a3[_0x4ef1d1(0xf8,'tUFv')]),console['log'](_0x28d4f7+_0x4ef1d1(0x112,'LvE&')+_0x4c02a3[_0x4ef1d1(0xd7,'EnHo')]+']:'+msg)):(msg=common['getErrorMsg'](_0x4c02a3),console[_0x4ef1d1(0xd0,'1#3M')](_0x28d4f7+_0x4ef1d1(0x124,'EnHo')+_0x4c02a3[_0x4ef1d1(0xf5,'tZgQ')]+']:'+msg));break;case _0x4ef1d1(0x126,'5h#m'):if(_0x4c02a3[_0x4ef1d1(0x13e,'RM*F')]==='0'){if(_0x4c02a3[_0x4ef1d1(0x15b,'Nq%l')]?.[_0x4ef1d1(0x136,']sQi')]===_0x4ef1d1(0x108,')2eo')){let _0x1b61bc=_0x4c02a3[_0x4ef1d1(0xc5,'@jf!')]?.[_0x4ef1d1(0xb9,'&0]o')]||[];const _0x58b699=_0x1b61bc['map'](_0x5edaa3=>_0x5edaa3[_0x4ef1d1(0x122,'GCi[')])[_0x4ef1d1(0xc2,'#sGx')](_0xa32aa9=>_0xa32aa9!==undefined);if(_0x58b699[_0x4ef1d1(0xcf,'!pI2')]>0x0){const _0x533c2c=_0x58b699[_0x4ef1d1(0xdd,'5h#m')]((_0x175995,_0x186adf)=>_0x175995+_0x186adf,0x0);console[_0x4ef1d1(0x150,'&0]o')](_0x28d4f7+_0x4ef1d1(0xc8,'p3@z')+_0x533c2c+_0x4ef1d1(0xbb,'$dii')),_0x538139[_0x4ef1d1(0x151,'gcQI')](_0x4ef1d1(0x158,'#sGx')+_0x533c2c+_0x4ef1d1(0x107,')POe'));}else console[_0x4ef1d1(0x15f,'tUFv')](_0x28d4f7+_0x4ef1d1(0x14e,'E[V7'));}else msg=common[_0x4ef1d1(0x12c,'EnHo')](_0x4c02a3[_0x4ef1d1(0x153,'V[7K')]),console[_0x4ef1d1(0x121,'GyB)')](_0x28d4f7+_0x4ef1d1(0xfa,'2wO$')+_0x4c02a3[_0x4ef1d1(0xe9,'Y#Hz')]+']:'+msg);}else msg=common['getErrorMsg'](_0x4c02a3),console['log'](_0x28d4f7+_0x4ef1d1(0xfa,'2wO$')+_0x4c02a3[_0x4ef1d1(0xd8,'GCi[')]+']:'+msg);break;}}catch(_0xf5e24c){console[_0x4ef1d1(0x142,'JMdA')](_0x4ef1d1(0xf0,'Wjhz')+_0x6901d2+_0x4ef1d1(0x14f,'4gDw')+(_0xf5e24c[_0x4ef1d1(0x11b,'5CEm')]||_0xf5e24c));}}async function _0x5253ae(_0x185af0){const _0x3d48bf=_0x1d9765;if($[_0x3d48bf(0x117,'uX%k')])return;let _0x2c3c55='',_0x2b4608=null,_0x50df49=null,_0x5b00fb=_0x3d48bf(0x134,')2eo');switch(_0x185af0){case'manualCollectIndex':_0x2c3c55=_0x3d48bf(0xb8,'gcQI'),_0x50df49={'functionId':_0x185af0,'body':JSON[_0x3d48bf(0x120,')2eo')]({'source':'ljdhome','rnClient':'1'}),'appid':'ld','t':Date[_0x3d48bf(0x11a,'xnmJ')](),'clientVersion':common[_0x3d48bf(0xce,'o8c1')](),'client':_0x3d48bf(0xe1,'xnmJ')};break;case'manualCollectBeans':_0x2c3c55=_0x3d48bf(0x106,'uX%k'),_0x50df49={'functionId':_0x185af0,'body':JSON[_0x3d48bf(0x12a,'Q1F#')]({'orderIdList':_0x1063ec[_0x3d48bf(0x118,'LvE&')](_0x39f59b=>encodeURIComponent(_0x39f59b))}),'appid':'ld','t':Date[_0x3d48bf(0x10f,'EnHo')](),'clientVersion':common[_0x3d48bf(0xdb,'RM*F')](),'client':_0x3d48bf(0x12b,'#sGx')};break;default:console[_0x3d48bf(0x121,'GyB)')](_0x3d48bf(0x10b,'Q1F#')+_0x185af0);return;}const _0x646fd5={};_0x2b4608&&Object['assign'](_0x2b4608,_0x646fd5);_0x50df49&&Object[_0x3d48bf(0x103,'tZgQ')](_0x50df49,_0x646fd5);const _0x30cde0={'url':_0x2c3c55,'method':_0x5b00fb,'headers':{'Host':_0x3d48bf(0xe8,'EnHo'),'Origin':_0x3d48bf(0x101,'RM*F'),'Content-Type':_0x3d48bf(0x147,'V[7K'),'Cookie':_0x22190d,'User-Agent':_0x448bbb},'params':_0x50df49,'data':_0x2b4608,'timeout':0x7530};_0x5b00fb===_0x3d48bf(0xed,'5TlR')&&(delete _0x30cde0[_0x3d48bf(0x157,'5CEm')],delete _0x30cde0[_0x3d48bf(0x11f,'hD4$')][_0x3d48bf(0x144,'nfos')]);const _0x4b52e1=0x1;let _0x511eef=0x0,_0x31b871=null;while(_0x511eef<_0x4b52e1){_0x511eef>0x0&&await $[_0x3d48bf(0x152,'vSkL')](0x3e8);const _0x2b59e5=await common[_0x3d48bf(0xd4,'iQv$')](_0x30cde0);if(!_0x2b59e5['success']){_0x31b871=_0x3d48bf(0x155,'!pI2')+_0x185af0+_0x3d48bf(0xe7,'tEAH')+_0x2b59e5[_0x3d48bf(0xe3,'@jf!')],_0x511eef++;continue;}if(!_0x2b59e5[_0x3d48bf(0xf1,'[HlV')]){_0x31b871=_0x3d48bf(0x14d,'p3@z')+_0x185af0+_0x3d48bf(0x14b,'V[7K'),_0x511eef++;continue;}await _0x475081(_0x185af0,_0x2b59e5[_0x3d48bf(0xcc,'RM*F')]);break;}_0x511eef>=_0x4b52e1&&console[_0x3d48bf(0x114,'nfos')](_0x31b871);}} 13 | // prettier-ignore 14 | 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)} 15 | -------------------------------------------------------------------------------- /jd_insight.js: -------------------------------------------------------------------------------- 1 | /* 2 | cron "35 11 * * *" jd_insight.js, tag:京洞察问卷通知 3 | 4 | by 青蛙 5 | */ 6 | 7 | const $ = new Env('京东调研问卷 京洞察') 8 | const notify = $.isNode() ? require('./sendNotify') : '' 9 | //Node.js用户请在jdCookie.js处填写京东ck; 10 | const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '' 11 | //IOS等用户直接用NobyDa的jd cookie 12 | const sentMessages = new Set() 13 | let cookiesArr = [], 14 | cookie = '', 15 | message = '', 16 | messageTitle = '', 17 | messageBottom = '' 18 | 19 | if ($.isNode()) { 20 | Object.keys(jdCookieNode).forEach((item) => { 21 | cookiesArr.push(jdCookieNode[item]) 22 | }) 23 | if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {} 24 | if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) 25 | } else { 26 | let cookiesData = $.getdata('CookiesJD') || '[]' 27 | cookiesData = jsonParse(cookiesData) 28 | cookiesArr = cookiesData.map((item) => item.cookie) 29 | cookiesArr.reverse() 30 | cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]) 31 | cookiesArr.reverse() 32 | cookiesArr = cookiesArr.filter((item) => item !== '' && item !== null && item !== undefined) 33 | } 34 | !(async () => { 35 | if (!cookiesArr[0]) { 36 | $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { 'open-url': 'https://bean.m.jd.com/bean/signIndex.action' }) 37 | return 38 | } 39 | for (let i = 0; i < cookiesArr.length && true; i++) { 40 | if (cookiesArr[i]) { 41 | $.index = i + 1 42 | $.cookie = cookiesArr[i] 43 | $.nickName = '' 44 | $.UserName = decodeURIComponent($.cookie.match(/pin=([^; ]+)(?=;?)/) && $.cookie.match(/pin=([^; ]+)(?=;?)/)[1]) 45 | $.isLogin = true 46 | console.log(`\n=====开始【京东账号${$.index}】${$.nickName || $.UserName}=====\n`) 47 | await getUA() 48 | await run() 49 | } 50 | } 51 | await showMsg() 52 | })() 53 | .catch((e) => $.logErr(e)) 54 | .finally(() => $.done()) 55 | 56 | function showMsg() { 57 | return new Promise(async (resolve) => { 58 | if (message) { 59 | $.msg($.name, '', `${message}`) 60 | if ($.isNode()) { 61 | await notify.sendNotify(`${$.name}`, `${message}`) 62 | } 63 | } 64 | resolve() 65 | }) 66 | } 67 | 68 | async function run() { 69 | try { 70 | $.siprun = false 71 | $.surveyList = [] 72 | await takePostRequest('有奖问答列表') 73 | if ($.siprun) return 74 | if ($.surveyList.length > 0) { 75 | let n = 1 76 | for (let s of $.surveyList) { 77 | console.log(`${n}、【${s.title}】 ${s.subTitle}\n${s.answerUrl}\n`) 78 | message += `【账号${$.index}】${$.UserName}\n${n}、【${s.title}】 ${s.subTitle}\n${s.answerUrl}\n` 79 | $.answerUrl = s.answerUrl 80 | $.survey_id = '' 81 | $.short_code = '' 82 | await takePostRequest('有奖问答页面') 83 | // console.log($.survey_id,$.short_code) 84 | if ($.survey_id && $.short_code) { 85 | await takePostRequest('有奖问答题目') 86 | console.log() 87 | } 88 | n++ 89 | } 90 | } else { 91 | console.log('无任何信息') 92 | } 93 | } catch (e) { 94 | console.log(e) 95 | } 96 | } 97 | 98 | async function takePostRequest(type) { 99 | if ($.outFlag) return 100 | let url = '' 101 | let body = `` 102 | let method = 'POST' 103 | let headers = '' 104 | switch (type) { 105 | case '有奖问答列表': 106 | url = `https://answer.jd.com/community/survey/list` 107 | method = 'GET' 108 | headers = { 109 | Accept: 'application/json, text/plain, */*', 110 | 'Accept-Encoding': 'gzip, deflate, br', 111 | 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', 112 | Cookie: $.cookie, 113 | Origin: `https://prodev.m.jd.com`, 114 | Referer: `https://prodev.m.jd.com/mall/active/2TADa7HkFatzGyeNG6KWZFyh96wM/index.html`, 115 | 'User-Agent': $.UA, 116 | } 117 | break 118 | case '有奖问答页面': 119 | url = $.answerUrl 120 | method = 'GET' 121 | headers = { 122 | Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 123 | 'Accept-Encoding': 'gzip, deflate, br', 124 | 'Accept-Language': 'zh-cn', 125 | Cookie: $.cookie, 126 | 'User-Agent': $.UA, 127 | } 128 | break 129 | case '有奖问答题目': 130 | url = `https://answer.jd.com/answer/getSurveyDetail?surveyId=${$.survey_id}&shortCode=${$.short_code}` 131 | method = 'GET' 132 | headers = { 133 | Accept: 'application/json, text/plain, */*', 134 | 'Accept-Encoding': 'gzip, deflate, br', 135 | 'Accept-Language': 'zh-cn', 136 | Cookie: $.cookie, 137 | Referer: $.answerUrl, 138 | 'User-Agent': $.UA, 139 | } 140 | break 141 | default: 142 | console.log(`错误${type}`) 143 | } 144 | if (!url) return 145 | let myRequest = getPostRequest(url, body, headers, method) 146 | return new Promise(async (resolve) => { 147 | $[method.toLocaleLowerCase()](myRequest, async (err, resp, data) => { 148 | try { 149 | if (err) { 150 | console.log(`${$.toStr(err, err)}`) 151 | console.log(`${type} API请求失败,请检查网路重试`) 152 | } else { 153 | await dealReturn(type, data) 154 | } 155 | } catch (e) { 156 | console.log(e, resp) 157 | } finally { 158 | resolve() 159 | } 160 | }) 161 | }) 162 | } 163 | 164 | async function dealReturn(type, data) { 165 | let res = '' 166 | try { 167 | if (type != 'accessLogWithAD' || type != 'drawContent') { 168 | if (data) { 169 | res = $.toObj(data, data) 170 | } 171 | } 172 | } catch (e) { 173 | console.log(`${type} 执行任务异常`) 174 | console.log(data) 175 | $.runFalag = false 176 | } 177 | try { 178 | switch (type) { 179 | case '有奖问答列表': 180 | if (typeof res == 'object') { 181 | if (res['messages'] && res['result'] == true && res['messages']['list']) { 182 | for (let i of res['messages']['list']) { 183 | if (i.type == 1) { 184 | $.surveyList = i.surveyList 185 | } 186 | } 187 | } else { 188 | if (['登录'].some((e) => res.messages.msg.includes(e))) { 189 | $.siprun = true 190 | console.log(`账号失效`) 191 | } else { 192 | console.log(`${type}-> ${data}`) 193 | } 194 | } 195 | } else { 196 | console.log(`${type}-> ${data}`) 197 | } 198 | break 199 | case '有奖问答页面': 200 | // console.log(data) 201 | try { 202 | $.survey_id = data.match(/id="?survey-id"? value="?([^>]+)"?/)[1] 203 | } catch (e) {} 204 | if (!$.survey_id) { 205 | try { 206 | $.survey_id = data.match(/surveyId: ?['"]([^'"]+)['"]/)[1] 207 | } catch (e) {} 208 | } 209 | try { 210 | $.short_code = data.match(/id="?short-code"? value="?([^>]+)"?/)[1] 211 | } catch (e) {} 212 | break 213 | case '有奖问答题目': 214 | // console.log(data) 215 | let index1 = [] 216 | try { 217 | index1 = res.messages.jsonStr.pages 218 | } catch (e) {} 219 | for (let i of index1) { 220 | for (let q of i.questions) { 221 | let arr = [] 222 | for (let o in q.options) { 223 | let arr1 = q.options[o] 224 | if (arr1.goto == '-2') arr.push(delhtml(arr1.text)) 225 | } 226 | // if (arr.length > 0) { 227 | // console.log(`题目:${delhtml(q.title)}\n不要选:${arr.join(',')}`) 228 | // message += `题目:${delhtml(q.title)}\n不要选:${arr.join(',')}` 229 | // } 230 | if (arr.length > 0) { 231 | // 构造消息 232 | const messageContent = `题目:${delhtml(q.title)}\n不要选:${arr.join(',')}` 233 | 234 | // 检查消息是否已经发送过 235 | if (!sentMessages.has(messageContent)) { 236 | console.log(messageContent) 237 | message += `${messageContent}\n` 238 | 239 | // 添加消息到已发送集合 240 | sentMessages.add(messageContent) 241 | } 242 | } 243 | } 244 | } 245 | break 246 | default: 247 | console.log(`${type}-> ${data}`) 248 | } 249 | if (typeof res == 'object') { 250 | if (res.errorMessage) { 251 | if (res.errorMessage.indexOf('火爆') > -1) { 252 | $.hotFlag = true 253 | } 254 | } 255 | } 256 | } catch (e) { 257 | console.log(e) 258 | } 259 | } 260 | 261 | function getPostRequest(url, body, headers = '', method = 'POST') { 262 | let headers_only = { 263 | Accept: '*/*', 264 | 'Accept-Encoding': 'gzip, deflate, br', 265 | 'Accept-Language': 'zh-Hans-CN;q=1', 266 | 'Content-Type': 'application/x-www-form-urlencoded', 267 | Cookie: $.cookie, 268 | 'User-Agent': $.UA, 269 | } 270 | if (!headers) { 271 | headers = headers_only 272 | } 273 | // console.log(headers) 274 | // console.log(headers.Cookie) 275 | const options = { url: url, method: method, headers: headers, body: body, timeout: 10000 } 276 | if (method == 'GET') { 277 | delete options.body 278 | } 279 | return options 280 | } 281 | 282 | async function getUA() { 283 | $.UA = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36` 284 | } 285 | 286 | function delhtml(text) { 287 | return (text && text.replace(/<\/?[\w \-"=:(),;+]+>/g, '').trim()) || text 288 | } 289 | 290 | function jsonParse(str) { 291 | if (typeof str == 'string') { 292 | try { 293 | return JSON.parse(str) 294 | } catch (e) { 295 | console.log(e) 296 | $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') 297 | return [] 298 | } 299 | } 300 | } 301 | 302 | // prettier-ignore 303 | 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}getSimpleActInfoVoGotEnv(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.getSimpleActInfoVoGotEnv(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.getSimpleActInfoVoGotEnv(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)} 304 | -------------------------------------------------------------------------------- /jd_plus2bean.js: -------------------------------------------------------------------------------- 1 | /* 2 | 9 8 * * * jd_plus2bean.js 3 | */ 4 | 5 | const $ = new Env('plus专属礼'); 6 | const notify = $.isNode() ? require('./sendNotify') : ''; 7 | const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; 8 | let jdNotify = true; 9 | //IOS等用户直接用NobyDa的jd cookie 10 | let cookiesArr = [], 11 | cookie = '', 12 | message = ''; 13 | if ($.isNode()) { 14 | Object.keys(jdCookieNode).forEach((item) => { 15 | cookiesArr.push(jdCookieNode[item]); 16 | }); 17 | if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; 18 | } else { 19 | cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || '[]').map((item) => item.cookie)].filter((item) => !!item); 20 | } 21 | !(async () => { 22 | if (!cookiesArr[0]) { 23 | $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { 'open-url': 'https://bean.m.jd.com/bean/signIndex.action' }); 24 | return; 25 | } 26 | for (let i = 0; i < cookiesArr.length; i++) { 27 | if (cookiesArr[i]) { 28 | cookie = cookiesArr[i]; 29 | $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); 30 | $.index = i + 1; 31 | $.isLogin = true; 32 | $.nickName = ''; 33 | //await TotalBean(); 34 | console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); 35 | if (!$.isLogin) { 36 | $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { 'open-url': 'https://bean.m.jd.com/bean/signIndex.action' }); 37 | if ($.isNode()) { 38 | await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); 39 | } 40 | continue; 41 | } 42 | await jingBeanReceive(); 43 | await $.wait(2000); 44 | } 45 | } 46 | })() 47 | .catch((e) => { 48 | $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, ''); 49 | }) 50 | .finally(() => { 51 | $.done(); 52 | }); 53 | 54 | function jingBeanReceive() { 55 | let opt = { 56 | url: `https://api.m.jd.com/client.action?functionId=jingBeanReceive&body={"encryptAssignmentId":"6bzcu8ZNPHFhuWZC55MhLgJCPiW","firstType":-100,"plugin_version":90556}&clientVersion=11.0.2&client=android&ef=1&ep=%7B%22ts%22%3A1658155958775%2C%22ridx%22%3A-1%2C%22cipher%22%3A%7B%22uuid%22%3A%22EJc4ENY0CJLrYzLwDQZsZq%3D%3D%22%2C%22aid%22%3A%22EJc4ENY0CJLrYzLwDQZsZq%3D%3D%22%7D%2C%22ciphertype%22%3A5%2C%22version%22%3A%221.2.0%22%7D&st=1658155977625&sign=354bbcb59bdc53276a62fb21c9d1f3df&sv=110`, 57 | headers: { 58 | Host: 'api.m.jd.com', 59 | 'accept-encoding': 'gzip,deflate', 60 | 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 61 | 'User-Agent': 'okhttp/3.12.1;jdmall;android;version/11.0.2;build/97565;', 62 | Cookie: cookie, 63 | }, 64 | }; 65 | return new Promise(async (resolve) => { 66 | $.post(opt, async (err, resp, data) => { 67 | try { 68 | if (err) { 69 | console.log(`${JSON.stringify(err)}`); 70 | console.log(`jingBeanReceive请求失败,请检查网路重试`); 71 | } else { 72 | data = JSON.parse(data); 73 | if (data.isSuccess) { 74 | console.log(data.data.windowsContent); 75 | } else { 76 | console.log('已领取过!'); 77 | } 78 | } 79 | } catch (e) { 80 | $.logErr(e, resp); 81 | } finally { 82 | resolve(data); 83 | } 84 | }); 85 | }); 86 | } 87 | 88 | function TotalBean() { 89 | return new Promise(async (resolve) => { 90 | const options = { 91 | url: 'https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2', 92 | headers: { 93 | Host: 'wq.jd.com', 94 | Accept: '*/*', 95 | Connection: 'keep-alive', 96 | Cookie: cookie, 97 | 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : require('./USER_AGENTS').USER_AGENT) : $.getdata('JDUA') ? $.getdata('JDUA') : 'jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', 98 | 'Accept-Language': 'zh-cn', 99 | Referer: 'https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&', 100 | 'Accept-Encoding': 'gzip, deflate, br', 101 | }, 102 | }; 103 | $.get(options, (err, resp, data) => { 104 | try { 105 | if (err) { 106 | $.logErr(err); 107 | } else { 108 | if (data) { 109 | data = JSON.parse(data); 110 | if (data['retcode'] === 1001) { 111 | $.isLogin = false; 112 | return; 113 | } 114 | if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty('userInfo')) { 115 | $.nickName = data.data.userInfo.baseInfo.nickname; 116 | } 117 | } else { 118 | console.log('京东服务器返回空数据'); 119 | } 120 | } 121 | } catch (e) { 122 | $.logErr(e); 123 | } finally { 124 | resolve(); 125 | } 126 | }); 127 | }); 128 | } 129 | function showMsg() { 130 | return new Promise((resolve) => { 131 | if (!jdNotify) { 132 | $.msg($.name, '', `${message}`); 133 | } else { 134 | $.log(`京东账号${$.index}${$.nickName}\n${message}`); 135 | } 136 | resolve(); 137 | }); 138 | } 139 | function safeGet(data) { 140 | try { 141 | if (typeof JSON.parse(data) == 'object') { 142 | return true; 143 | } 144 | } catch (e) { 145 | console.log(e); 146 | console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); 147 | return false; 148 | } 149 | } 150 | function jsonParse(str) { 151 | if (typeof str == 'string') { 152 | try { 153 | return JSON.parse(str); 154 | } catch (e) { 155 | console.log(e); 156 | $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie'); 157 | return []; 158 | } 159 | } 160 | } 161 | // prettier-ignore 162 | 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) } 163 | -------------------------------------------------------------------------------- /jd_querryBeans.js: -------------------------------------------------------------------------------- 1 | /* 2 | 当日收支查询 3 | 环境变量:jd_querryBeans_notify // 是否推送通知(true/false),默认不推送 4 | 5 | cron:1 1 1 1 * 6 | 7 | */ 8 | 9 | const $ = new Env('当日收支查询') 10 | const _0x3cf638=_0x49c1;(function(_0x5826c4,_0x100305){const _0x393c89=_0x49c1,_0x3b945a=_0x5826c4();while(!![]){try{const _0x4480b0=-parseInt(_0x393c89(0x217,'qrO5'))/0x1*(-parseInt(_0x393c89(0x1f8,'NPGM'))/0x2)+parseInt(_0x393c89(0x196,'@pKP'))/0x3+-parseInt(_0x393c89(0x1ab,'loc5'))/0x4+-parseInt(_0x393c89(0x1ba,'tj@w'))/0x5+parseInt(_0x393c89(0x1c0,'jXT('))/0x6*(parseInt(_0x393c89(0x1dc,'Do!2'))/0x7)+-parseInt(_0x393c89(0x1e2,'7z)#'))/0x8*(-parseInt(_0x393c89(0x1ea,'l2DZ'))/0x9)+-parseInt(_0x393c89(0x19f,'z(GV'))/0xa;if(_0x4480b0===_0x100305)break;else _0x3b945a['push'](_0x3b945a['shift']());}catch(_0x44c492){_0x3b945a['push'](_0x3b945a['shift']());}}}(_0x5e04,0x4115d));const jdCookie=require(_0x3cf638(0x19c,'tj@w')),notify=require(_0x3cf638(0x1f0,'#[T5')),common=require(_0x3cf638(0x1ad,'da1W')),isNotify=process[_0x3cf638(0x1e4,'YNXN')]['jd_querryBeans_notify']===_0x3cf638(0x1b9,'IEw$'),todayString=$['time'](_0x3cf638(0x1f3,'!(oy'),Date['now']());let cookie='';const cookiesArr=Object[_0x3cf638(0x218,'z(GV')](jdCookie)['map'](_0x313ad7=>jdCookie[_0x313ad7])[_0x3cf638(0x1b7,'[5*C')](_0x13c269=>_0x13c269);!cookiesArr[0x0]&&($[_0x3cf638(0x21e,'0$0@')]($[_0x3cf638(0x1f6,'t@$d')],'【提示】请先获取Cookie'),process[_0x3cf638(0x1af,'BQ!Z')](0x1));function _0x5e04(){const _0x448b75=['W4HtWRiU','WPNcH8ozW7BcHuVdTtCCWRTr','uuHpv8kjWOj6','WRBdHGhcKW','WRxORPpMS5JLKipLU5dcVq','wHawWRNdIGO','sXGtWRK','WOtcHepcSa','WP8fW6nZrfP3EmkiltvU','WPhdHCkh','WOvdWQhdKCkcW4VcUG','pmoPtmkRcL8','n8oPtmkzpW','W5RdMSkDWQNdLMhdQq','W4DNWPxcNHtdMeZcQIH7','ogtdNSoluSkpW51JdW','nmoTvSkP','W77KUi3OSyJdNFgcOOldM+s4TEAuUEAcToAwR+weU+++KG','W6pdU8oTWQRcNwRdPG','WQPMiKpcRSkYyfvp','W7efW67cRW','ySoSWRBdJmkLFSoW','WPxcGfpcU3miW6KyWOjnW7X6','WPJcK1FcSwi3W7S','q1bdqCkcWOu','qmkGBcyLh8klmConvmkmFNbq','AqOFWR/dOrNcJvK','WQBdMay','rcFcUqGTaJ3cSmkUhG','iN7dImohra','WOHIhmkW','w8kdCHW','ch/dGSowwCkgW4aOiSkhnmkW','nCojW5ZdICkIlCk5eYuIWOzSWODK','jCoTWPddQmk/W5P9iq','5P+05P256k+05yU95lQD5Pwf5lIZ6lgG5y++5yI45PMv57It5PsB5O+z77605B+L5yYK5y2z5lUl5REh5yU36i6u5y+r5zgica','WP1HlaHnz2m','oWVcHSkLqvhdPW','8lE6N8kO','WP41W7xdRq','5lU16lk/WRVWS5on','qsFcRcSmfdRcSmkGfW','W4ZcVvBcI2RcVeBdRCkhW5C','4P+xW4hMNjROGARMRO7NOiVLPi3NKzFcNG','idi3WO0SW6ZdHCk2','gs41','W6VOR6NMSRtLPi7OTzVdIEkFRCkm','oSoQuSoHA0tcON8','DSoGxwWllIRcJte','5lMo6lc5rVcxSy0','WPNcNmk4','WRH7WOj8eCkggSofW5C','lt5y','4P+VW5/MNQ7NNBBORlJMSRZdKW','W6iecmkdnW','W4hdJeGGW7JdQmkI','W6pdRCotWOJcUJ/dLvVcJCo8WPm','W7hcIf7dSmkPah0WW5DwC8oFWQFdRG','Fv7dHmo5fWdcSSopCe/dLCkdWRy','W6FdSmo6WRZcHa','W6/cQsxdTg7cLmkNvfpdTqhcVsa','l3hdMmod','WQ9kcCkunKegWRZcNaJdMSkSFmk3udH/WQ/dJmk4dricW6GwBxa','WOvQlb5yq2NdTCk6FNm','E8o8x2FdJXNcISoVisZcICkS','xSk8yrnNnCkVCSo6ra','WOrHla8','6lsb5yYY5PE45PsI','n8kyW7BdLq','jmkPW7S','W5RdTmk3WRqLxSk6WQWUW7ZdVW','WQVdHXhcJumYeZnwW5tcH8othSoXsCkRWOjzoq/cPCkJe8ohpedcUSk3WRiHtGSZ','mmkxW7/dLCkd','WPhdOqi','nmkGcK8dirVcSbaQea','WPBcMutcKgyMW6a','WPu7W5FdMcq','ENZdVX7cGSo5d8oyWQaH','WPe/W7/dR8k+WRW','W4lcKSoRW6BcOCkk','5lI36lkNBCk/','uLXluCkIWOrK','WPBdImk2WQRdT8kXWOpdJrhdVYK','WRv6WPS','W4FcNSoWW7y','5P6U6k+Y5B6U5BQA','WOPdWRpdJmkNW4NcQ8kBW5mM','WPDHkZfPqW','DSkyfqNdM8kX','W43dICkiWQVdG0/dRtaBWObfwG','WOXlWRlcN8kqW6y','imojW5NdV8kOmCkM','nmkgj8kjo8k8d8oZWPGBh8kr','kN3dG8oxuSkC','W64qcmkMm0Ws','p8ojW5VdUCkSjCk3','W7VdOGRcTv42aa','sHGwWRJdIGS','W70Yzhm','WPBdQWddJdxcJ0NdTmkzW5O','rcFcUq8noq','yCozsCkycLdcPa','hIqRWOW','W7RdNbZdVY1VWQlLVAVLPlRJGlZKUlFKUipOT7NLJim','aSkdW5q','oH7cMSkGva','5lUK6lkaWRZXHRk5','WQVdHXhcJumYeZnwW5tcH8otdmkVuCkYW5LukWxcR8k6eCociK3cTSk3W71Uaef9','WO8maq','W4ZcN8otwHuSWRRcLmk2W65rcSoS','W5fjvrPil8kVqH7cTeLW','W63dSCoWWR/cLwO','mSoQsq','6k2P5y2l5l6j55sx5lUs6lkV','ymkata','WOutWRWVmavaACk3aG','nCkwW7W','WOC3W47dMa','qxfGW49vWR/cMmkwWPJdUxpdTSoN','xCkTnsiRfSkrCSoDBSowEZGsl8ktd3nuc35qddCSW7LUCSkdzsKulmo3WQngqtiWW4JdVMizoM4','W6NcLf7dKSkdaq','FmoLvwxdNJxcHq','WQVdHgmuW4BcK8k/W6JcK8kwvgy1W7hcG8oVW7u','jaVcHCk6qvxdPW','DSkdbGK','WQddKw0','WRLRWPH6emkn','W4/ORltMS4FLPRZOTlGX4P2wW7xMLRRLKzFLUkFMLPBMJPS','lFgoG7Tk6l6A6kc057IX5P+dWPq','iNxdOmolt8kC','WQJdLWpcR8oEu1SeW513sSo8','ACkdeW','WQdcSCoRWQ3cLwhdSmkUW69mWOemW70hF8kIW4z7qcNdVX04','pG/cN8k9','W4DmW6hcPq','aYVcTq','WO5kWRBcMCkxW6ZcJgylbhq'];_0x5e04=function(){return _0x448b75;};return _0x5e04();}function _0x49c1(_0x15f3df,_0x3cdf8d){const _0x5e04c8=_0x5e04();return _0x49c1=function(_0x49c1a6,_0x19930c){_0x49c1a6=_0x49c1a6-0x196;let _0x429152=_0x5e04c8[_0x49c1a6];if(_0x49c1['NCnjUH']===undefined){var _0x446b77=function(_0x13c269){const _0xb0cc4a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x502147='',_0x481b69='';for(let _0x4c333b=0x0,_0x9bafe7,_0x40fe95,_0x1fe8b8=0x0;_0x40fe95=_0x13c269['charAt'](_0x1fe8b8++);~_0x40fe95&&(_0x9bafe7=_0x4c333b%0x4?_0x9bafe7*0x40+_0x40fe95:_0x40fe95,_0x4c333b++%0x4)?_0x502147+=String['fromCharCode'](0xff&_0x9bafe7>>(-0x2*_0x4c333b&0x6)):0x0){_0x40fe95=_0xb0cc4a['indexOf'](_0x40fe95);}for(let _0x419a85=0x0,_0x484f67=_0x502147['length'];_0x419a85<_0x484f67;_0x419a85++){_0x481b69+='%'+('00'+_0x502147['charCodeAt'](_0x419a85)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x481b69);};const _0x313ad7=function(_0x205724,_0x27970c){let _0x181e92=[],_0x2e178f=0x0,_0x30c8f1,_0x343b08='';_0x205724=_0x446b77(_0x205724);let _0x104ce0;for(_0x104ce0=0x0;_0x104ce0<0x100;_0x104ce0++){_0x181e92[_0x104ce0]=_0x104ce0;}for(_0x104ce0=0x0;_0x104ce0<0x100;_0x104ce0++){_0x2e178f=(_0x2e178f+_0x181e92[_0x104ce0]+_0x27970c['charCodeAt'](_0x104ce0%_0x27970c['length']))%0x100,_0x30c8f1=_0x181e92[_0x104ce0],_0x181e92[_0x104ce0]=_0x181e92[_0x2e178f],_0x181e92[_0x2e178f]=_0x30c8f1;}_0x104ce0=0x0,_0x2e178f=0x0;for(let _0x5c4ae7=0x0;_0x5c4ae7<_0x205724['length'];_0x5c4ae7++){_0x104ce0=(_0x104ce0+0x1)%0x100,_0x2e178f=(_0x2e178f+_0x181e92[_0x104ce0])%0x100,_0x30c8f1=_0x181e92[_0x104ce0],_0x181e92[_0x104ce0]=_0x181e92[_0x2e178f],_0x181e92[_0x2e178f]=_0x30c8f1,_0x343b08+=String['fromCharCode'](_0x205724['charCodeAt'](_0x5c4ae7)^_0x181e92[(_0x181e92[_0x104ce0]+_0x181e92[_0x2e178f])%0x100]);}return _0x343b08;};_0x49c1['fZQFNw']=_0x313ad7,_0x15f3df=arguments,_0x49c1['NCnjUH']=!![];}const _0x267432=_0x5e04c8[0x0],_0x4b1591=_0x49c1a6+_0x267432,_0x36a7af=_0x15f3df[_0x4b1591];return!_0x36a7af?(_0x49c1['ZWWHXq']===undefined&&(_0x49c1['ZWWHXq']=!![]),_0x429152=_0x49c1['fZQFNw'](_0x429152,_0x19930c),_0x15f3df[_0x4b1591]=_0x429152):_0x429152=_0x36a7af,_0x429152;},_0x49c1(_0x15f3df,_0x3cdf8d);}!(async()=>{const _0xa32ee1=_0x3cf638;$[_0xa32ee1(0x1aa,'P^lh')]=[],notify[_0xa32ee1(0x198,'da1W')]({'title':$[_0xa32ee1(0x1d0,'l(4)')]});for(let _0x502147=0x0;_0x502147$['logErr'](_0x481b69))['finally'](()=>$['done']());async function Main(){const _0x5a3282=_0x3cf638;try{$[_0x5a3282(0x1b1,'PMJE')]=![];const _0x4c333b=await common[_0x5a3282(0x1cb,'!(oy')](cookie);if(!_0x4c333b&&typeof _0x4c333b===_0x5a3282(0x1a2,'ms7]')){console[_0x5a3282(0x1f7,'Z7xi')](_0x5a3282(0x1f5,'!(oy'));return;}let _0x9bafe7=new Map();_0x450df7:for(let _0x1fe8b8=0x1;_0x1fe8b8<=0x14;_0x1fe8b8++){$['pageNum']=''+_0x1fe8b8,$['detailList']=[],await sendRequest('beanDetail');const _0x419a85=$[_0x5a3282(0x1ff,'2t$*')];if(_0x419a85[_0x5a3282(0x1bd,'qrO5')]===0x0)break;for(let _0x484f67 of _0x419a85){let _0x205724=_0x484f67[_0x5a3282(0x1d1,'Y56T')]['split']('\x20')[0x0];if(_0x205724===todayString)_0x484f67[_0x5a3282(0x20f,'P^lh')]=parseInt(_0x484f67[_0x5a3282(0x201,'ZC$W')]),_0x9bafe7[_0x484f67[_0x5a3282(0x1f2,'ms7]')]]?(_0x9bafe7[_0x484f67[_0x5a3282(0x20b,'CC[H')]][_0x5a3282(0x1ca,'3[3O')]+=_0x484f67['amount'],new Date(_0x9bafe7[_0x484f67['eventMassage']][_0x5a3282(0x1c2,'qrO5')])0x0){let _0x27970c=[],_0x181e92=0x0,_0x2e178f=0x0;for(const _0x343b08 of _0x40fe95){let {date:_0x104ce0,amount:_0x5c4ae7,eventMassage:_0x12c165}=_0x343b08;_0x5c4ae7>0x0?_0x181e92+=_0x5c4ae7:_0x2e178f+=_0x5c4ae7,_0x12c165=_0x12c165[_0x5a3282(0x1e9,'nuA[')](/(商品:.*)/g,'')['replace'](/订单.*使用京豆.*个/g,_0x5a3282(0x19a,'$7nM')),/参加\[.*\].*-奖励/[_0x5a3282(0x1f4,'y@SL')](_0x12c165)&&(_0x12c165=_0x12c165[_0x5a3282(0x1d7,'5cs%')](/参加\[/g,'')['replace'](/\].*/g,'')),_0x104ce0=_0x104ce0[_0x5a3282(0x21b,'5cs%')]('\x20')[0x1],_0x27970c[_0x5a3282(0x1b5,'5ota')]({'时间':_0x104ce0,'渠道':_0x12c165,'明细':_0x5c4ae7});}_0x27970c[_0x5a3282(0x1a5,'ujfY')]((_0x536307,_0x232f57)=>_0x232f57['明细']-_0x536307['明细']),_0x27970c[_0x5a3282(0x1fd,'IEw$')](_0x41f3ed=>{const _0x4981d6=_0x5a3282;console[_0x4981d6(0x1cd,'%vem')](_0x41f3ed['渠道']+'['+_0x41f3ed['明细']+_0x4981d6(0x202,'loc5')+_0x41f3ed['时间']+')');});const _0x30c8f1=_0x181e92+_0x2e178f;console[_0x5a3282(0x1ac,'ujfY')]('\x0a今日总收入:'+_0x181e92+_0x5a3282(0x1c3,'(ypt')+_0x2e178f+_0x5a3282(0x1e3,'0$0@')),$[_0x5a3282(0x1c4,'da1W')]['insert']('今日总收入\x20'+_0x181e92+_0x5a3282(0x21c,'Z7xi')),$[_0x5a3282(0x1d6,'y@SL')]['insert']('今日总支出\x20'+_0x2e178f+_0x5a3282(0x1da,'t@$d'));}else!$[_0x5a3282(0x1fc,'7z)#')]&&console['log'](_0x5a3282(0x1d5,'huYo'));}catch(_0x207b3f){console[_0x5a3282(0x19d,'t@$d')]('❌\x20脚本运行遇到了错误\x0a'+_0x207b3f);}}async function handleResponse(_0x1cece6,_0x560fa0){const _0x422064=_0x3cf638;try{switch(_0x1cece6){case _0x422064(0x1db,'mK$&'):if(_0x560fa0[_0x422064(0x1b2,'tj@w')]==='0')$['detailList']=_0x560fa0[_0x422064(0x1eb,'loc5')];else _0x560fa0[_0x422064(0x1d9,'HHHZ')]==='1'?console[_0x422064(0x1bb,'@pKP')](_0x422064(0x207,'P^lh')):console[_0x422064(0x1df,'z(GV')]('❓'+_0x1cece6+'\x20'+JSON[_0x422064(0x1c1,'P^lh')](_0x560fa0));break;}}catch(_0x1d09c5){console[_0x422064(0x1e6,'$y[t')](_0x422064(0x1dd,'loc5')+_0x1cece6+_0x422064(0x1b6,'0rU^')+(_0x1d09c5[_0x422064(0x211,'Q3GH')]||_0x1d09c5));}}async function sendRequest(_0x559504){const _0x44687e=_0x3cf638;if($[_0x44687e(0x1a1,'loc5')]||$['outFlag'])return;let _0x1772b3='',_0x5cf1be=null,_0x31937e=null,_0x253e3c=_0x44687e(0x19b,'!(oy');switch(_0x559504){case _0x44687e(0x208,'yq)X'):_0x1772b3='https://bean.m.jd.com/beanDetail/detail.json',_0x31937e={'page':$[_0x44687e(0x203,'3[3O')]};break;default:console[_0x44687e(0x1fb,'Do!2')](_0x44687e(0x1e7,'ZC$W')+_0x559504);return;}const _0x58b5bd={'url':_0x1772b3,'method':_0x253e3c,'headers':{'Accept':_0x44687e(0x1f9,'%vem'),'Accept-Encoding':_0x44687e(0x1a3,'7YiJ'),'Accept-Language':_0x44687e(0x1a0,'!(oy'),'Connection':_0x44687e(0x215,'Do!2'),'Content-Type':_0x44687e(0x21d,'%vem'),'J-E-H':$[_0x44687e(0x21a,'Z7xi')],'J-E-C':$['JEC'],'Cookie':cookie,'Sec-Fetch-Dest':_0x44687e(0x1fe,'jXT('),'Sec-Fetch-Mode':'cors','Sec-Fetch-Site':'same-origin','User-Agent':$['UA']},'params':_0x31937e,'data':_0x5cf1be,'timeout':0x7530};_0x253e3c==='GET'&&(delete _0x58b5bd[_0x44687e(0x1c6,'0rU^')],delete _0x58b5bd[_0x44687e(0x1c9,'IEw$')][_0x44687e(0x1d2,'P^lh')]);const _0x233f9f=0x1;let _0x55946=0x0,_0x4b8f2f=null,_0x1ab035=![];while(_0x55946<_0x233f9f){_0x55946>0x0&&await $[_0x44687e(0x1b8,'[5*C')](0x3e8);const _0x5c9e65=await common[_0x44687e(0x20d,'Q3GH')](_0x58b5bd);if(!_0x5c9e65[_0x44687e(0x1b4,'3[3O')]){_0x4b8f2f='🚫\x20'+_0x559504+_0x44687e(0x1e0,'$7nM')+_0x5c9e65['error'],_0x55946++;_0x5c9e65[_0x44687e(0x20c,'PMJE')]&&_0x5c9e65[_0x44687e(0x20a,'ujfY')]===0x193&&($['querryError']=!![]);continue;}if(!_0x5c9e65[_0x44687e(0x214,'3wPu')]){_0x4b8f2f=_0x44687e(0x1d8,'BQ!Z')+_0x559504+_0x44687e(0x1a8,'NPGM'),_0x55946++;continue;}await handleResponse(_0x559504,_0x5c9e65[_0x44687e(0x1ef,'P^lh')]),_0x1ab035=![];break;}_0x55946>=_0x233f9f&&(console[_0x44687e(0x1a6,'7YiJ')](_0x4b8f2f),_0x1ab035&&($[_0x44687e(0x210,'#[T5')]=!![],$[_0x44687e(0x1a4,'5cs%')]&&$[_0x44687e(0x1bc,'yq)X')][_0x44687e(0x199,'Au[6')](_0x4b8f2f)));} 11 | 12 | // prettier-ignore 13 | 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) } 14 | -------------------------------------------------------------------------------- /jd_qyhb.js: -------------------------------------------------------------------------------- 1 | /* 2 | 活动名称:权益红包(个别号有) 3 | 环境变量: 4 | jd_qyhb_interval // 自定义运行间隔时长(整数,单位毫秒),默认2000 5 | jd_qyhb_notify // 是否推送通知(true/false),默认不推送 6 | jd_qyhb_pinFilter // 账号pin过滤,多个用@进行分割 7 | 8 | cron:28 12 * * * 9 | 10 | */ 11 | 12 | const $ = new Env('权益红包') 13 | const _0x3cf9f8=_0x2a8e;(function(_0x4d3205,_0x540790){const _0x38a5df=_0x2a8e,_0x2a51a9=_0x4d3205();while(!![]){try{const _0x15198d=parseInt(_0x38a5df(0xb3,'rEz6'))/0x1*(parseInt(_0x38a5df(0x9f,'rEz6'))/0x2)+parseInt(_0x38a5df(0x98,'L](g'))/0x3*(parseInt(_0x38a5df(0x85,']0UV'))/0x4)+parseInt(_0x38a5df(0x9e,'a3jb'))/0x5*(-parseInt(_0x38a5df(0xb7,'&N%)'))/0x6)+-parseInt(_0x38a5df(0x10a,'L](g'))/0x7*(-parseInt(_0x38a5df(0xa5,'cnyf'))/0x8)+parseInt(_0x38a5df(0xf4,'xHEv'))/0x9*(parseInt(_0x38a5df(0x89,'v7$c'))/0xa)+parseInt(_0x38a5df(0x88,'MxXB'))/0xb*(-parseInt(_0x38a5df(0xc0,'AQQq'))/0xc)+parseInt(_0x38a5df(0xc6,'B8th'))/0xd;if(_0x15198d===_0x540790)break;else _0x2a51a9['push'](_0x2a51a9['shift']());}catch(_0x3538c8){_0x2a51a9['push'](_0x2a51a9['shift']());}}}(_0x166f,0x37929));const jdCookie=require('./jdCookie'),notify=require(_0x3cf9f8(0xa2,'vYvx')),common=require(_0x3cf9f8(0x10b,'Jw1s'));function _0x2a8e(_0x119f8f,_0x2cfb43){const _0x166fe5=_0x166f();return _0x2a8e=function(_0x2a8edf,_0x223262){_0x2a8edf=_0x2a8edf-0x7f;let _0x3edd3c=_0x166fe5[_0x2a8edf];if(_0x2a8e['TmOpGu']===undefined){var _0x3380c6=function(_0x548c98){const _0x542bb7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d555f='',_0x359ec2='';for(let _0x3c1bae=0x0,_0x263e74,_0x59ae8a,_0x5dbdaf=0x0;_0x59ae8a=_0x548c98['charAt'](_0x5dbdaf++);~_0x59ae8a&&(_0x263e74=_0x3c1bae%0x4?_0x263e74*0x40+_0x59ae8a:_0x59ae8a,_0x3c1bae++%0x4)?_0x2d555f+=String['fromCharCode'](0xff&_0x263e74>>(-0x2*_0x3c1bae&0x6)):0x0){_0x59ae8a=_0x542bb7['indexOf'](_0x59ae8a);}for(let _0x35ebca=0x0,_0x3e2121=_0x2d555f['length'];_0x35ebca<_0x3e2121;_0x35ebca++){_0x359ec2+='%'+('00'+_0x2d555f['charCodeAt'](_0x35ebca)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x359ec2);};const _0x4553a9=function(_0x2c3d53,_0x1ae6e1){let _0x415866=[],_0xaf218f=0x0,_0x36dd4a,_0x5cff0b='';_0x2c3d53=_0x3380c6(_0x2c3d53);let _0x56935c;for(_0x56935c=0x0;_0x56935c<0x100;_0x56935c++){_0x415866[_0x56935c]=_0x56935c;}for(_0x56935c=0x0;_0x56935c<0x100;_0x56935c++){_0xaf218f=(_0xaf218f+_0x415866[_0x56935c]+_0x1ae6e1['charCodeAt'](_0x56935c%_0x1ae6e1['length']))%0x100,_0x36dd4a=_0x415866[_0x56935c],_0x415866[_0x56935c]=_0x415866[_0xaf218f],_0x415866[_0xaf218f]=_0x36dd4a;}_0x56935c=0x0,_0xaf218f=0x0;for(let _0x5e54b4=0x0;_0x5e54b4<_0x2c3d53['length'];_0x5e54b4++){_0x56935c=(_0x56935c+0x1)%0x100,_0xaf218f=(_0xaf218f+_0x415866[_0x56935c])%0x100,_0x36dd4a=_0x415866[_0x56935c],_0x415866[_0x56935c]=_0x415866[_0xaf218f],_0x415866[_0xaf218f]=_0x36dd4a,_0x5cff0b+=String['fromCharCode'](_0x2c3d53['charCodeAt'](_0x5e54b4)^_0x415866[(_0x415866[_0x56935c]+_0x415866[_0xaf218f])%0x100]);}return _0x5cff0b;};_0x2a8e['cTAuoW']=_0x4553a9,_0x119f8f=arguments,_0x2a8e['TmOpGu']=!![];}const _0x4546dd=_0x166fe5[0x0],_0x58b418=_0x2a8edf+_0x4546dd,_0x23e254=_0x119f8f[_0x58b418];return!_0x23e254?(_0x2a8e['VyPDvD']===undefined&&(_0x2a8e['VyPDvD']=!![]),_0x3edd3c=_0x2a8e['cTAuoW'](_0x3edd3c,_0x223262),_0x119f8f[_0x58b418]=_0x3edd3c):_0x3edd3c=_0x23e254,_0x3edd3c;},_0x2a8e(_0x119f8f,_0x2cfb43);}let taskThreads=process[_0x3cf9f8(0xf5,'kcax')][_0x3cf9f8(0x97,'v7$c')]||'1';const runInterval=process[_0x3cf9f8(0x102,'dxR^')]['jd_qyhb_interval']||_0x3cf9f8(0xf6,'bCoZ'),isNotify=(process[_0x3cf9f8(0xc5,'cnyf')][_0x3cf9f8(0xf9,'x(TX')]||process[_0x3cf9f8(0xc4,'68Z#')][_0x3cf9f8(0xaf,'dxR^')])==='true',pinFilter=(process[_0x3cf9f8(0x80,'C)oW')][_0x3cf9f8(0xcb,'c2Ol')]||'')[_0x3cf9f8(0xd4,'xm*G')]('@'),maxThreads=0x1;let cookiesArr=Object[_0x3cf9f8(0x86,'x(TX')](jdCookie)[_0x3cf9f8(0x114,'dxR^')](_0x4553a9=>jdCookie[_0x4553a9])['filter'](_0x548c98=>_0x548c98);function _0x166f(){const _0x379961=['WRjgbW','WPfiWRC','eokESry','56EgWQ7OVzROOiNPL4hPMzBMLyVPLju','s0fjW43cLbqFWQi','BsVdMq','AG3dMWqmy37cN1a','WQ5wWO3cVa','jaVcLCoXWRtcVcFdMConDIVcLa','u8opqmkH','WOjRzG','sYpdNt4yW4DUWO0','W5pcRmkUWRyEWR4','W6NdRgC','soE4GUwoKLa','WQjwWQddVe7dOq','WRRcMZO','4PMiW4lOH4pLRyFKUjFOVOJOO4BPLkpPMOBMLOlPLPNORAZNVjBPLlVORQu','nmk0iSkI','kWOGWQxcV8oLsvFdMCkdW57cRCoPyuhdM2vkoabq','WQJcIg/cGmkTcHmc','W5pcPSkNWPqyWQq','W57cLHddH1PMleq','bbJcJq','W6JdQ8kxaSoHWOK','W5VcJsOufslcRCofWOFdPSoqWOBdTCofW6XM','r3edWRnnCq','FmoSWRRdICoAWOu','o8k0iq','W4ZcMJWRbG','WRdcPCkrkSkPW5lcPSkuWQ/dSCkW','W4ZcHJG','W48xW6bN','fqPc','WQDoWPRcQq','W6NcJupdGCoki2xdQCo9rYyjFcW','v0HcWRrHW5TJWPHDW4e3W4BcICoD','WPK+f8kLW7BcGvldLSkqgHZcHmkr','w0vuW7xcRXOBWQLMiMddSSkZWQ4','W5NcGGRdMW','8lwjNfK','m3KOideC','6zwE6zMB5Pw96zshWOJcPSoA','WRhdKs7dMmo5lM7dG8o4','WRvnWRG','r0XFWPa','6Acf5yY/5AsT6lAvW6G','E8kytG','W5VcJt8XetlcSG','WQPCWP3cLuuXWR55uCkBFSoDW4RdQce9W7xdTGa','WOKvW6G6','BshdKmoPWQFcGW','W6xdIMpdVCkWisFdUa9F','DrpcMGm/we/dPNlcS8obW4b4BGbTW5vbW4ZcGaFcG8kl','aSk9FSomeNhcHKVcK3bfn8k0oCkxeK5sW75amG','W4WEW6LLpcRcGe8yWQe','EmoxWR9fqqO','pSk1jCkRW4b3W7FdSG','WP5iWR4XgJG','8yglI8k7','WQu8tXtcUxNdNq','W6/cHNS','WR1cWR4','ACkYWPqNsCki','W7tcIhxdHmoNiMRdKW','WPbTjq','ySoSWQFdM8ocWPK','44oJ5OYQ56Am44gu6k2j5yEF6iYP5y2tWQZdOu88W4hcSa','c8k9B8oTmMBcHfBcQgzH','WOBcH0ZcUqW9W6FcUgqrWQxcVrDji2xcMuBdOv8F','WRxcVSokv8kTWOtdQ8ofD8odW7O','W6JcJgxdGW','DcnzlCoYeW','yxGVn3eDf3uRcSoyh8kW','W64QWRPvWOqrW5K3WO0','gVc9GlFcJUI9VUIIOEE5UEACLSoN','tIldMq','6AkK5y6B5AAp6lw3nG','jmk3l8kKW5a','WQnwWQ3dMKxdTL8','WRHxWRRdIvpcVWpdQ2n8W5v4CaTWxt5ZnG','4P2FkEIgUUAEQoI+J+IJK+MbPEwlOUs5SUMxL+IUImop','W43cVmkUWPqeWRi','WPNdNmo1','y8ksW6mXyCkRW5ap','D2JdLmoL','W6FdPSkyc8o7WOtdJG','zCkGWP8','WRn+W5v0WOK3W7G9WOfDbSkRggNcICot','W6xdIMBcOSkJnqtdGca','WO/cH0FcIb8','44cY6lwR5y2j','6lw05y645PE25Pwg','W53cMdxdNg1UlurJqNxcUWhcNG','WRVcLZRcRCkDoa','iSkqEmo3i8kGFa','iCk4W6ddNCo0WRRdQmoCWP0','pEIUUUAXQowLUEI2PuFINRBcJUAwTowsJUw7QEAuUUAnPa','wmowrmkW','W5VcNmoNamojuJlcLbxcTcNcGSkCWRNcMdtcRhZcK38yWOZdR8k7WRhcTre','D8ksW74Mxq','wSkjWOxcU8oIWPVdKCkRWO4+rCkYWODeW7TFWONdGCkraCkBWQNcG0tcVrG','iJdcMCk2emoQsSkaWPxcMW','WPHIwKpdHCo0da','6AoD5y+QWRq','4PYKv+AFGoECM+ISOoAXJSk9','5y6/6yAR5B+75zkQ54MN5OotBSojWQqYzSomr07cObu','W6f5hcFcQetdRutcTW','WR/cIe3cJmkAcGWmcSkXcSoJxmkb','WPJdLSoHb8obwsq','WO7cI1e','fXhcImoT','WRPhWPhdIfNdRu7cM0uMWO98obG','W57cUCkWWR0dWRuVWOjEcSkGqColAmkVW6TzWRJdVfZdKMdcM1yGECo5BmoHW68pWRCN','r+IUK+AYUEwrIow5HCoY','xd3dNmkVWPf1W4CqE8kacmkJW6zBBCkZrHLysCk8hwRcTCoGW6xdGmo8','jCk7W6FcN8ogWR3dJ8obWP8L','W7BcKxRcP3CRWQORW6pcKa','F2BdHW','W5xOR7tMSjhLPi/OT7JcS+kFQt8','jSofWRX9aCoXWOKysNXUjCoX','hSk9AmoDlga','W7FdOSkqbSoW','zmotWQfv','nv3cGHi','WOFdLSoIeCobsG','bHlcJ8kAWOvPW7ajomkelCkvWRbyCSk/FtXYvSoW','nhBcJCk/WRVcU2ldGGHV','WRNcGNhcJ8kycau','wuxcN8kjWP91W4ud','4P65WPpMNRJOGONMR4pNOzdLPyxNKR1N','DhSkgdeIra','6yoN55+c5O246ygwsx/cSW','W45MvW','DMFdLG','jmksWQ9aWRNdJMi0EmoyWO02CG','dHGxWO7cMqW4WOPXhq','Fa4Zda','nI5IBW','w8kzWOxcMSozWOW','ymowWPnbvbzobrfEu8kzjmoAW6iBWQS','W4hcKHJdL2T9mG','W7GrA8kzx8kzW64Zc8owCuBcUSk5W6tdMmkNWOVcTCk5W7xdVmkJvgn9','WP3cN8otiCoSW7ldS8oQWPNdQ2m4W4FcVSk8seJcTSkqWOz6','WPhdKSoMfq','6lAL5yYE5PE85PE4','CCo5WR3cGmodW4pdGmoUW4mmoqC','WRdcLYdcICkgpWBdNc5csgZdT8k2','wLNdHSk4W6ZdR27dICkKmG','q11AWO1N','xSknWOlcQW'];_0x166f=function(){return _0x379961;};return _0x166f();}!cookiesArr[0x0]&&($['msg']($[_0x3cf9f8(0xbb,'Jw1s')],_0x3cf9f8(0x82,'!luZ')),process[_0x3cf9f8(0xdf,'1iE0')](0x1));!(async()=>{const _0xd19756=_0x3cf9f8;notify[_0xd19756(0x110,'bCoZ')]({'title':$[_0xd19756(0xba,'c2Ol')]}),await Main(),isNotify&¬ify[_0xd19756(0xb4,'C&*L')]()&&await notify[_0xd19756(0xfd,'C8Zy')]();})()[_0x3cf9f8(0xa3,'&N%)')](_0x542bb7=>$[_0x3cf9f8(0xeb,'h)NT')](_0x542bb7))['finally'](()=>$[_0x3cf9f8(0xc8,'AvA6')]());async function Main(){const _0x2742db=_0x3cf9f8;try{try{const _0x359ec2=parseInt(taskThreads);_0x359ec2>0x0&&_0x359ec2!==0x1&&(taskThreads=_0x359ec2);}catch{taskThreads=0x1;}taskThreads=Math[_0x2742db(0xe6,'L](g')](taskThreads,maxThreads),$[_0x2742db(0x7f,'x(TX')]=null;if(runInterval)try{const _0x3c1bae=parseInt(runInterval);_0x3c1bae>=0x0&&($[_0x2742db(0xec,'C8Zy')]=_0x3c1bae);}catch{console[_0x2742db(0xdb,'i8aD')](_0x2742db(0xe7,'&b)$'));}$[_0x2742db(0x10c,'By[P')]=[],console['log']('=========='+$['name']+_0x2742db(0xa9,'*02!')),console[_0x2742db(0x8b,'Ht^o')](_0x2742db(0x100,'(XI3')+$[_0x2742db(0xda,'5N*m')]/0x3e8+_0x2742db(0xd9,'&N%)')),console[_0x2742db(0xf2,'Hbzl')]('代理开关:\x20['+common[_0x2742db(0xfa,'xm*G')]()+']'),console[_0x2742db(0xed,'AQQq')](_0x2742db(0xc3,'bCoZ')+(isNotify?'开启':'关闭')+']'),console[_0x2742db(0x105,'a3jb')]('账号过滤:\x20['+pinFilter['join'](',\x20')+']'),console[_0x2742db(0x113,'x(TX')](_0x2742db(0xd3,'*02!')+$[_0x2742db(0xa1,'1iE0')]+'变量状态结束=========='),console[_0x2742db(0xed,'AQQq')](''),await common[_0x2742db(0xea,'Ocsu')](taskThreads,cookiesArr,taskFnc),$[_0x2742db(0xca,'XT8S')]=![];$['needRemoveCookieIndex'][_0x2742db(0xe2,'h)NT')]>0x0&&(cookiesArr=cookiesArr['filter']((_0x263e74,_0x59ae8a)=>!$[_0x2742db(0xe9,'AbZG')][_0x2742db(0x10f,'Hbzl')](_0x59ae8a+0x1)),$[_0x2742db(0xce,'!luZ')]=[]);const _0x2d555f=notify['getMessage']();_0x2d555f&&console['log'](_0x2742db(0x8a,'rEz6')+_0x2d555f[_0x2742db(0xbf,'Ocsu')](/:/g,_0x2742db(0xd8,'xm*G')));}catch(_0x5dbdaf){console[_0x2742db(0x92,'vYvx')](_0x2742db(0x90,'cnyf')+_0x5dbdaf);}}async function taskFnc(_0x35ebca,_0x3e2121){const _0x4d0c26=_0x3cf9f8;if($['runEnd'])return{'runEnd':!![]};const _0x2c3d53=decodeURIComponent(common[_0x4d0c26(0xd2,'L](g')](_0x35ebca,'pt_pin'));function _0x1ae6e1(_0x5f1a2e,_0x192783){const _0x6d1563=_0x4d0c26;if(_0x5f1a2e[_0x6d1563(0xf1,'rEz6')]<=0x4)return _0x5f1a2e;else{const _0x33a5a4=_0x5f1a2e[_0x6d1563(0xb9,']0UV')](0x0,0x2),_0x476c66=_0x5f1a2e[_0x6d1563(0x8d,'Hbzl')](-0x2),_0xd48215=Math[_0x6d1563(0x96,'$L7o')](_0x192783-_0x33a5a4[_0x6d1563(0x109,'i8aD')]-_0x476c66[_0x6d1563(0x9d,'L](g')],0x0),_0x19e93c='*'[_0x6d1563(0xbc,'vYvx')](_0xd48215);return _0x33a5a4+_0x19e93c+_0x476c66;}}const _0x415866=decodeURIComponent(_0x2c3d53),_0xaf218f=_0x1ae6e1(_0x415866,0x6),_0x36dd4a=_0x4d0c26(0x9a,'Ht^o')+_0x3e2121+'】'+_0xaf218f+':',_0x5cff0b=notify['create'](_0x3e2121,_0x2c3d53);if(pinFilter[_0x4d0c26(0xee,']0UV')]>0x0&&(pinFilter[_0x4d0c26(0xe1,'Ht^o')](_0x2c3d53)||pinFilter['includes'](encodeURIComponent(_0x2c3d53)))){_0x5cff0b[_0x4d0c26(0xad,'&b)$')]('已设置跳过运行当前账号'),console[_0x4d0c26(0xd7,'bCoZ')](_0x5cff0b['getInlineContent']()),$[_0x4d0c26(0xbd,'AQQq')][_0x4d0c26(0x108,'Kd06')](_0x3e2121);return;}const _0x56935c=await common[_0x4d0c26(0xfc,'5N*m')](_0x35ebca);if(!_0x56935c&&typeof _0x56935c===_0x4d0c26(0xa6,'t90#')){console['log'](_0x36dd4a+_0x4d0c26(0xd0,'x(TX')),_0x5cff0b[_0x4d0c26(0xe3,'yv3w')](_0x4d0c26(0x9b,'MxXB')),$[_0x4d0c26(0x84,'&b)$')][_0x4d0c26(0xae,'*02!')](_0x3e2121);return;}const _0x5e54b4=common[_0x4d0c26(0x99,'&b)$')](_0x2c3d53);await _0x57df96(_0x4d0c26(0xa4,'XT8S'));if($[_0x4d0c26(0xe5,'dxR^')])return{'runEnd':!![]};await $[_0x4d0c26(0x103,'xm*G')](parseInt($[_0x4d0c26(0x93,'&N%)')]*0x1+0x1f4,0xa));async function _0x340b68(_0x3bb90c,_0x2410c0){const _0xd39240=_0x4d0c26;try{switch(_0x3bb90c){case'queryPanamaPage':break;case'sendUserIncreaseRedPackage':if(_0x2410c0[_0xd39240(0xdd,'Sbb]')]===0x0){if(_0x2410c0[_0xd39240(0x10e,'c2Ol')]&&_0x2410c0[_0xd39240(0x81,'rEz6')]['redPackageResult']&&_0x2410c0['result'][_0xd39240(0xef,'kcax')][_0xd39240(0x8e,'dxR^')]){const {discount:_0x4e1b45,beginTime:_0x4d275c,endTime:_0x5d50f0}=_0x2410c0[_0xd39240(0x81,'rEz6')]['redPackageResult']['data'],_0x8bd85e=new Date(_0x4d275c),_0x17b73f=new Date(_0x5d50f0);console['log'](_0x36dd4a+_0xd39240(0xa7,'Jw1s')+_0x4e1b45+']红包('+_0x8bd85e[_0xd39240(0xab,'Ocsu')]()+'-'+_0x17b73f['toLocaleString']()+')'),_0x5cff0b[_0xd39240(0x87,'@4Lx')]('['+_0x4e1b45+_0xd39240(0xe4,'B8th')+_0x8bd85e[_0xd39240(0x9c,'C8Zy')]()+'-'+_0x17b73f['toLocaleString']()+')');}else msg=common[_0xd39240(0x83,'By[P')](_0x2410c0[_0xd39240(0xff,'xWUe')]),console['log'](_0x36dd4a+_0xd39240(0x8c,'Ht^o')+_0x2410c0[_0xd39240(0xb8,'By[P')]['ret']+']:'+msg);}else msg=common['getErrorMsg'](_0x2410c0),console['log'](_0x36dd4a+_0xd39240(0x104,'x(TX')+_0x2410c0[_0xd39240(0xe8,'Hbzl')]+']:'+msg);break;}}catch(_0x476a38){console[_0xd39240(0x92,'vYvx')](_0xd39240(0xc1,'vYvx')+_0x3bb90c+_0xd39240(0xb1,'*02!')+(_0x476a38[_0xd39240(0xac,'vYvx')]||_0x476a38));}}async function _0x57df96(_0x2c3b4d){const _0x4df151=_0x4d0c26;if($[_0x4df151(0x91,'h)NT')])return;let _0x42b3dc='',_0x1c3a23=null,_0x2f06a4=null,_0x1ab36b=_0x4df151(0xf7,'MxXB');switch(_0x2c3b4d){case'queryPanamaPage':_0x42b3dc='https://api.m.jd.com/client.action',_0x2f06a4={'functionId':_0x2c3b4d,'body':JSON['stringify']({'activityId':_0x4df151(0xb2,'AQQq'),'dynamicParam':{},'geo':{'lng':'','lat':''}}),'clientVersion':common['getLatestAppVersion'](),'client':_0x4df151(0xe0,'C)oW')};break;case _0x4df151(0xcd,'Z85]'):_0x42b3dc='https://api.m.jd.com/client.action',_0x2f06a4={'functionId':_0x2c3b4d,'appid':_0x4df151(0xf8,'Sbb]'),'body':JSON['stringify']({'source':_0x4df151(0x95,']0UV'),'receiveKey':''}),'clientVersion':common[_0x4df151(0x107,'Sbb]')](),'client':'wh5'};break;default:console['log'](_0x4df151(0xa8,'AQQq')+_0x2c3b4d);return;}const _0x538910={};_0x1c3a23&&Object[_0x4df151(0xf0,'Ru4m')](_0x1c3a23,_0x538910);_0x2f06a4&&Object[_0x4df151(0x115,'$L7o')](_0x2f06a4,_0x538910);const _0x3ffb8b={'url':_0x42b3dc,'method':_0x1ab36b,'headers':{'Host':_0x4df151(0xd1,'rEz6'),'Origin':_0x4df151(0x8f,'dxR^'),'Content-Type':_0x4df151(0xb0,'h)NT'),'Cookie':_0x35ebca,'Referer':'https://h5.m.jd.com/babelDiy/Zeus/4J6QFyZv5afY9hvirKNz4Zg46Wq3/index.html','User-Agent':_0x5e54b4},'params':_0x2f06a4,'data':_0x1c3a23,'timeout':0x7530};_0x1ab36b===_0x4df151(0xd6,'C)oW')&&(delete _0x3ffb8b[_0x4df151(0xc9,'MxXB')],delete _0x3ffb8b[_0x4df151(0xcc,'C8Zy')][_0x4df151(0xde,'*02!')]);const _0x102530=0x1;let _0x21319f=0x0,_0x19bead=null;while(_0x21319f<_0x102530){_0x21319f>0x0&&await $[_0x4df151(0xd5,'XT8S')](0x3e8);const _0x55566e=await common[_0x4df151(0x106,'kcax')](_0x3ffb8b);if(!_0x55566e[_0x4df151(0x112,'gc(a')]){_0x19bead=_0x4df151(0x111,'Kd06')+_0x2c3b4d+_0x4df151(0xb6,'C)oW')+_0x55566e[_0x4df151(0xf3,'kcax')],_0x21319f++;continue;}if(!_0x55566e[_0x4df151(0x94,'cnyf')]){_0x19bead=_0x4df151(0xfe,'C8Zy')+_0x2c3b4d+_0x4df151(0xa0,'@4Lx'),_0x21319f++;continue;}await _0x340b68(_0x2c3b4d,_0x55566e[_0x4df151(0xcf,'vYvx')]);break;}_0x21319f>=_0x102530&&console[_0x4df151(0xb5,'cnyf')](_0x19bead);}} 14 | // prettier-ignore 15 | 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)} 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "crypto-js": "^4.2.0", 4 | "dotenv": "^16.3.1", 5 | "ds": "^2.0.2", 6 | "global-agent": "^3.0.0", 7 | "got": "^11.8.6", 8 | "https-proxy-agent": "^7.0.2", 9 | "jsdom": "^23.0.1", 10 | "moment": "^2.30.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ql.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const got = require('got') 4 | require('dotenv').config() 5 | const { readFile } = require('fs/promises') 6 | const path = require('path') 7 | 8 | const qlDir = '/ql' 9 | const fs = require('fs') 10 | const tokenFileList = ['/ql/data/db/keyv.sqlite', '/ql/data/config/auth.json', '/ql/config/auth.json'] 11 | 12 | //const authFile = path.join(qlDir, 'config/auth.json'); 13 | let authFile = getLatestFile(tokenFileList) 14 | const api = got.extend({ 15 | prefixUrl: 'http://127.0.0.1:5600', 16 | retry: { limit: 0 }, 17 | }) 18 | function getLatestFile(files) { 19 | let latestFile = null 20 | let latestMtime = 0 21 | for (const file of files) { 22 | try { 23 | const stats = fs.statSync(file) 24 | const mtime = stats.mtimeMs 25 | if (mtime > latestMtime) { 26 | latestMtime = mtime 27 | latestFile = file 28 | } 29 | } catch (e) {} 30 | } 31 | return latestFile 32 | } 33 | async function getToken() { 34 | const authConfig = await readFile(authFile) 35 | // console.log(authConfig.toString().match(/"token":"(.*?)",/)[1]) 36 | return authConfig.toString().match(/"token":"([^"]*)"(?!.*"token":)/)[1] 37 | } 38 | 39 | module.exports.getEnvs = async () => { 40 | const token = await getToken() 41 | const body = await api({ 42 | url: 'api/envs', 43 | searchParams: { 44 | searchValue: 'JD_COOKIE', 45 | t: Date.now(), 46 | }, 47 | headers: { 48 | Accept: 'application/json', 49 | authorization: `Bearer ${token}`, 50 | }, 51 | }).json() 52 | return body.data 53 | } 54 | 55 | module.exports.getEnvsCount = async () => { 56 | const data = await this.getEnvs() 57 | return data.length 58 | } 59 | 60 | module.exports.addEnv = async (cookie, remarks) => { 61 | const token = await getToken() 62 | const body = await api({ 63 | method: 'post', 64 | url: 'api/envs', 65 | params: { t: Date.now() }, 66 | json: [ 67 | { 68 | name: 'JD_COOKIE', 69 | value: cookie, 70 | remarks, 71 | }, 72 | ], 73 | headers: { 74 | Accept: 'application/json', 75 | authorization: `Bearer ${token}`, 76 | 'Content-Type': 'application/json;charset=UTF-8', 77 | }, 78 | }).json() 79 | return body 80 | } 81 | 82 | module.exports.updateEnv = async (cookie, eid, remarks) => { 83 | const token = await getToken() 84 | const body = await api({ 85 | method: 'put', 86 | url: 'api/envs', 87 | params: { t: Date.now() }, 88 | json: { 89 | name: 'JD_COOKIE', 90 | value: cookie, 91 | _id: eid, 92 | remarks, 93 | }, 94 | headers: { 95 | Accept: 'application/json', 96 | authorization: `Bearer ${token}`, 97 | 'Content-Type': 'application/json;charset=UTF-8', 98 | }, 99 | }).json() 100 | return body 101 | } 102 | 103 | module.exports.updateEnv11 = async (cookie, eid, remarks) => { 104 | const token = await getToken() 105 | const body = await api({ 106 | method: 'put', 107 | url: 'api/envs', 108 | params: { t: Date.now() }, 109 | json: { 110 | name: 'JD_COOKIE', 111 | value: cookie, 112 | id: eid, 113 | remarks, 114 | }, 115 | headers: { 116 | Accept: 'application/json', 117 | authorization: `Bearer ${token}`, 118 | 'Content-Type': 'application/json;charset=UTF-8', 119 | }, 120 | }).json() 121 | return body 122 | } 123 | 124 | module.exports.DisableCk = async (eid) => { 125 | const token = await getToken() 126 | const body = await api({ 127 | method: 'put', 128 | url: 'api/envs/disable', 129 | params: { t: Date.now() }, 130 | body: JSON.stringify([eid]), 131 | headers: { 132 | Accept: 'application/json', 133 | authorization: `Bearer ${token}`, 134 | 'Content-Type': 'application/json;charset=UTF-8', 135 | }, 136 | }).json() 137 | return body 138 | } 139 | 140 | module.exports.EnableCk = async (eid) => { 141 | const token = await getToken() 142 | const body = await api({ 143 | method: 'put', 144 | url: 'api/envs/enable', 145 | params: { t: Date.now() }, 146 | body: JSON.stringify([eid]), 147 | headers: { 148 | Accept: 'application/json', 149 | authorization: `Bearer ${token}`, 150 | 'Content-Type': 'application/json;charset=UTF-8', 151 | }, 152 | }).json() 153 | return body 154 | } 155 | 156 | module.exports.getstatus = async (eid) => { 157 | const envs = await this.getEnvs() 158 | var tempid = 0 159 | for (let i = 0; i < envs.length; i++) { 160 | tempid = 0 161 | if (envs[i]._id) { 162 | tempid = envs[i]._id 163 | } 164 | if (envs[i].id) { 165 | tempid = envs[i].id 166 | } 167 | if (tempid == eid) { 168 | return envs[i].status 169 | } 170 | } 171 | return 99 172 | } 173 | 174 | module.exports.getEnvById = async (eid) => { 175 | const envs = await this.getEnvs() 176 | var tempid = 0 177 | for (let i = 0; i < envs.length; i++) { 178 | tempid = 0 179 | if (envs[i]._id) { 180 | tempid = envs[i]._id 181 | } 182 | if (envs[i].id) { 183 | tempid = envs[i].id 184 | } 185 | if (tempid == eid) { 186 | return envs[i].value 187 | } 188 | } 189 | return '' 190 | } 191 | 192 | module.exports.getEnvByPtPin = async (Ptpin) => { 193 | const envs = await this.getEnvs() 194 | for (let i = 0; i < envs.length; i++) { 195 | var tempptpin = decodeURIComponent(envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/) && envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/)[1]) 196 | if (tempptpin == Ptpin) { 197 | return envs[i] 198 | } 199 | } 200 | return '' 201 | } 202 | 203 | module.exports.delEnv = async (eid) => { 204 | const token = await getToken() 205 | const body = await api({ 206 | method: 'delete', 207 | url: 'api/envs', 208 | params: { t: Date.now() }, 209 | body: JSON.stringify([eid]), 210 | headers: { 211 | Accept: 'application/json', 212 | authorization: `Bearer ${token}`, 213 | 'Content-Type': 'application/json;charset=UTF-8', 214 | }, 215 | }).json() 216 | return body 217 | } 218 | -------------------------------------------------------------------------------- /sendNotify.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # _*_ coding:utf-8 _*_ 3 | 4 | #Modify: Kirin 5 | 6 | from curses.ascii import FS 7 | import sys 8 | import os, re 9 | import requests 10 | import json 11 | import time 12 | import hmac 13 | import hashlib 14 | import base64 15 | import urllib.parse 16 | from requests.adapters import HTTPAdapter 17 | from urllib3.util import Retry 18 | 19 | cur_path = os.path.abspath(os.path.dirname(__file__)) 20 | root_path = os.path.split(cur_path)[0] 21 | sys.path.append(root_path) 22 | 23 | # 通知服务 24 | BARK = '' # bark服务,自行搜索; secrets可填; 25 | BARK_PUSH='' # bark自建服务器,要填完整链接,结尾的/不要 26 | PUSH_KEY = '' # Server酱的PUSH_KEY; secrets可填 27 | TG_BOT_TOKEN = '' # tg机器人的TG_BOT_TOKEN; secrets可填xxx:AAG9rt-6RDaaX0HBLZQxxx 28 | TG_USER_ID = '' # tg机器人的TG_USER_ID; secrets可填 xxxxx 29 | TG_API_HOST='' # tg 代理api 30 | TG_PROXY_IP = '' # tg机器人的TG_PROXY_IP; secrets可填 31 | TG_PROXY_PORT = '' # tg机器人的TG_PROXY_PORT; secrets可填 32 | DD_BOT_TOKEN = '' # 钉钉机器人的DD_BOT_TOKEN; secrets可填 33 | DD_BOT_SECRET = '' # 钉钉机器人的DD_BOT_SECRET; secrets可填 34 | QQ_SKEY = '' # qq机器人的QQ_SKEY; secrets可填 35 | QQ_MODE = '' # qq机器人的QQ_MODE; secrets可填 36 | QYWX_AM = '' # 企业微信 37 | QYWX_KEY = '' # 企业微信BOT 38 | PUSH_PLUS_TOKEN = '' # 微信推送Plus+ 39 | FS_KEY = '' #飞书群BOT 40 | 41 | notify_mode = [] 42 | 43 | message_info = '''''' 44 | 45 | # GitHub action运行需要填写对应的secrets 46 | if "BARK" in os.environ and os.environ["BARK"]: 47 | BARK = os.environ["BARK"] 48 | if "BARK_PUSH" in os.environ and os.environ["BARK_PUSH"]: 49 | BARK_PUSH = os.environ["BARK_PUSH"] 50 | if "PUSH_KEY" in os.environ and os.environ["PUSH_KEY"]: 51 | PUSH_KEY = os.environ["PUSH_KEY"] 52 | if "TG_BOT_TOKEN" in os.environ and os.environ["TG_BOT_TOKEN"] and "TG_USER_ID" in os.environ and os.environ["TG_USER_ID"]: 53 | TG_BOT_TOKEN = os.environ["TG_BOT_TOKEN"] 54 | TG_USER_ID = os.environ["TG_USER_ID"] 55 | if "TG_API_HOST" in os.environ and os.environ["TG_API_HOST"]: 56 | TG_API_HOST = os.environ["TG_API_HOST"] 57 | if "DD_BOT_TOKEN" in os.environ and os.environ["DD_BOT_TOKEN"] and "DD_BOT_SECRET" in os.environ and os.environ["DD_BOT_SECRET"]: 58 | DD_BOT_TOKEN = os.environ["DD_BOT_TOKEN"] 59 | DD_BOT_SECRET = os.environ["DD_BOT_SECRET"] 60 | if "QQ_SKEY" in os.environ and os.environ["QQ_SKEY"] and "QQ_MODE" in os.environ and os.environ["QQ_MODE"]: 61 | QQ_SKEY = os.environ["QQ_SKEY"] 62 | QQ_MODE = os.environ["QQ_MODE"] 63 | # 获取pushplus+ PUSH_PLUS_TOKEN 64 | if "PUSH_PLUS_TOKEN" in os.environ: 65 | if len(os.environ["PUSH_PLUS_TOKEN"]) > 1: 66 | PUSH_PLUS_TOKEN = os.environ["PUSH_PLUS_TOKEN"] 67 | # print("已获取并使用Env环境 PUSH_PLUS_TOKEN") 68 | # 获取企业微信应用推送 QYWX_AM 69 | if "QYWX_AM" in os.environ: 70 | if len(os.environ["QYWX_AM"]) > 1: 71 | QYWX_AM = os.environ["QYWX_AM"] 72 | 73 | 74 | if "QYWX_KEY" in os.environ: 75 | if len(os.environ["QYWX_KEY"]) > 1: 76 | QYWX_KEY = os.environ["QYWX_KEY"] 77 | # print("已获取并使用Env环境 QYWX_AM") 78 | 79 | #接入飞书webhook推送 80 | if "FS_KEY" in os.environ: 81 | if len(os.environ["FS_KEY"]) > 1: 82 | FS_KEY = os.environ["FS_KEY"] 83 | 84 | 85 | if BARK: 86 | notify_mode.append('bark') 87 | # print("BARK 推送打开") 88 | if BARK_PUSH: 89 | notify_mode.append('bark') 90 | # print("BARK 推送打开") 91 | if PUSH_KEY: 92 | notify_mode.append('sc_key') 93 | # print("Server酱 推送打开") 94 | if TG_BOT_TOKEN and TG_USER_ID: 95 | notify_mode.append('telegram_bot') 96 | # print("Telegram 推送打开") 97 | if DD_BOT_TOKEN and DD_BOT_SECRET: 98 | notify_mode.append('dingding_bot') 99 | # print("钉钉机器人 推送打开") 100 | if QQ_SKEY and QQ_MODE: 101 | notify_mode.append('coolpush_bot') 102 | # print("QQ机器人 推送打开") 103 | 104 | if PUSH_PLUS_TOKEN: 105 | notify_mode.append('pushplus_bot') 106 | # print("微信推送Plus机器人 推送打开") 107 | if QYWX_AM: 108 | notify_mode.append('wecom_app') 109 | # print("企业微信机器人 推送打开") 110 | 111 | if QYWX_KEY: 112 | notify_mode.append('wecom_key') 113 | # print("企业微信机器人 推送打开") 114 | 115 | if FS_KEY: 116 | notify_mode.append('fs_key') 117 | # print("飞书机器人 推送打开") 118 | 119 | def message(str_msg): 120 | global message_info 121 | print(str_msg) 122 | message_info = "{}\n{}".format(message_info, str_msg) 123 | sys.stdout.flush() 124 | 125 | def bark(title, content): 126 | print("\n") 127 | if BARK: 128 | try: 129 | response = requests.get( 130 | f"""https://api.day.app/{BARK}/{title}/{urllib.parse.quote_plus(content)}""").json() 131 | if response['code'] == 200: 132 | print('推送成功!') 133 | else: 134 | print('推送失败!') 135 | except: 136 | print('推送失败!') 137 | if BARK_PUSH: 138 | try: 139 | response = requests.get( 140 | f"""{BARK_PUSH}/{title}/{urllib.parse.quote_plus(content)}""").json() 141 | if response['code'] == 200: 142 | print('推送成功!') 143 | else: 144 | print('推送失败!') 145 | except: 146 | print('推送失败!') 147 | print("bark服务启动") 148 | if BARK=='' and BARK_PUSH=='': 149 | print("bark服务的bark_token未设置!!\n取消推送") 150 | return 151 | 152 | def serverJ(title, content): 153 | print("\n") 154 | if not PUSH_KEY: 155 | print("server酱服务的PUSH_KEY未设置!!\n取消推送") 156 | return 157 | print("serverJ服务启动") 158 | data = { 159 | "text": title, 160 | "desp": content.replace("\n", "\n\n") 161 | } 162 | response = requests.post(f"https://sc.ftqq.com/{PUSH_KEY}.send", data=data).json() 163 | if response['errno'] == 0: 164 | print('推送成功!') 165 | else: 166 | print('推送失败!') 167 | 168 | # tg通知 169 | def telegram_bot(title, content): 170 | try: 171 | print("\n") 172 | bot_token = TG_BOT_TOKEN 173 | user_id = TG_USER_ID 174 | if not bot_token or not user_id: 175 | print("tg服务的bot_token或者user_id未设置!!\n取消推送") 176 | return 177 | print("tg服务启动") 178 | if TG_API_HOST: 179 | if 'http' in TG_API_HOST: 180 | url = f"{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" 181 | else: 182 | url = f"https://{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" 183 | else: 184 | url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage" 185 | 186 | headers = {'Content-Type': 'application/x-www-form-urlencoded'} 187 | payload = {'chat_id': str(TG_USER_ID), 'text': f'{title}\n\n{content}', 'disable_web_page_preview': 'true'} 188 | proxies = None 189 | if TG_PROXY_IP and TG_PROXY_PORT: 190 | proxyStr = "http://{}:{}".format(TG_PROXY_IP, TG_PROXY_PORT) 191 | proxies = {"http": proxyStr, "https": proxyStr} 192 | try: 193 | response = requests.post(url=url, headers=headers, params=payload, proxies=proxies).json() 194 | except: 195 | print('推送失败!') 196 | if response['ok']: 197 | print('推送成功!') 198 | else: 199 | print('推送失败!') 200 | except Exception as e: 201 | print(e) 202 | 203 | def dingding_bot(title, content): 204 | timestamp = str(round(time.time() * 1000)) # 时间戳 205 | secret_enc = DD_BOT_SECRET.encode('utf-8') 206 | string_to_sign = '{}\n{}'.format(timestamp, DD_BOT_SECRET) 207 | string_to_sign_enc = string_to_sign.encode('utf-8') 208 | hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() 209 | sign = urllib.parse.quote_plus(base64.b64encode(hmac_code)) # 签名 210 | print('开始使用 钉钉机器人 推送消息...', end='') 211 | url = f'https://oapi.dingtalk.com/robot/send?access_token={DD_BOT_TOKEN}×tamp={timestamp}&sign={sign}' 212 | headers = {'Content-Type': 'application/json;charset=utf-8'} 213 | data = { 214 | 'msgtype': 'text', 215 | 'text': {'content': f'{title}\n\n{content}'} 216 | } 217 | response = requests.post(url=url, data=json.dumps(data), headers=headers, timeout=15).json() 218 | if not response['errcode']: 219 | print('推送成功!') 220 | else: 221 | print('推送失败!') 222 | 223 | def coolpush_bot(title, content): 224 | print("\n") 225 | if not QQ_SKEY or not QQ_MODE: 226 | print("qq服务的QQ_SKEY或者QQ_MODE未设置!!\n取消推送") 227 | return 228 | print("qq服务启动") 229 | url=f"https://qmsg.zendee.cn/{QQ_MODE}/{QQ_SKEY}" 230 | payload = {'msg': f"{title}\n\n{content}".encode('utf-8')} 231 | response = requests.post(url=url, params=payload).json() 232 | if response['code'] == 0: 233 | print('推送成功!') 234 | else: 235 | print('推送失败!') 236 | # push推送 237 | def pushplus_bot(title, content): 238 | try: 239 | print("\n") 240 | if not PUSH_PLUS_TOKEN: 241 | print("PUSHPLUS服务的token未设置!!\n取消推送") 242 | return 243 | print("PUSHPLUS服务启动") 244 | url = 'http://www.pushplus.plus/send' 245 | data = { 246 | "token": PUSH_PLUS_TOKEN, 247 | "title": title, 248 | "content": content 249 | } 250 | body = json.dumps(data).encode(encoding='utf-8') 251 | headers = {'Content-Type': 'application/json'} 252 | response = requests.post(url=url, data=body, headers=headers).json() 253 | if response['code'] == 200: 254 | print('推送成功!') 255 | else: 256 | print('推送失败!') 257 | except Exception as e: 258 | print(e) 259 | 260 | 261 | def wecom_key(title, content): 262 | print("\n") 263 | if not QYWX_KEY: 264 | print("QYWX_KEY未设置!!\n取消推送") 265 | return 266 | print("QYWX_KEY服务启动") 267 | print("content"+content) 268 | headers = {'Content-Type': 'application/json'} 269 | data = { 270 | "msgtype":"text", 271 | "text":{ 272 | "content":title+"\n"+content.replace("\n", "\n\n") 273 | } 274 | } 275 | 276 | print(f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={QYWX_KEY}") 277 | response = requests.post(f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={QYWX_KEY}", json=data,headers=headers).json() 278 | print(response) 279 | 280 | # 飞书机器人推送 281 | def fs_key(title, content): 282 | print("\n") 283 | if not FS_KEY: 284 | print("FS_KEY未设置!!\n取消推送") 285 | return 286 | print("FS_KEY服务启动") 287 | print("content"+content) 288 | headers = {'Content-Type': 'application/json'} 289 | data = { 290 | "msg_type":"text", 291 | "content":{ 292 | "text":title+"\n"+content.replace("\n", "\n\n") 293 | } 294 | } 295 | 296 | print(f"https://open.feishu.cn/open-apis/bot/v2/hook/{FS_KEY}") 297 | response = requests.post(f"https://open.feishu.cn/open-apis/bot/v2/hook/{FS_KEY}", json=data,headers=headers).json() 298 | print(response) 299 | 300 | 301 | # 企业微信 APP 推送 302 | def wecom_app(title, content): 303 | try: 304 | if not QYWX_AM: 305 | print("QYWX_AM 并未设置!!\n取消推送") 306 | return 307 | QYWX_AM_AY = re.split(',', QYWX_AM) 308 | if 4 < len(QYWX_AM_AY) > 5: 309 | print("QYWX_AM 设置错误!!\n取消推送") 310 | return 311 | corpid = QYWX_AM_AY[0] 312 | corpsecret = QYWX_AM_AY[1] 313 | touser = QYWX_AM_AY[2] 314 | agentid = QYWX_AM_AY[3] 315 | try: 316 | media_id = QYWX_AM_AY[4] 317 | except: 318 | media_id = '' 319 | wx = WeCom(corpid, corpsecret, agentid) 320 | # 如果没有配置 media_id 默认就以 text 方式发送 321 | if not media_id: 322 | message = title + '\n\n' + content 323 | response = wx.send_text(message, touser) 324 | else: 325 | response = wx.send_mpnews(title, content, media_id, touser) 326 | if response == 'ok': 327 | print('推送成功!') 328 | else: 329 | print('推送失败!错误信息如下:\n', response) 330 | except Exception as e: 331 | print(e) 332 | 333 | class WeCom: 334 | def __init__(self, corpid, corpsecret, agentid): 335 | self.CORPID = corpid 336 | self.CORPSECRET = corpsecret 337 | self.AGENTID = agentid 338 | 339 | def get_access_token(self): 340 | url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken' 341 | values = {'corpid': self.CORPID, 342 | 'corpsecret': self.CORPSECRET, 343 | } 344 | req = requests.post(url, params=values) 345 | data = json.loads(req.text) 346 | return data["access_token"] 347 | 348 | def send_text(self, message, touser="@all"): 349 | send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() 350 | send_values = { 351 | "touser": touser, 352 | "msgtype": "text", 353 | "agentid": self.AGENTID, 354 | "text": { 355 | "content": message 356 | }, 357 | "safe": "0" 358 | } 359 | send_msges = (bytes(json.dumps(send_values), 'utf-8')) 360 | respone = requests.post(send_url, send_msges) 361 | respone = respone.json() 362 | return respone["errmsg"] 363 | 364 | def send_mpnews(self, title, message, media_id, touser="@all"): 365 | send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() 366 | send_values = { 367 | "touser": touser, 368 | "msgtype": "mpnews", 369 | "agentid": self.AGENTID, 370 | "mpnews": { 371 | "articles": [ 372 | { 373 | "title": title, 374 | "thumb_media_id": media_id, 375 | "author": "Author", 376 | "content_source_url": "", 377 | "content": message.replace('\n', '
'), 378 | "digest": message 379 | } 380 | ] 381 | } 382 | } 383 | send_msges = (bytes(json.dumps(send_values), 'utf-8')) 384 | respone = requests.post(send_url, send_msges) 385 | respone = respone.json() 386 | return respone["errmsg"] 387 | 388 | def send(title, content): 389 | """ 390 | 使用 bark, telegram bot, dingding bot, server, feishuJ 发送手机推送 391 | :param title: 392 | :param content: 393 | :return: 394 | """ 395 | 396 | for i in notify_mode: 397 | if i == 'bark': 398 | if BARK or BARK_PUSH: 399 | bark(title=title, content=content) 400 | else: 401 | print('未启用 bark') 402 | continue 403 | if i == 'sc_key': 404 | if PUSH_KEY: 405 | serverJ(title=title, content=content) 406 | else: 407 | print('未启用 Server酱') 408 | continue 409 | elif i == 'dingding_bot': 410 | if DD_BOT_TOKEN and DD_BOT_SECRET: 411 | dingding_bot(title=title, content=content) 412 | else: 413 | print('未启用 钉钉机器人') 414 | continue 415 | elif i == 'telegram_bot': 416 | if TG_BOT_TOKEN and TG_USER_ID: 417 | telegram_bot(title=title, content=content) 418 | else: 419 | print('未启用 telegram机器人') 420 | continue 421 | elif i == 'coolpush_bot': 422 | if QQ_SKEY and QQ_MODE: 423 | coolpush_bot(title=title, content=content) 424 | else: 425 | print('未启用 QQ机器人') 426 | continue 427 | elif i == 'pushplus_bot': 428 | if PUSH_PLUS_TOKEN: 429 | pushplus_bot(title=title, content=content) 430 | else: 431 | print('未启用 PUSHPLUS机器人') 432 | continue 433 | elif i == 'wecom_app': 434 | if QYWX_AM: 435 | wecom_app(title=title, content=content) 436 | else: 437 | print('未启用企业微信应用消息推送') 438 | continue 439 | elif i == 'wecom_key': 440 | if QYWX_KEY: 441 | 442 | for i in range(int(len(content)/2000)+1): 443 | wecom_key(title=title, content=content[i*2000:(i+1)*2000]) 444 | else: 445 | print('未启用企业微信应用消息推送') 446 | continue 447 | elif i == 'fs_key': 448 | if FS_KEY: 449 | fs_key(title=title, content=content) 450 | else: 451 | print('未启用飞书机器人消息推送') 452 | continue 453 | else: 454 | print('此类推送方式不存在') 455 | 456 | 457 | def main(): 458 | send('title', 'content') 459 | 460 | 461 | if __name__ == '__main__': 462 | main() 463 | -------------------------------------------------------------------------------- /utils/Rebels_3_0.js: -------------------------------------------------------------------------------- 1 | /* 2 | new Env('Rebels_3_0'); 3 | */ 4 | var iil='jsjiami.com.v7';const ilI1lI=iii1II;(function(IiiIl1,lIIil1,IIli1,II1liI,IlI1i1,l1lIl1,IiiIlI){return IiiIl1=IiiIl1>>0x4,l1lIl1='hs',IiiIlI='hs',function(Iilli1,I1l1Il,llIll1,Illl1l,Illl1i){const llIlii=iii1II;Illl1l='tfi',l1lIl1=Illl1l+l1lIl1,Illl1i='up',IiiIlI+=Illl1i,l1lIl1=llIll1(l1lIl1),IiiIlI=llIll1(IiiIlI),llIll1=0x0;const lIIiil=Iilli1();while(!![]&&--II1liI+I1l1Il){try{Illl1l=-parseInt(llIlii(0x8f,'@isu'))/0x1*(parseInt(llIlii(0xa3,'oIbJ'))/0x2)+-parseInt(llIlii(0xa1,'guTq'))/0x3+parseInt(llIlii(0xa4,'AeS('))/0x4+parseInt(llIlii(0x92,'r5XH'))/0x5*(-parseInt(llIlii(0x87,'JVa9'))/0x6)+-parseInt(llIlii(0x9d,'$zW!'))/0x7*(parseInt(llIlii(0x8b,'3o@]'))/0x8)+-parseInt(llIlii(0x8d,'WQ]H'))/0x9+-parseInt(llIlii(0x96,'$zW!'))/0xa*(-parseInt(llIlii(0xaf,'EQjZ'))/0xb);}catch(l1lIii){Illl1l=llIll1;}finally{Illl1i=lIIiil[l1lIl1]();if(IiiIl1<=II1liI)llIll1?IlI1i1?Illl1l=Illl1i:IlI1i1=Illl1i:llIll1=Illl1i;else{if(llIll1==IlI1i1['replace'](/[dKGtDJRXeYUyHMwbCQB=]/g,'')){if(Illl1l===I1l1Il){lIIiil['un'+l1lIl1](Illl1i);break;}lIIiil[IiiIlI](Illl1i);}}}}}(IIli1,lIIil1,function(I11iI1,l1lIil,IiiIli,iillli,I1l1Ii,I1i11i,I1i11l){return l1lIil='\x73\x70\x6c\x69\x74',I11iI1=arguments[0x0],I11iI1=I11iI1[l1lIil](''),IiiIli=`\x72\x65\x76\x65\x72\x73\x65`,I11iI1=I11iI1[IiiIli]('\x76'),iillli=`\x6a\x6f\x69\x6e`,(0x14f566,I11iI1[iillli](''));});}(0xbc0,0xbb097,Iii11l,0xbe),Iii11l)&&(iil=Iii11l);const i1l1ll=require('jsdom');let I1iIiI=null,li1I1=null;async function i1ilil(iIIl1l){const llIli1={'cjJmi':function(iliIII,iIIl1i){return iliIII(iIIl1i);},'ISZTM':function(I1lllI,ill111,Iliil1){return I1lllI(ill111,Iliil1);}};return new Promise((i1III,Ii1iIi)=>{llIli1['ISZTM'](setTimeout,()=>{const llIlil=iii1II;llIli1[llIlil(0x9e,'y&Np')](i1III,iIIl1l);},iIIl1l);});}async function lilIii(iliIIl){const IIlil=iii1II,Ii1iIl={'FFCoM':IIlil(0x94,'oIbJ'),'vjWLO':'Mozilla/5.0\x20(Macintosh;\x20Intel\x20Mac\x20OS\x20X\x2010.15;\x20rv:91.0)\x20Gecko/20100101\x20Firefox/91.0','FHRri':IIlil(0xb0,'f[zq'),'FDIoN':IIlil(0xb3,'T(5r'),'fbfMW':IIlil(0x86,'T(5r'),'RIKxB':function(Iliiii,i1illI){return Iliiii(i1illI);}},{JSDOM:iliIIi}=i1l1ll;let ill11I=new i1l1ll[(IIlil(0x9c,'#4@$'))]({'userAgent':'Mozilla/5.0\x20(Macintosh;\x20Intel\x20Mac\x20OS\x20X\x2010.15;\x20rv:91.0)\x20Gecko/20100101\x20Firefox/91.0','referrer':'https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu'}),Iliiil=new i1l1ll[(IIlil(0x8e,'&As9'))](),li1Il={'url':Ii1iIl[IIlil(0xa2,'T5ky')],'referrer':Ii1iIl[IIlil(0xab,'3o@]')],'userAgent':Ii1iIl[IIlil(0xa8,'W4[]')],'runScripts':Ii1iIl['FHRri'],'resources':ill11I,'includeNodeLocations':!![],'storageQuota':0x989680,'pretendToBeVisual':!![],'virtualConsole':Iliiil};const li1Ii=new iliIIi('\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20>(-0x2*_0xce138f&0x6)):0x0){_0x3e9ef4=_0x7f7e4b['indexOf'](_0x3e9ef4);}for(let _0x492d9f=0x0,_0x2ee623=_0xabd09['length'];_0x492d9f<_0x2ee623;_0x492d9f++){_0x2906b5+='%'+('00'+_0xabd09['charCodeAt'](_0x492d9f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2906b5);};const _0x5cccb4=function(_0x4927f1,_0x2645db){let _0x4d2871=[],_0x203a97=0x0,_0x44018c,_0x3fa1df='';_0x4927f1=_0x44e1b1(_0x4927f1);let _0x519f62;for(_0x519f62=0x0;_0x519f62<0x100;_0x519f62++){_0x4d2871[_0x519f62]=_0x519f62;}for(_0x519f62=0x0;_0x519f62<0x100;_0x519f62++){_0x203a97=(_0x203a97+_0x4d2871[_0x519f62]+_0x2645db['charCodeAt'](_0x519f62%_0x2645db['length']))%0x100,_0x44018c=_0x4d2871[_0x519f62],_0x4d2871[_0x519f62]=_0x4d2871[_0x203a97],_0x4d2871[_0x203a97]=_0x44018c;}_0x519f62=0x0,_0x203a97=0x0;for(let _0x2e5e72=0x0;_0x2e5e72<_0x4927f1['length'];_0x2e5e72++){_0x519f62=(_0x519f62+0x1)%0x100,_0x203a97=(_0x203a97+_0x4d2871[_0x519f62])%0x100,_0x44018c=_0x4d2871[_0x519f62],_0x4d2871[_0x519f62]=_0x4d2871[_0x203a97],_0x4d2871[_0x203a97]=_0x44018c,_0x3fa1df+=String['fromCharCode'](_0x4927f1['charCodeAt'](_0x2e5e72)^_0x4d2871[(_0x4d2871[_0x519f62]+_0x4d2871[_0x203a97])%0x100]);}return _0x3fa1df;};iii1II['MLJCYC']=_0x5cccb4,_0x2cf802=arguments,iii1II['ShUtdE']=!![];}const _0xf3c2c4=_0x1edb9e[0x0],_0x38e182=_0x2865b8+_0xf3c2c4,_0x2e1843=_0x2cf802[_0x38e182];return!_0x2e1843?(iii1II['XbqsKb']===undefined&&(iii1II['XbqsKb']=!![]),_0x1d161b=iii1II['MLJCYC'](_0x1d161b,_0x283592),_0x2cf802[_0x38e182]=_0x1d161b):_0x1d161b=_0x2e1843,_0x1d161b;},iii1II(_0x2cf802,_0x379743);}async function i1ill1(i1IIl,I1lll1,i1IIi=ilI1lI(0x84,'*wPq')){const IiiIll=ilI1lI,IIII1I={'ZUIDH':'function','FSjMj':function(Iii111,l1l1II){return Iii111(l1l1II);},'cMNDA':function(Iil1I1,Ii1iII){return Iil1I1===Ii1iII;},'eqOnp':function(l1i11I,II11II,Ii1iI1){return l1i11I(II11II,Ii1iI1);},'NjTAw':function(lilIli,Iliili){return lilIli===Iliili;},'qTJaP':function(Iliill,IIII11,i1illi){return Iliill(IIII11,i1illi);},'WPcSj':'4.1'};i1IIi!=='3.1'&&(i1IIi=IIII1I[IiiIll(0xb2,'Xpdc')]);switch(i1IIi[IiiIll(0x99,'Bvg0')](0x0)){case'3':!I1iIiI&&await lilIii(i1IIi);break;case'4':!li1I1&&await IIII1I[IiiIll(0xa7,'lnHM')](lilIii,i1IIi);break;}return new Promise(async i1illl=>{const IIlii=IiiIll,I1llil={'ljYNf':IIII1I[IIlii(0x98,'J@1s')],'VAIXx':function(I1llii,lilIll){return IIII1I['FSjMj'](I1llii,lilIll);},'fYYhj':function(l1i111,iliII1){return IIII1I['FSjMj'](l1i111,iliII1);},'uzDJD':function(II11I1,Iii11I){return II11I1(Iii11I);}};switch(i1IIi[IIlii(0xaa,'tfl!')](0x0)){case'3':if(IIII1I[IIlii(0x81,'rWZg')](typeof I1iIiI['signWaap'],IIlii(0x95,'f(&H'))){const Iil1II=await I1iIiI[IIlii(0xb6,'r5XH')](i1IIl,I1lll1);i1illl(Iil1II);}else{let iIIl1I=null;iIIl1I=IIII1I[IIlii(0x90,'WQ]H')](setInterval,async()=>{const IlI1il=IIlii;if(typeof I1iIiI[IlI1il(0x85,'rHKN')]===I1llil[IlI1il(0xb8,'3#9L')]){I1llil[IlI1il(0x93,'oIbJ')](clearInterval,iIIl1I),iIIl1I=null;const I1iIli=await I1iIiI[IlI1il(0xa5,'EQjZ')](i1IIl,I1lll1);I1llil[IlI1il(0x9f,'J@1s')](i1illl,I1iIli);}},0x64);}break;case'4':if(IIII1I[IIlii(0xa9,'$zW!')](typeof li1I1[IIlii(0xa6,'J@1s')],IIlii(0x82,'J@45'))){const lI1Ill=await li1I1['signWaap'](i1IIl,I1lll1);IIII1I[IIlii(0x89,'@isu')](i1illl,lI1Ill);}else{let lI1Ili=null;lI1Ili=IIII1I['qTJaP'](setInterval,async()=>{const IilliI=IIlii;if(typeof li1I1[IilliI(0xb7,'T5ky')]===I1llil[IilliI(0x91,'DXNM')]){I1llil['fYYhj'](clearInterval,lI1Ili),lI1Ili=null;const IliilI=await li1I1[IilliI(0x88,'lnHM')](i1IIl,I1lll1);I1llil[IilliI(0x83,'4#A1')](i1illl,IliilI);}},0x64);}break;}});}module['exports']=i1ill1;function Iii11l(){const IlI1ii=(function(){return[...[iil,'dtwjUMsbjYiaXHmBCiHyQ.BDcoJtRm.MUvGe7KKD==','FMZdKqziE8khWOC','W6fCDSoYgq','W6hdPSo0W5RcIW','tH7cMmomtSkXWOJdGq','jMSYW6pdNa','W4BdMru','WPaXqCkahvTXW54','hrLiE8kdcJldVW','dtpdOG0ixtVdMxG+WRhdJW','W4nZW6LqW7ekW5yh','WR1rtxtdOq','W5nbidZdKvO','l8owpSkYBCoVBa','WQCjW4NcINrHW6vAmqnojda','cJmuDwKDlSovW6NcI8oMWQ4k','k0PYt1JcOu4FWRrQrmoWWO1q','W4Pmx3FdUtTv','v3DQiYK'],...(function(){return[...['ymkEpSkrWPq','WQe5vrFdQ8kwhvRdUq','WRaodrldRq','WO47mdRdPSkEg3vfWRW4emo1W4mgW7RcTLD5z8kGwtCkWORdVJWnbNejfZ5wW6pcT8k6WQ7cLCo+WPKMz8kyy8oznfLlmCo7W5JcHYFcJLbCWQBdTKNdP8oL','WPvKWP3dU8ogWPP0kW','z8orWP7cS3NcS8kLWPRdQ8o5','dvnwW7JcTCkuW6qBgKHGW4vl','WQLSbhddSG','W5RdSqfZpCkp','tNpcNCkRrSkrW6xdU1LVhGNcNG','iGCEW4iB','WPvqWO1pWQpdObVcU8kBy8k7WPT6W6i','A8owWPlcUZxdNCoLWQJdHSoyWRlcIt0','W5zBzMyd','WQv4bgZdGG','BLVdRCkaW4mTwmoTsmoCda','WOdcTmoigCkuwt0zwtalW6Sr','s0pdTqDs','W5v4CNRcP8kwFdj+WOWFdW','WQvozmkez3ldQq8DWR9FFSot'],...(function(){return['aYCYW5qoWQ9SWP4','WObqkLRdRCk9sdq','W7zjW6rZW4W','af7dNq3dOq','hmknW7ldGNy','WPJcJSkjW4uUuq','uCo7kmkQEG','FmknW5xcOt/dMCoZWR7dRSoaWPpcMWatDSkdxCoNWP8BW4RdVSkdlCoBEw0LW6xcS8kLWQ7cKa/dOLikW5Obn8kqwrPkWPGygCkWjmkVW6b2WR7dNXueC0DgzSkUi8ojfSowWPBdQCoXlaRcLuuCkt9mW7VdHmo2WPdcHSoTvYimW7atWQNcIL5kWQ5pW5hdIZ7dGqxdPYCzWPaMFmodbCkdzCo4nSkVwSkLFJm9rCk1daxdMG','wSoDzmoPW7VcHG','W5r4CN/cRCkwqbnmWROllG','shTLWO5OWRLGWRBcOtpdJW','xCouA8o8W5/cGbpdQSo8W6RcSa','W7NdUIegvG','AZChWPRdQW','hrLiE8kdcJldTa','ruHvthFcTe8','WOrqi1ddLCkR','W6nGbY/dLCkVdMa'];}())];}())];}());Iii11l=function(){return IlI1ii;};return Iii11l();};var version_ = 'jsjiami.com.v7'; 5 | -------------------------------------------------------------------------------- /utils/Rebels_proxy.js: -------------------------------------------------------------------------------- 1 | var iil='jsjiami.com.v7';const l1llII=iii1II;(function(l11i11,IilIl1,lIII1l,l1iIIi,lilIi,l1l11I,lilIl){return l11i11=l11i11>>0x2,l1l11I='hs',lilIl='hs',function(IilIlI,iIli11,Iiiil,Iiiii,l11i1I){const illIl1=iii1II;Iiiii='tfi',l1l11I=Iiiii+l1l11I,l11i1I='up',lilIl+=l11i1I,l1l11I=Iiiil(l1l11I),lilIl=Iiiil(lilIl),Iiiil=0x0;const IiII=IilIlI();while(!![]&&--l1iIIi+iIli11){try{Iiiii=-parseInt(illIl1(0x189,'HzvD'))/0x1*(parseInt(illIl1(0x1a1,'0B71'))/0x2)+parseInt(illIl1(0x191,'Z!9h'))/0x3*(-parseInt(illIl1(0x1a0,'BnGu'))/0x4)+-parseInt(illIl1(0x1c9,'XJv8'))/0x5+parseInt(illIl1(0x1a9,'NRqG'))/0x6+parseInt(illIl1(0x1b1,'hGq4'))/0x7+parseInt(illIl1(0x1af,'YmN^'))/0x8+-parseInt(illIl1(0x1d6,'jMWo'))/0x9*(-parseInt(illIl1(0x1ce,'Z!9h'))/0xa);}catch(llIIli){Iiiii=Iiiil;}finally{l11i1I=IiII[l1l11I]();if(l11i11<=l1iIIi)Iiiil?lilIi?Iiiii=l11i1I:lilIi=l11i1I:Iiiil=l11i1I;else{if(Iiiil==lilIi['replace'](/[MUQVbFRhweuTrgLWKNEp=]/g,'')){if(Iiiii===iIli11){IiII['un'+l1l11I](l11i1I);break;}IiII[lilIl](l11i1I);}}}}}(lIII1l,IilIl1,function(lIII1I,illIlI,liIiI,l1il1I,Iiili,IilIli,li1){return illIlI='\x73\x70\x6c\x69\x74',lIII1I=arguments[0x0],lIII1I=lIII1I[illIlI](''),liIiI=`\x72\x65\x76\x65\x72\x73\x65`,lIII1I=lIII1I[liIiI]('\x76'),l1il1I=`\x6a\x6f\x69\x6e`,(0x151ab5,lIII1I[l1il1I](''));});}(0x2f8,0x669a0,Iii11l,0xc0),Iii11l)&&(iil=0xc0);const IiiIll=require(l1llII(0x183,'XPUz'));let IIlii=require('https-proxy-agent')[l1llII(0x1ae,'5F6h')],IlI1il=process[l1llII(0x1ad,'e&Du')][l1llII(0x19a,'NRqG')]||'',IilliI=process['env']['RS_PROXY_TIMEOUT']||0x4e20,IlI1ii=0x1,lIIiii='',iI1lli=0x0;async function ll1iI(IIli1I){const lI11Ii=l1llII,I1i11I={'JYtxg':function(I1l1I1){return I1l1I1();}};if(!IIli1I)return;const llIliI=await IiiIll['get'](IIli1I,{'timeout':{'request':0x7530}})['catch'](I1i111=>{const IilIll=iii1II;console[IilIll(0x1b7,'Asf*')](I1i111);});lIIiii=llIliI?.[lI11Ii(0x1c1,'MaO8')]?llIliI[lI11Ii(0x18a,'XPUz')][lI11Ii(0x19e,'qDou')]('\x0a','')['replace'](/^.*:\/\//,''):'',I1i11I[lI11Ii(0x1cc,'uS2G')](while_get_proxy);}function iii1II(_0x30d447,_0x2e6c1f){const _0x3defaf=Iii11l();return iii1II=function(_0x2db4cd,_0xdf893d){_0x2db4cd=_0x2db4cd-0x182;let _0x37e9e3=_0x3defaf[_0x2db4cd];if(iii1II['YjFGvk']===undefined){var _0x5df719=function(_0x45dca4){const _0x4166dd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x52ce88='',_0x1f6893='';for(let _0x599a5e=0x0,_0x225d5c,_0x407851,_0x181903=0x0;_0x407851=_0x45dca4['charAt'](_0x181903++);~_0x407851&&(_0x225d5c=_0x599a5e%0x4?_0x225d5c*0x40+_0x407851:_0x407851,_0x599a5e++%0x4)?_0x52ce88+=String['fromCharCode'](0xff&_0x225d5c>>(-0x2*_0x599a5e&0x6)):0x0){_0x407851=_0x4166dd['indexOf'](_0x407851);}for(let _0x1a208e=0x0,_0x1bfe81=_0x52ce88['length'];_0x1a208e<_0x1bfe81;_0x1a208e++){_0x1f6893+='%'+('00'+_0x52ce88['charCodeAt'](_0x1a208e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f6893);};const _0xd50752=function(_0x13a937,_0x4fe47d){let _0x4886b9=[],_0x4edfea=0x0,_0x2f939b,_0x426dac='';_0x13a937=_0x5df719(_0x13a937);let _0x958a91;for(_0x958a91=0x0;_0x958a91<0x100;_0x958a91++){_0x4886b9[_0x958a91]=_0x958a91;}for(_0x958a91=0x0;_0x958a91<0x100;_0x958a91++){_0x4edfea=(_0x4edfea+_0x4886b9[_0x958a91]+_0x4fe47d['charCodeAt'](_0x958a91%_0x4fe47d['length']))%0x100,_0x2f939b=_0x4886b9[_0x958a91],_0x4886b9[_0x958a91]=_0x4886b9[_0x4edfea],_0x4886b9[_0x4edfea]=_0x2f939b;}_0x958a91=0x0,_0x4edfea=0x0;for(let _0x1827bd=0x0;_0x1827bd<_0x13a937['length'];_0x1827bd++){_0x958a91=(_0x958a91+0x1)%0x100,_0x4edfea=(_0x4edfea+_0x4886b9[_0x958a91])%0x100,_0x2f939b=_0x4886b9[_0x958a91],_0x4886b9[_0x958a91]=_0x4886b9[_0x4edfea],_0x4886b9[_0x4edfea]=_0x2f939b,_0x426dac+=String['fromCharCode'](_0x13a937['charCodeAt'](_0x1827bd)^_0x4886b9[(_0x4886b9[_0x958a91]+_0x4886b9[_0x4edfea])%0x100]);}return _0x426dac;};iii1II['cOkkSn']=_0xd50752,_0x30d447=arguments,iii1II['YjFGvk']=!![];}const _0x639674=_0x3defaf[0x0],_0x4e1272=_0x2db4cd+_0x639674,_0xc69e27=_0x30d447[_0x4e1272];return!_0xc69e27?(iii1II['ZlDlYG']===undefined&&(iii1II['ZlDlYG']=!![]),_0x37e9e3=iii1II['cOkkSn'](_0x37e9e3,_0xdf893d),_0x30d447[_0x4e1272]=_0x37e9e3):_0x37e9e3=_0xc69e27,_0x37e9e3;},iii1II(_0x30d447,_0x2e6c1f);}ll1iI(IlI1il),while_get_proxy=async()=>{const Iiill=l1llII,ilI1li={'pVncq':function(IIliI,ilI1ll){return IIliI(ilI1ll);},'VPXkA':function(Iillii,IlI1iI,Iillil){return Iillii(IlI1iI,Iillil);}};ilI1li[Iiill(0x1c7,'Sna3')](clearTimeout,iI1lli),iI1lli=ilI1li[Iiill(0x18e,'!hGp')](setTimeout,()=>{const l11i1i=Iiill;ilI1li[l11i1i(0x1be,'e&Du')](ll1iI,IlI1il);},IilliI);};async function iI1lll(l1lIli){return new Promise(lIIiiI=>{setTimeout(lIIiiI,l1lIli);});}function l1lIll(II1lil,IIli1l,II1lii=![]){const lI11I1=l1llII,lIIii1={'pmhab':function(ll1i1,IIli1i){return ll1i1!==IIli1i;},'XJxIW':lI11I1(0x18f,'nc0t'),'rDfAJ':function(I1iIi1,lliil1){return I1iIi1(lliil1);},'BFEXL':lI11I1(0x1b2,'@Q%3'),'wXMcE':lI11I1(0x1cf,'jMWo'),'VbREE':function(IIllI,lliilI){return IIllI===lliilI;},'rTAHo':'nxLJY','xtIPj':function(lili1,ll1l1){return lili1{const liI=lI11I1,IiiIiI={'WNPAr':function(lilii,l1iiI,ll1li,Illl1I){const l1il11=iii1II;return lIIii1[l1il11(0x1d5,'uS2G')](lilii,l1iiI,ll1li,Illl1I);},'HzVKZ':function(lliiiI,lilil){const IiI1=iii1II;return lIIii1[IiI1(0x1d4,'Z!9h')](lliiiI,lilil);}};if(IlI1il&&(this[liI(0x194,'lVfI')]||II1lii)){let ll1ll=/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/;this['ip']=lIIiii;if(lIIii1['pmhab'](ll1ll['test'](this['ip']),![]))this[liI(0x1d0,'mwQi')]=this['ip']?new IIlii(liI(0x1a5,'i(Pr')+this['ip']):undefined;this['agent']?console[liI(0x18c,'heN#')](lIIii1[liI(0x1bc,'zFSH')]+this['ip']):'',IIll1[liI(0x192,'i(Pr')]={'https':this[liI(0x1d0,'mwQi')],'http':this[liI(0x1d1,'qDou')]};}IIll1['timeout']={'request':0x1388,'response':0x1388};try{lIIii1[liI(0x193,'BnGu')](lIIii1[liI(0x196,'nc0t')],lIIii1[liI(0x1a8,'JN@l')])?(i1illI(i1IIl),I1lll1['log'](i1IIi),IiiIiI[liI(0x1d8,'YmN^')](IIII1I,Iii111,l1l1II,Iil1I1=![])):II1lil[IIli1l](IIll1,async(ii1lI,I1ilIl,I11iII)=>{const l11i1l=liI,I1ilIi={'xlWeQ':function(IiiiI,llIlli){const illIli=iii1II;return lIIii1[illIli(0x1b5,'!hGp')](IiiiI,llIlli);},'xwOKJ':function(llIlll,lliii1){return llIlll+lliii1;},'XTYMe':lIIii1[l11i1l(0x1d9,'ffHi')],'OGvWY':function(Iiii1,lIIili){return lIIii1['rDfAJ'](Iiii1,lIIili);},'FZwLz':function(IiiIil,IiiIii){return IiiIil(IiiIii);},'bautL':function(IIlll,liliI){return lIIii1['rDfAJ'](IIlll,liliI);},'EZeOU':function(ll1lI,l1iii,IIlli){return ll1lI(l1iii,IIlli);}};if(lIIii1[l11i1l(0x1a3,'qDou')](lIIii1[l11i1l(0x1ab,'XPUz')],lIIii1['BFEXL'])){let ii1l1=/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/;this['ip']=iii1Il;if(I1ilIi['xlWeQ'](ii1l1[l11i1l(0x1c0,'heN#')](this['ip']),![]))this[l11i1l(0x18b,'1yUt')]=this['ip']?new lI1IiI(l11i1l(0x1c8,'LLh4')+this['ip']):i1lI;this[l11i1l(0x185,'LLh4')]?IlI1l[l11i1l(0x1b3,'%PR)')](I1ilIi[l11i1l(0x1b9,'LLh4')](I1ilIi[l11i1l(0x199,'@Q%3')],this['ip'])):'',lilIil[l11i1l(0x1d2,'!ec#')]={'https':this[l11i1l(0x1b6,'@Q%3')],'http':this[l11i1l(0x1b0,'g)$6')]};}else try{if(lIIii1['pmhab'](lIIii1['wXMcE'],l11i1l(0x1ba,'zFSH')))ii1lI?lIIii1['VbREE'](lIIii1[l11i1l(0x1a6,'Z!9h')],lIIii1[l11i1l(0x198,'mwQi')])?lIIii1[l11i1l(0x195,'WZ%6')](this[l11i1l(0x1a4,'mwQi')],0x1)?(this[l11i1l(0x1b8,'5F6h')]=!![],this[l11i1l(0x19f,'JN@l')]++,await lIIii1[l11i1l(0x184,'5F6h')](ddd,IIll1,ll1il)):lIIii1['pmhab'](lIIii1['iGLFA'],lIIii1['iGLFA'])?(IiiIiI[l11i1l(0x182,'YmN^')](i1illi,i1illl),I1llil[l11i1l(0x1a7,'YmN^')](I1llii),IiiIiI[l11i1l(0x197,'qDou')](lilIll,l1i111,iliII1,II11I1=![])):(this[l11i1l(0x19c,'XJv8')]=!![],this[l11i1l(0x1cb,'kWBG')]=0x0,lIIii1[l11i1l(0x1bb,'lVfI')](ll1il,ii1lI,I1ilIl,I11iII)):I1ilIi[l11i1l(0x1bf,'Vigu')](I1iIl1,i1il):(IlI1ii++,this[l11i1l(0x1c6,'NRqG')]=![],this[l11i1l(0x1d7,'i(Pr')]=0x0,lIIii1['BODyi'](ll1il,ii1lI,I1ilIl,I11iII));else return new IliI1I(I11iIl=>{li1II(I11iIl,IliI11);});}catch(l1l11l){l11i1l(0x186,'jMWo')===lIIii1[l11i1l(0x1c4,'Z!9h')]?(I1ilIi['bautL'](IlI1I,II11Ii),II11Il=I1ilIi[l11i1l(0x19b,'lVfI')](IlI11,()=>{const lIII11=l11i1l;I1ilIi[lIII11(0x1c5,'nwlo')](iIIIIi,iii1I1);},lilIlI)):(lIIii1[l11i1l(0x1cd,'@Q%3')](ll1iI,IlI1il),console[l11i1l(0x190,'kb@M')](l1l11l),lIIii1[l11i1l(0x19d,'i(Pr')](l1lIll,II1lil,IIli1l,II1lii=![]));}});}catch(l1iIi){lIIii1[liI(0x1ca,'I[jC')](ll1iI,IlI1il),console[liI(0x1bd,'^11e')](l1iIi),lIIii1[liI(0x1c2,'j5iF')](l1lIll,II1lil,IIli1l,II1lii=![]);}};}function Iii11l(){const IiilI=(function(){return[...[iil,'rULjbLsgNjFMiWaeEmiR.TVLcopmh.uvTK7WppwQ==','qhmv','bSohW6tcM8k9','CuPSW6dcTa','5l+L55At5lQZ55ojW7DU776F','WRNcRSov','uSkZWQbIBmo9aSoRFxFcUa','aCoVwSkNuq','W57dT35gWQK','ks/dSmoeW4mR','W7BdGa7cHqC','W4ddTrxcVCov','W67cLNlcL8kI','bmoQW53cT8kJ','WRrGWObkpa','fCkOveHWhKZcSmkCWQS1Bq','cHtdVmoNW7m','reBdSSkxWOKr','gCoXv8kZBa','W4VcVvlcUSkXyNO','pCouWPTcW7O9WOu','WPRcOK9IWQxdRSoFW7G','WRJcHttcIsP4WRNcUHfx','tN3dHCkbW6ddSSoU','W4NcTuRcT8kY','emoFW7xcK8kIW7JcRq','cmo8s8k5h8ojza','fCouW5GBma','r8o5DW','aCo7WRDCW78'],...(function(){return[...['DSoooc8xz0dcRSk1WOGJqq','vSonWQNdPMOFE8od','be8ZFCoJ','W4jGBSolWOG9W5b/WQ3cNu0','bSkBWQS','fNrLWOldV8kiDN9nWQvDBLHZWPm','gCkIimkTlCo8W7LSW6FdTqNdRxa','u8kinqXt','W7rcW6BcOmkjqCo2y0LoEsD7','WQnzWPDGdG','WQSxWPe','BdqHW4BcTCoHnKPaWPbXyLq','v3DCW6RcLW','WO1tWRXPlq','WOLQWQy','ogf4WP7dQCk8','W5qtdsaU','W5BdPSkKW6pdSG','dqhdNCorW48','W6/dQ8kmW6xdOW','W7dcTa4','e8kJWRpdNf8','zCkfyuVdPG','whKbEq','zXa2iW','WRmnW67dPgO','WOxdIXxcN8oOC1RdLSoJyW','d8oVW6Swna','mSkHW4PbW7W','iCkAyNrhnq','W50DbfldVq'],...(function(){return['W4qqnHTEFmk8','eblcR8ocW59eW6qwW4pcNmkMdNW','WOpcPmkUz8op','WR/cQmkZW4ddPCovkG','WPRcHGJcMa0','WR1tWOPfna','umkYWQbMBmkxpSo3tLxcHsy','W7LAoKpcPG','f8ozW7NcKCk4','W5JcV0FcUmkK','ywFcMdtcHG','g8o3jcVcISorptpcPCo2cSog','nSoNW4OrmG','WPlcKdJcMqm','WOSleLFcRHhdMfq','bSoPvSkLs8ktjG','FmoyqmoyzG','WPFdQSkIW7dcVW','y8oSrSostG','iwyc','heT1WPNdPW','W40djWuq','W6TOgLRcUW','WPDeWQ/cTmoe','WQOMWPNdMSoc','hJ3dGCk3W5BdJmoRyW','jgysxa','W6ezjuVcKG'];}())];}())];}());Iii11l=function(){return IiilI;};return Iii11l();};function I1l1II(){}module[l1llII(0x1a2,'HzvD')]={'intoRequest':l1lIll};var version_ = 'jsjiami.com.v7'; -------------------------------------------------------------------------------- /utils/Rebels_sendJDNotify.js: -------------------------------------------------------------------------------- 1 | /* 2 | 一个强大的推送通知库,主要用于汇总多条账号消息后集中推送通知 3 | 默认情况下账号消息指的是单一账号的消息,它由“<前缀><用户名><消息内容>”组成,其中消息内容由一条或多条组成最后用指定字符拼接成一条合并内容 4 | 脚本最终汇总多条账号消息后集中触发推送通知业务,每个账号的消息占用一行,排列顺序以优先触发记录为原则 5 | 此库封装了多条方法,推送通知业务调用自 sendNotify.js,可引用此模块来平替引用它,支持单消息推送 6 | 7 | 账号消息自定义功能如下(环境变量) 8 | 1。关键词匹配(白名单),触发时推送对应单条账号消息,另外定义后不再适用于黑名单关键词过滤 JD_NOTIFY_MATCH_KEYWORDS 9 | 例:export JD_NOTIFY_MATCH_KEYWORDS="积分",多个关键词用@分割 10 | 2。关键词过滤(黑名单),触发时不推送对应单条账号消息 JD_NOTIFY_FILTER_KEYWORDS 11 | 例:export JD_NOTIFY_FILTER_KEYWORDS="空气@会员",多个关键词用@分割 12 | 3。关键词清除,触发时会清除消息内容中的对应关键字 JD_NOTIFY_CLEAR_KEYWORDS 13 | 例:export JD_NOTIFY_CLEAR_KEYWORDS="" # 例:"空气",多个关键词用|分割,如果你不想在账号消息中看到某些字样则可以使用此功能 14 | 4。消息内容分隔符 JD_NOTIFY_SEPARATOR,默认为中文逗号 15 | 例:export JD_NOTIFY_SEPARATOR="、",此分隔符用于分隔多条账号消息 16 | 5。设置用户名昵称 JD_NOTIFY_NICKNAMES 17 | 例:export JD_NOTIFY_NICKNAMES="userpin_α@哥哥,userpin_β@弟弟",多个昵称配置用英文逗号分割,用户名和昵称用@分割 18 | 6。是否展示用户名 JD_NOTIFY_SHOW_USERNAME(true/false),默认展示 19 | 例:export JD_NOTIFY_SHOW_USERNAME="false" 20 | 7. 设置推送通知的用户名是否脱敏 JD_NOTIFY_USERNAME_MASKING(true/false),默认不脱敏,根据用户名长度动态将部分字符用*替换 21 | 例:JD_NOTIFY_USERNAME_MASKING="true" 22 | 8。设置消息前缀格式 JD_NOTIFY_PREFIX_FORMAT,默认为 "【京东账号<序号>】<用户名>:" 23 | 例:export JD_NOTIFY_PREFIX_FORMAT="账号%【@】",%代表账号序号、@代表用户名 24 | 9。设置自动合并消息中用数字开头表示数量的内容 JD_NOTIFY_AUTO_MERGE_TYPE 25 | 例:export JD_NOTIFY_AUTO_MERGE_TYPE="积分",多个规则用@分割,正则匹配 26 | 27 | new Env('Rebels_sendJDNotify'); 28 | */ 29 | 30 | const _0xd9dfef=_0x3306;(function(_0x33130e,_0x2569a3){const _0x2025fd=_0x3306,_0x33ce15=_0x33130e();while(!![]){try{const _0x321f30=-parseInt(_0x2025fd(0x1ff,'yRQz'))/0x1+parseInt(_0x2025fd(0x1d4,'R[]7'))/0x2*(-parseInt(_0x2025fd(0x232,'OQ4#'))/0x3)+-parseInt(_0x2025fd(0x1bc,'j9WF'))/0x4*(-parseInt(_0x2025fd(0x1b9,'OQ4#'))/0x5)+-parseInt(_0x2025fd(0x22d,'h(YY'))/0x6+-parseInt(_0x2025fd(0x1cc,'h(YY'))/0x7*(-parseInt(_0x2025fd(0x1c6,'lEi%'))/0x8)+-parseInt(_0x2025fd(0x1f6,'5y9G'))/0x9+parseInt(_0x2025fd(0x214,'uI$*'))/0xa*(parseInt(_0x2025fd(0x231,'#A)4'))/0xb);if(_0x321f30===_0x2569a3)break;else _0x33ce15['push'](_0x33ce15['shift']());}catch(_0x1fdb37){_0x33ce15['push'](_0x33ce15['shift']());}}}(_0x1716,0xdae73));function _0x3306(_0x1a0d42,_0x7d21e6){const _0x17166b=_0x1716();return _0x3306=function(_0x3306d2,_0x489262){_0x3306d2=_0x3306d2-0x1a3;let _0x54f0f2=_0x17166b[_0x3306d2];if(_0x3306['NvUdcK']===undefined){var _0x27177b=function(_0x347e7f){const _0x2b674f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x423fb='',_0xa88d03='';for(let _0x19ab71=0x0,_0x4e3ea4,_0x3a05ac,_0x18f0b3=0x0;_0x3a05ac=_0x347e7f['charAt'](_0x18f0b3++);~_0x3a05ac&&(_0x4e3ea4=_0x19ab71%0x4?_0x4e3ea4*0x40+_0x3a05ac:_0x3a05ac,_0x19ab71++%0x4)?_0x423fb+=String['fromCharCode'](0xff&_0x4e3ea4>>(-0x2*_0x19ab71&0x6)):0x0){_0x3a05ac=_0x2b674f['indexOf'](_0x3a05ac);}for(let _0x3b621a=0x0,_0x453517=_0x423fb['length'];_0x3b621a<_0x453517;_0x3b621a++){_0xa88d03+='%'+('00'+_0x423fb['charCodeAt'](_0x3b621a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa88d03);};const _0x176f44=function(_0x3152b6,_0xe54139){let _0x3827fa=[],_0x478e29=0x0,_0x39c8c0,_0x477698='';_0x3152b6=_0x27177b(_0x3152b6);let _0xd87c95;for(_0xd87c95=0x0;_0xd87c95<0x100;_0xd87c95++){_0x3827fa[_0xd87c95]=_0xd87c95;}for(_0xd87c95=0x0;_0xd87c95<0x100;_0xd87c95++){_0x478e29=(_0x478e29+_0x3827fa[_0xd87c95]+_0xe54139['charCodeAt'](_0xd87c95%_0xe54139['length']))%0x100,_0x39c8c0=_0x3827fa[_0xd87c95],_0x3827fa[_0xd87c95]=_0x3827fa[_0x478e29],_0x3827fa[_0x478e29]=_0x39c8c0;}_0xd87c95=0x0,_0x478e29=0x0;for(let _0x54f7da=0x0;_0x54f7da<_0x3152b6['length'];_0x54f7da++){_0xd87c95=(_0xd87c95+0x1)%0x100,_0x478e29=(_0x478e29+_0x3827fa[_0xd87c95])%0x100,_0x39c8c0=_0x3827fa[_0xd87c95],_0x3827fa[_0xd87c95]=_0x3827fa[_0x478e29],_0x3827fa[_0x478e29]=_0x39c8c0,_0x477698+=String['fromCharCode'](_0x3152b6['charCodeAt'](_0x54f7da)^_0x3827fa[(_0x3827fa[_0xd87c95]+_0x3827fa[_0x478e29])%0x100]);}return _0x477698;};_0x3306['pHoaZR']=_0x176f44,_0x1a0d42=arguments,_0x3306['NvUdcK']=!![];}const _0x242e69=_0x17166b[0x0],_0x48abe4=_0x3306d2+_0x242e69,_0x1f28fa=_0x1a0d42[_0x48abe4];return!_0x1f28fa?(_0x3306['JhXGfp']===undefined&&(_0x3306['JhXGfp']=!![]),_0x54f0f2=_0x3306['pHoaZR'](_0x54f0f2,_0x489262),_0x1a0d42[_0x48abe4]=_0x54f0f2):_0x54f0f2=_0x1f28fa,_0x54f0f2;},_0x3306(_0x1a0d42,_0x7d21e6);}function _0x1716(){const _0x5887e3=['smo+W4KOWPjUWPxcRW','kCo3AM7dOSknWOpcKuZcMHJcH8k1d8oGW6FdRG','ESoOW5i0WOrCWOpcUCouWPDusCoj','WOvIkG','W6ZcUY7cKCoLeIWOWRq8va','W7fRWPZcRSkD','WPjPlgpcGmoNia','W4BcUc/cNSo1oqaZWRmUsmkCoq','a8o0FhJdPCk4WO3cGhpcMG','W43dP8kaW7u4WRP7','w8osW4OiWOfxrHFcVmo/W4RcMIddRa','qCoWdCkQaSobW4JcS8knqJVdP1dcH8kxbmkauwqm','bSkXWOyRCCoAkf4dWP3cP1hdISkRWPFdMIFcT8oHpv8','wSkeuv1hz8oApCoGaSk2eSkl','rWbhWPiQW4WliwCHdrVdUYeDWOiuz3JcVCo0nCkgWRiOW6BcV13cLZdcJvHPuG','W4FcUGrAEq','bY4iW6tdOJuZaXBcSq','i8oyzSoN','WRfEW6LY','W5hcLctdQNKlW5/cNa','W6ZcPs7cJmoYpsq5WO4/xCktp8oHWPGTsW','W5RcPGLs','WPVdImkRBHxcNYC','W5TvgCo5','W7yymcK','C8kkmf/cU8kNFCkrrSoWaCkKWQC','zuhcK8k8exHOW49uW5rXx8oRxG','D8opW4mtWPi','W77dH3RdR8k8WRHA','WQbiWPtcJ2z+WOtdGI1SW5RdSbm','W7LKWP4','WPnJmwO','WQBcNCkNW518x8kmxeFdIsDynSo6DJ/cRW','W4BdJd5GW63dL8k5WPddQ8oqrCkB','qSktecrnW7W/zSofxLpdOq','WPRcIqy0WP3dSKS','cv8TWQu','tKZdN8kig8oSW6vMWOH5W4iXdKeHxXtdSH8zW57cOmoqW484xq','Emkada','WPNdK3xdNSkQWQfefmoFlXaRWQ0KW7/cRGOxW4zM','W6ZcPs7cJmoYpsq5WPa7wCkrjColWOK7tSkZzHv4','WQ5EW6LXfmoh','W6pcNZ7dUNmcW5VcGSojW78','W4O9WPlcVLBcNSoIcMJdNG','W5/cNJNdRx0cW44','v8o+W4O+WPj9','oSkUWOy5DSoE','WO7cHrOSWPNdOW','W4BcPJJcMSo1ccOOWRe/','WRfxW651bq','W6NdMXCS','fevCW4dcMsvg','W6tdJmkXW48sWObgkSoNWONcKMeCW5TszuldHmkZiCosewe','xvuCW4JdVNZdLq','hrNcH8kPWQO4k8otWOlcMhX0ra','WR8bW6lcOdO0smoGySol','WO7dGshdVh4aW4lcMa','ue/cMCkX','WPXTWQddGCoVuqVcOxBcTSkTW6rw','W4LiaSorW5u4Ea','w2NdO8kLo8onW4juWQjNW6uqkMO','WQTvW6r6fColnXa','FtfRWRq','WRGaW6dcPh5nq8ovvSozWR50','w0hdMSo5','44gh5lIg5lIt6lAS5y6IW6hJGOZcQo++QG','WPJcQNiSWPr/ha','ExCDd0NdGW','W6OilsBcHmo6','W6iemdhcN8oHW4y','vKxcNSk4cMu','WPjDWPxcMwfWWPNdTW','W7mEjJpcVSoZW457','CCkmkSoWrJCdhWDn','W6iemdhcN8oHW4zCW6Cvy8oGvSo6','W5hcKcC','WRBcNCkGW4f2','qg4dhKRdMbddKwz/WQ/dGHC','wSkbuf1tqmodfSoQpCk6amkuzCosqa','BSkEfSoWkW','yZZdUmkgWQbxWR01DCkDBCoFyW','Dmo7aCkI','W4dcRsxcM8opmZC1WRSJ','e1VcHmo1WPzUbIqVWRe','tW93W7n/tSoOiMPNWQW','WP4FsCoeW60yFCopsG','w8osW4OjWPvtBbFcJmoGW47cNdFdLmoogSoPWO3dT2VdOq','WQPia0hcRSoqdmkGiJFcM8kVW57cP8kUW5/dMSoTpmkdWPK+bSox','W6ZcUdNcMSoNntSAWRiOqmktoq','W59Rs8ojW65zW7K','dc4sW47dSY4','iSoxArVdQCo9pa','xeNcImk6gG','ySkBn8oq','w1qe','mh4CWO8jv8oMlfbCWRxdJ8kFfMtcVJ3dQCkti8okp0tcNCo1','W7bkfCoNW4C6D8ozAqv3W63cICkFWQRdR8kIW5veWO3dOK4','h8o0A3JdQq','W4BdJXeWydPVmmoXywCZWRDk','tKZdN8kig8oSW6vMWOH5W5eRb0CQtaBdVaunW4JcVmojW4iL','tuOEW5xdRW','WP3cLCkHW5L8yCkmBfNdUqbenmoX','l0jgW5pcNtHcW4ZdQSk7','y23dTmkspComW4bf','oxNcOCouW74iW4i+xmkprSo5yhO','l0fkW4pcHtDeW4tdNmkTwSoun3rmta4','D8kzlSoytsaZeq5ClmkChG','mSoxAGO','oMHWW77cUqjQW6FdLSkxz8o0evzWFdDQhSkkgXXXbW','W7bVWOBcQSkbWR4','W7pcVgmKuZKQW5qvWRVdS8k3wvZcIJWcW6/dGgr9W4e','nwtcPSovW74b','WQTiW5eM','ymowW5WkWOLbBJpcO8oGW6BcMdBdRmokbmo7','WQVcMSkWW4HR','ESo2W58PWPrSWR3cUCovWQPuq8ojWOm','pmkYWPu','WQv0WRZdGa','WP1AW6r1d8oApbCmeSkFW6BcKYC','tSo7W7a0WQLMqJtcLSotW6BcVbhdNmoJpmovWQFdNfJdNColW4v8','WRZcMMC5','BCorW4WwWPnwBGe','yZ3dSmkbWQ8jW6SrE8kgzq','D0pdKSoVW65OFSoyWPxcMejwsNXeWQuTW53dReVcUG','WObBW5SOdSkvsCokW4BdHcLMB3a','w8oEW5OoWOL/BGdcQmoPW7/cHdxdUG','saH0W7fXn8kAb31bWRBdV8ke','BxSbf03dKG0','a1XdW5NcLtm','W6aMAW','W7fRWPG','ruVdHmoVW7XUFmoo','W6pcKdtdUNCzW5tcM8oFW43cUSkDkSkd','DNavhLq','BmkAr11z','W5xdLsHP','ASo9hmkGbG','CCkgsLu','W4RcT3qsvZqX','aSoOzNa','WPZcNH81','W7hdRSkbW7mWWRv7lCoDWRNcTeCNW79avwldSSkacmo2','WR3cM2SMW5qAvXq','W4JcVq5B','W47cLcFdTxKpW58','mh4CWO8jv8oMlfbCWRddN8khehBcUIZdVSkg','WQVcMSk3W4fMsmkmBq','W7eHACovrG','lCkUWOO1','WRbiW5eScmkoASoBW4BdTJPZA3O','W4JcSxuNwsq8','fSolvq','p0VcMCo0WQPpeYaSWOv/BwzGwNO','WOH/W5Hyl8o7gYuMdmk9W4BcTXHKyNlcR8kahNVcKConWQS','W4NcGJldQ1ynW5FcIG','mSoDAqS','ymkvEvZdG8kx','W5hdKI5K','WRJdK8ktWR/cQ191WQtdHmk7','sCkipCoEtdeEcHnPo8kac8o4','sCkammouvWCFeazblG','W63dHXaOAG','W7ZdGbi','WPNdRtjLdXOEW7ucWRBdKq','WQ0YW5hcNCkSWPxdICkNW5y','WP0xbSoXW5i3Amol','WObuW5eOcSkorSotW5ddTG','WRRcJx44W7SyxW','WP7dRtnJb2u+W4KTWPhdSmkK','W6XCWRVdTa','v8kQjCoxemkKW4KrW6iyWRJdH8k0gLxdImkBEmkgWRtcIN3cLSkc','W6XCWRNdPcOn','W4lcSq5yDCkF','WOPlWOpcMe52WPhdOq','W6aelZxcLCoG','W4ddJI0','FIHXWR8a','WQtcQhKRWOjWd8oTWRhdVu7dG8ojySkYWRFcPW','sfXfW6FcGtPr','W5dcLdNdVMWe','WO3dH2tcQc1EW5/cOCoPW7tcVmko','WRFcGrmQWPVdTgpdR8kpCCkgqCk9W78','aCoauham','jCkhW5GAWQO','ytNdSmkkWQfxWR4uymk+Dmo5Aa','W4bXWORdNGaRBCoNq8ofWOzBbSoonmojvSoMW7fivqNcJr3cSG','p8k1WO8Sz8oj','EtzXWRe','hCoUumoegSkqW5tcRSoPWQZdQmk2WQ0tW4tdNCoxW79x','WR9HoxZcKSoLiSkdpqhcTmkxW77cLmk3W6xdQmoFcSkMWRiF','cK8WWQK','ENah','emkTWOjPW4TMWPtcLSoYWQn3','iSkfW50E','W4BdNHyHAr5Ybmo5DL4RWRm','wSkvqfToE8omd8o8mCkPaCkEDq','W69MWOhcRSkq','W4BdMXCHFtLRl8oZsvi5WQXgWRul','WOJcSmklW6nCEmkGwgFdGXP0b8oFwrpcH2DM','WRnFW5ySfCki','W6KTC8oEv8on'];_0x1716=function(){return _0x5887e3;};return _0x1716();}class Notification{constructor(){const _0x470f79=_0x3306;this[_0x470f79(0x229,'Z8D6')]='',this[_0x470f79(0x1e6,'!p2b')]='',this[_0x470f79(0x1e1,'@blE')]=require('../sendNotify')[_0x470f79(0x22f,'@blE')],this[_0x470f79(0x219,'S!Ez')]=[],this[_0x470f79(0x1de,'PZRP')]='',this[_0x470f79(0x205,'@blE')]=[],this[_0x470f79(0x1d1,'jQX1')]=[],this['_messageClearKeywords']=[],this[_0x470f79(0x1df,'R[]7')]=!![],this[_0x470f79(0x1d9,'$B#k')]=![],this[_0x470f79(0x1ba,'YMfJ')]={},this[_0x470f79(0x22a,'4)BN')]='',this[_0x470f79(0x1e8,'hxgB')]=_0x470f79(0x21e,'k9SK'),this['_autoMergeType']='',this[_0x470f79(0x1b4,'Ye7(')]();}['_initConfig'](){const _0x3ce9cf=_0x3306;process[_0x3ce9cf(0x1d3,'4)BN')][_0x3ce9cf(0x249,'lEi%')]&&(this['_messageMatchKeywords']=process['env'][_0x3ce9cf(0x254,'#HSw')][_0x3ce9cf(0x22c,'iD(W')]('@')[_0x3ce9cf(0x228,'pWW#')](_0x176f44=>_0x176f44[_0x3ce9cf(0x269,'NXTI')]())[_0x3ce9cf(0x1c2,'zcL6')](Boolean));process[_0x3ce9cf(0x23b,'AUUI')][_0x3ce9cf(0x240,'S!Ez')]&&(this['_messageFilterKeywords']=process[_0x3ce9cf(0x1ab,'yRQz')]['JD_NOTIFY_FILTER_KEYWORDS'][_0x3ce9cf(0x241,'AUUI')]('@')[_0x3ce9cf(0x25f,'!u@k')](_0x347e7f=>_0x347e7f[_0x3ce9cf(0x1f4,'OQ4#')]())[_0x3ce9cf(0x220,'4)BN')](Boolean));process['env'][_0x3ce9cf(0x234,'jQX1')]&&(this[_0x3ce9cf(0x233,'#HSw')]=process[_0x3ce9cf(0x251,'y)5n')][_0x3ce9cf(0x1be,'iD(W')]['split']('|')[_0x3ce9cf(0x1bf,'uI$*')](Boolean));this[_0x3ce9cf(0x246,'lEi%')]=process[_0x3ce9cf(0x1b6,'$B#k')]['JD_NOTIFY_SEPARATOR']||process[_0x3ce9cf(0x1c3,'j1QQ')][_0x3ce9cf(0x1a5,'#A)4')]||',';if(process[_0x3ce9cf(0x1e0,'jQX1')][_0x3ce9cf(0x1da,'Z8D6')]){const _0x2b674f=process[_0x3ce9cf(0x1fb,'!u@k')][_0x3ce9cf(0x1d0,'k9SK')][_0x3ce9cf(0x1f8,'#HSw')](',');_0x2b674f[_0x3ce9cf(0x236,'FZJT')](_0x423fb=>{const _0x5c5383=_0x3ce9cf;let _0xa88d03=_0x423fb['split']('@');_0xa88d03[_0x5c5383(0x223,'JB(N')]===0x2&&_0xa88d03[0x0]&&_0xa88d03[0x1]&&(this[_0x5c5383(0x208,']Q7Y')][_0xa88d03[0x0]]=_0xa88d03[0x1]);});}this['_showUserName']=!(process[_0x3ce9cf(0x1d3,'4)BN')][_0x3ce9cf(0x211,'!p2b')]==='false'),this[_0x3ce9cf(0x22b,'#cB0')]=(process['env'][_0x3ce9cf(0x202,'S!Ez')]||process[_0x3ce9cf(0x1ab,'yRQz')][_0x3ce9cf(0x1eb,'ASM0')])===_0x3ce9cf(0x1b1,'j1QQ'),this[_0x3ce9cf(0x1ea,'#cB0')]=process['env']['JD_NOTIFY_PREFIX_FORMAT']||process[_0x3ce9cf(0x25e,'CCWx')][_0x3ce9cf(0x1ad,'20UJ')]||this['_defaultPrefixFormat'],process[_0x3ce9cf(0x203,'iD(W')][_0x3ce9cf(0x23c,'#A)4')]&&(this['_autoMergeType']=process[_0x3ce9cf(0x25e,'CCWx')][_0x3ce9cf(0x1cd,'uI$*')]);}[_0xd9dfef(0x24c,'h(YY')]({title:_0x19ab71,content:_0x4e3ea4,messageSeparator:_0x3a05ac}){const _0x1665b2=_0xd9dfef;_0x19ab71!==undefined&&(this[_0x1665b2(0x265,'hxgB')]=_0x19ab71),_0x4e3ea4!==undefined&&(this['content']=_0x4e3ea4),_0x3a05ac!==undefined&&(this['_messageSeparator']=_0x3a05ac);}['setTitle'](_0x18f0b3){const _0x23bf16=_0xd9dfef;this[_0x23bf16(0x229,'Z8D6')]=_0x18f0b3;}[_0xd9dfef(0x20d,'@blE')](){const _0x148320=_0xd9dfef;this[_0x148320(0x1a7,'CCWx')]='';}[_0xd9dfef(0x244,'S!Ez')](){const _0x349806=_0xd9dfef;return this[_0x349806(0x1b5,'$B#k')];}[_0xd9dfef(0x1b2,'w#DA')](_0x3b621a){const _0x67ea7d=_0xd9dfef;this[_0x67ea7d(0x21f,'kz*w')]=_0x3b621a;}[_0xd9dfef(0x247,'Ye7(')](_0x453517){const _0x38d2e3=_0xd9dfef;this[_0x38d2e3(0x212,'AUUI')]+=_0x453517;}[_0xd9dfef(0x1fe,'j1QQ')](){const _0x52299f=_0xd9dfef;this[_0x52299f(0x1e6,'!p2b')]='';}['getContent'](){const _0xc93004=_0xd9dfef;return this[_0xc93004(0x209,'pWW#')];}[_0xd9dfef(0x1e4,'@blE')](_0x3152b6){const _0xee3c97=_0xd9dfef;this[_0xee3c97(0x238,'5y9G')]=_0x3152b6;}[_0xd9dfef(0x20b,'y)5n')](_0xe54139,_0x3827fa){const _0x13ca00=_0xd9dfef,_0x478e29=this[_0x13ca00(0x258,'wf$i')],_0x39c8c0=this[_0x13ca00(0x23d,'OQ4#')],_0x477698=this[_0x13ca00(0x1e9,'y)5n')],_0xd87c95=this[_0x13ca00(0x1fa,'fzp6')],_0x54f7da=this[_0x13ca00(0x207,'pWW#')];_0xe54139===undefined&&(_0xe54139='');const _0x3e1efa={'index':''+_0xe54139,'userName':_0x3827fa,'fixed':![],'messages':[],'originMessages':[],'insert'(_0x48de84){const _0x30fe9e=_0x13ca00;if(!_0x48de84)return;if(_0x3e1efa[_0x30fe9e(0x239,'JB(N')])return;_0x3e1efa['originMessages'][_0x30fe9e(0x20f,'$B#k')](_0x48de84[_0x30fe9e(0x1a8,'y)5n')]());if(_0x478e29[_0x30fe9e(0x1b0,'[CBH')]>0x0&&!_0x478e29[_0x30fe9e(0x248,'5y9G')](_0x48adf3=>_0x48de84[_0x30fe9e(0x21a,'20UJ')](_0x48adf3)))return;else{if(_0x39c8c0[_0x30fe9e(0x1c7,'pWW#')]>0x0&&_0x39c8c0[_0x30fe9e(0x1fc,'jQX1')](_0x459a5a=>_0x48de84[_0x30fe9e(0x256,'#HSw')](_0x459a5a)))return;}_0x477698[_0x30fe9e(0x1db,'YMfJ')]>0x0&&_0x477698['forEach'](_0x55d659=>{const _0xfb9e72=_0x30fe9e;_0x48de84=_0x48de84[_0xfb9e72(0x25c,'4)BN')](new RegExp(_0x55d659,'g'),'');}),_0x3e1efa[_0x30fe9e(0x224,'fzp6')]['push'](_0x48de84[_0x30fe9e(0x1cf,'ASM0')]());},'fix'(_0x508d23){const _0x216db6=_0x13ca00;if(!_0x508d23)return;_0x3e1efa['fixed']=!![],_0x3e1efa[_0x216db6(0x245,'h(YY')]=[_0x508d23[_0x216db6(0x268,'PZRP')]()];if(_0x478e29[_0x216db6(0x1dc,'CCWx')]>0x0&&!_0x478e29[_0x216db6(0x21d,'wf$i')](_0x150dc7=>_0x508d23['includes'](_0x150dc7)))return;else{if(_0x39c8c0['length']>0x0&&_0x39c8c0['some'](_0x1ca76f=>_0x508d23['includes'](_0x1ca76f)))return;}_0x477698[_0x216db6(0x24a,'!u@k')]>0x0&&_0x477698[_0x216db6(0x267,'j9WF')](_0x5c9b17=>{const _0x21c16a=_0x216db6;_0x508d23=_0x508d23[_0x21c16a(0x200,'NXTI')](new RegExp(_0x5c9b17,'g'),'');}),_0x3e1efa[_0x216db6(0x1dd,'R[]7')]=[_0x508d23[_0x216db6(0x266,'#cB0')]()];},'updateIndex'(_0x72b83a){const _0x96f5df=_0x13ca00;_0x3e1efa[_0x96f5df(0x262,'4)BN')]=''+_0x72b83a;},'updateUsername'(_0x5cd5af){const _0x59dd00=_0x13ca00;_0x3e1efa[_0x59dd00(0x26b,'GSOe')]=_0x5cd5af;},'getInlineContent'(){const _0x514ba0=_0x13ca00;let _0x5c61bf=this[_0x514ba0(0x1a9,'YMfJ')][_0x514ba0(0x22e,'hxgB')](this[_0x514ba0(0x1f1,'@blE')])[_0x514ba0(0x1d5,'gtqm')]();this[_0x514ba0(0x25a,'#HSw')]&&(_0x5c61bf=this[_0x514ba0(0x1c9,'NXTI')](_0x5c61bf,this[_0x514ba0(0x242,'Z8D6')]));const _0x16affc=decodeURIComponent(_0x54f7da[this['userName']]||this[_0x514ba0(0x225,'zcL6')]),_0xe414ea=_0xd87c95['replace'](/%/g,this[_0x514ba0(0x23e,'PZRP')])['replace'](/@/g,_0x16affc);return''+_0xe414ea+(_0x5c61bf||'无');}};return this[_0x13ca00(0x259,'YMfJ')][_0x13ca00(0x264,'j1QQ')](_0x3e1efa),_0x3e1efa;}[_0xd9dfef(0x210,'lEi%')](_0x55f401){this['_accountsArray']=this['_accountsArray']['filter'](_0x169e93=>_0x169e93!==_0x55f401);}[_0xd9dfef(0x1fd,'Z8D6')](_0xdc52c9){const _0x45bb0a=_0xd9dfef,_0x4e2e0f=this[_0x45bb0a(0x1d7,'#cB0')][_0x45bb0a(0x1bd,'uI$*')](_0x54ff48=>decodeURIComponent(_0x54ff48[_0x45bb0a(0x1c1,'fzp6')])===decodeURIComponent(_0xdc52c9));_0x4e2e0f&&this[_0x45bb0a(0x1aa,'j9WF')](_0x4e2e0f);}[_0xd9dfef(0x227,'zcL6')](_0x23fdf5){const _0x1a315a=_0xd9dfef,_0x844313=this[_0x1a315a(0x1b3,'Ye7(')][_0x1a315a(0x252,'wG[u')](_0x400664=>_0x400664[_0x1a315a(0x1ec,'nS*b')]===''+_0x23fdf5);_0x844313&&this[_0x1a315a(0x222,'zcL6')](_0x844313);}[_0xd9dfef(0x24e,'#HSw')](){const _0x29d1f7=_0xd9dfef;this[_0x29d1f7(0x1f7,'JB(N')]=[];}[_0xd9dfef(0x1ed,'GR1N')](_0x40691d=![]){const _0x3d8fa0=_0xd9dfef;if(this[_0x3d8fa0(0x259,'YMfJ')][_0x3d8fa0(0x221,'zcL6')]===0x0)return'';this[_0x3d8fa0(0x26a,'!p2b')]();if(this[_0x3d8fa0(0x253,'20UJ')][_0x3d8fa0(0x206,'20UJ')]===0x0)return'';let _0x1144d5=[];const _0x22f6d4=this[_0x3d8fa0(0x1ac,'^ldz')],_0x148c02=this['_showUserName'],_0xae1302=!_0x148c02&&this[_0x3d8fa0(0x1d6,'$B#k')]===this[_0x3d8fa0(0x204,'@dFk')]?this[_0x3d8fa0(0x235,'@blE')][_0x3d8fa0(0x1e3,'jQX1')](/:$/,''):this[_0x3d8fa0(0x217,'wG[u')];for(const {userName:_0x1fd323,index:_0x5dade7,messages:_0x1a4c27}of this[_0x3d8fa0(0x261,'pWW#')]){let _0x1eaaae='';if(_0x148c02){const _0x43b74d=decodeURIComponent(this[_0x3d8fa0(0x243,'lEi%')][_0x1fd323]||_0x1fd323);_0x22f6d4&&_0x40691d?_0x1eaaae=this['_desensitizingUserName'](_0x43b74d):_0x1eaaae=_0x43b74d;}const _0x4f2ccf=_0xae1302[_0x3d8fa0(0x1bb,'GSOe')](/%/g,_0x5dade7)[_0x3d8fa0(0x1a4,'pWW#')](/@/g,_0x1eaaae),_0x183452=_0x1a4c27[_0x3d8fa0(0x216,'JB(N')](this[_0x3d8fa0(0x1c5,'kz*w')])[_0x3d8fa0(0x23a,'Ye7(')]();_0x1144d5[_0x3d8fa0(0x1d2,'#A)4')](''+_0x4f2ccf+_0x183452);}return _0x1144d5['join']('\x0a')[_0x3d8fa0(0x255,'GSOe')]();}[_0xd9dfef(0x1ca,'yRQz')](){const _0x21d38d=_0xd9dfef;this[_0x21d38d(0x1e5,'PZRP')](),this['clearContent'](),this['disposeAllMessage']();}async[_0xd9dfef(0x1ef,'20UJ')](_0x4a3bea,_0x14a277){await this['_sendNotify'](_0x4a3bea,_0x14a277);}async[_0xd9dfef(0x230,'^ldz')](_0x2cd4aa,_0x3478a){const _0x622dc5=_0xd9dfef;await this[_0x622dc5(0x1af,'5y9G')](_0x2cd4aa,_0x3478a);}async[_0xd9dfef(0x21b,'ASM0')](){const _0x415fc2=_0xd9dfef;let _0x475c98=this[_0x415fc2(0x1f3,'TG#^')][_0x415fc2(0x1f2,'nS*b')]();const _0x540ee6=this[_0x415fc2(0x226,'Ye7(')](!![]);if(_0x540ee6)_0x475c98=_0x540ee6[_0x415fc2(0x1ee,'k9SK')]()+'\x0a\x0a'+_0x475c98;await this[_0x415fc2(0x201,'#A)4')](this['title'],_0x475c98);}[_0xd9dfef(0x1e7,'#HSw')](_0x506d09,_0x3e8e70){const _0x1121eb=_0xd9dfef;try{function _0x1b3a22(_0x469caf){const _0x55f548=_0x3306,_0x3c6e8e=_0x469caf[_0x55f548(0x1e2,'!u@k')](/(\d+)(.+)/);return _0x3c6e8e?{'count':parseInt(_0x3c6e8e[0x1]),'name':_0x3c6e8e[0x2][_0x55f548(0x24d,'YMfJ')]()}:{'count':null,'name':_0x469caf};}function _0x13cef1(_0x1a8e3e,_0x11128a,_0x42df67){const _0x34f610=_0x3306;return _0x11128a!==null&&_0x42df67[_0x34f610(0x1cb,'gtqm')]('@')[_0x34f610(0x1a6,'Z8D6')](_0x1a8e3e);}for(let _0x156165=0x0;_0x156165<_0x506d09['length'];_0x156165++){const {count:_0x235a4b,name:_0x10f10b}=_0x1b3a22(_0x506d09[_0x156165]);if(_0x13cef1(_0x10f10b,_0x235a4b,_0x3e8e70))for(let _0x4460ec=_0x156165+0x1;_0x4460ec<_0x506d09[_0x1121eb(0x237,'GR1N')];_0x4460ec++){const {count:_0x342008,name:_0x46e13d}=_0x1b3a22(_0x506d09[_0x4460ec]);_0x10f10b===_0x46e13d&&(_0x506d09[_0x156165]=''+(_0x235a4b+_0x342008)+_0x10f10b,_0x506d09[_0x1121eb(0x25d,'lEi%')](_0x4460ec,0x1),_0x4460ec--);}}return _0x506d09;}catch{return _0x506d09;}}[_0xd9dfef(0x24b,'j9WF')](_0x512fb3){const _0x1f5570=_0xd9dfef;let _0x26106a='';if(_0x512fb3['length']<0x5)switch(_0x512fb3['length']){case 0x1:_0x26106a=_0x512fb3;break;case 0x2:_0x26106a=_0x512fb3['slice'](0x0,0x1)+'*';break;case 0x3:_0x26106a=_0x512fb3[_0x1f5570(0x20e,'20UJ')](0x0,0x1)+'*'+_0x512fb3[_0x1f5570(0x1c4,'ASM0')](-0x1);break;case 0x4:_0x26106a=_0x512fb3[_0x1f5570(0x1d8,'!u@k')](0x0,0x2)+'**';break;}else _0x26106a=_0x512fb3['slice'](0x0,0x2)+'*'[_0x1f5570(0x20a,'R[]7')](_0x512fb3[_0x1f5570(0x1c0,'nS*b')]-0x4)+_0x512fb3['slice'](-0x2);return _0x26106a;}['_formatAcountsMessage'](){const _0x2cd83d=_0xd9dfef;let _0x49a7c5=[];for(let {userName:_0x1b7cad,index:_0x282e65,messages:_0x401d57}of this['_accountsArray']){_0x401d57=_0x401d57[_0x2cd83d(0x20c,'NXTI')](_0x11ba94=>_0x11ba94!==null&&_0x11ba94!==undefined&&_0x11ba94!=='');const _0x28f557=_0x49a7c5[_0x2cd83d(0x1a3,'nS*b')](_0x2a7086=>_0x2a7086[_0x2cd83d(0x1ae,'pWW#')]===_0x1b7cad);_0x28f557?(_0x28f557[_0x2cd83d(0x24f,'Z8D6')]===''&&(_0x28f557[_0x2cd83d(0x263,'#cB0')]=_0x282e65),_0x401d57['length']>0x0&&_0x28f557[_0x2cd83d(0x224,'fzp6')]['push'](..._0x401d57)):_0x49a7c5[_0x2cd83d(0x1f5,'zcL6')]({'userName':_0x1b7cad,'index':_0x282e65,'messages':_0x401d57});}_0x49a7c5=_0x49a7c5[_0x2cd83d(0x1ce,'y)5n')](_0x24dcb1=>_0x24dcb1[_0x2cd83d(0x260,'wf$i')][_0x2cd83d(0x223,'JB(N')]>0x0),this[_0x2cd83d(0x23f,'$B#k')]&&_0x49a7c5[_0x2cd83d(0x218,'OQ4#')](_0x12179d=>{const _0x52068a=_0x2cd83d;_0x12179d['messages']=this[_0x52068a(0x250,'R[]7')](_0x12179d[_0x52068a(0x1f0,'pWW#')],this['_autoMergeType']);}),this['_accountsArray']=_0x49a7c5;}}module['exports']=new Notification(); -------------------------------------------------------------------------------- /utils/baseCookie.js: -------------------------------------------------------------------------------- 1 | function setBaseCookie() { 2 | var cookie = []; 3 | 4 | function genUuid() { 5 | return new Date().getTime() + '' + parseInt(2147483647 * Math.random()); 6 | } 7 | 8 | function setCookie(e, t, i) { 9 | if (e) { 10 | var n = ''; 11 | if (i) { 12 | var a = new Date(); 13 | a.setTime(a.getTime() + i), (n = ';expires=' + a.toGMTString()); 14 | } 15 | document.cookie = e + '=' + t + n + ';path=/;domain=jd.com;'; 16 | } 17 | } 18 | 19 | function setJdv(e, t) { 20 | var i = isPrey(10) && (!e || e.length > 400) ? t + '|direct|-|none|-|' + new Date().getTime() : e; 21 | setCookie('__jdv', i, 1296000000); 22 | } 23 | 24 | function isPrey(e) { 25 | if (e >= 100) return !0; 26 | var t = uuid, 27 | r = t.substr(t.length - 2); 28 | return !!r && 1 * r < e; 29 | } 30 | 31 | var r = 122270672, 32 | i = genUuid(), 33 | s = parseInt(new Date().getTime() / 1e3); 34 | var uuid = i; 35 | 36 | setCookie('__jda', [r, i, s, s, s, 1].join('.'), 15552000000); 37 | setCookie('__jdb', [r, 1, i + '|' + 1, s].join('.'), 1800000); 38 | var j = encodeURIComponent([r, 'direct', '-', 'none', '-', new Date().getTime()].join('|')); 39 | setJdv(j, r); 40 | setCookie('__jdc', r); 41 | setCookie('mba_muid', encodeURI(i)); 42 | 43 | return cookie.join(''); 44 | } 45 | 46 | module.exports.setBaseCookie = setBaseCookie; 47 | -------------------------------------------------------------------------------- /utils/jsToken.js: -------------------------------------------------------------------------------- 1 | var axios = require('axios'); 2 | var qs = require('qs'); 3 | 4 | function TDEncrypt(l) { 5 | l = JSON.stringify(l); 6 | l = encodeURIComponent(l); 7 | var k = '', 8 | f = 0; 9 | do { 10 | var h = l.charCodeAt(f++); 11 | var d = l.charCodeAt(f++); 12 | var a = l.charCodeAt(f++); 13 | var b = h >> 2; 14 | h = ((h & 3) << 4) | (d >> 4); 15 | var e = ((d & 15) << 2) | (a >> 6); 16 | var c = a & 63; 17 | isNaN(d) ? (e = c = 64) : isNaN(a) && (c = 64); 18 | k = 19 | k + 20 | '23IL 0) { 43 | inputUrl = inputUrl.substring(0, queryIndex); 44 | } 45 | 46 | d = inputUrl.substring(l.length); 47 | } catch (error) { 48 | console.error('Error parsing URL:', error); 49 | } 50 | 51 | return d; 52 | } 53 | 54 | async function getJsToken( 55 | userAgent = 'jdapp;android;11.2.8;;;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36', 56 | url = 'https://plus.m.jd.com/', 57 | bizId = 'JD-PLUS', 58 | ) { 59 | const d = TDEncrypt({ 60 | ts: { deviceTime: Date.now(), deviceEndTime: Date.now() + 10 }, 61 | ca: { 62 | tdHash: '5b7096a993d442aef38ceb90cce4b485', 63 | contextName: 'webgl,experimental-webgl', 64 | webglversion: 'WebGL 1.0 (OpenGL ES 2.0 Chromium)', 65 | shadingLV: 'WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)', 66 | vendor: 'WebKit', 67 | renderer: 'WebKit WebGL', 68 | extensions: [ 69 | 'ANGLE_instanced_arrays', 70 | 'EXT_blend_minmax', 71 | 'EXT_clip_control', 72 | 'EXT_color_buffer_half_float', 73 | 'EXT_depth_clamp', 74 | 'EXT_disjoint_timer_query', 75 | 'EXT_float_blend', 76 | 'EXT_frag_depth', 77 | 'EXT_polygon_offset_clamp', 78 | 'EXT_shader_texture_lod', 79 | 'EXT_texture_compression_bptc', 80 | 'EXT_texture_compression_rgtc', 81 | 'EXT_texture_filter_anisotropic', 82 | 'EXT_texture_mirror_clamp_to_edge', 83 | 'EXT_sRGB', 84 | 'KHR_parallel_shader_compile', 85 | 'OES_element_index_uint', 86 | 'OES_fbo_render_mipmap', 87 | 'OES_standard_derivatives', 88 | 'OES_texture_float', 89 | 'OES_texture_float_linear', 90 | 'OES_texture_half_float', 91 | 'OES_texture_half_float_linear', 92 | 'OES_vertex_array_object', 93 | 'WEBGL_blend_func_extended', 94 | 'WEBGL_color_buffer_float', 95 | 'WEBGL_compressed_texture_s3tc', 96 | 'WEBGL_compressed_texture_s3tc_srgb', 97 | 'WEBGL_debug_renderer_info', 98 | 'WEBGL_debug_shaders', 99 | 'WEBGL_depth_texture', 100 | 'WEBGL_draw_buffers', 101 | 'WEBGL_lose_context', 102 | 'WEBGL_multi_draw', 103 | 'WEBGL_polygon_mode', 104 | ], 105 | wuv: 'Google Inc. (Intel)', 106 | wur: 'ANGLE (Intel, Intel(R) UHD Graphics 730 (0x00004C8B) Direct3D11 vs_5_0 ps_5_0, D3D11)', 107 | }, 108 | m: { compatMode: 'CSS1Compat' }, 109 | n: { 110 | vendorSub: '', 111 | productSub: '20030107', 112 | vendor: 'Google Inc.', 113 | maxTouchPoints: 1, 114 | pdfViewerEnabled: false, 115 | hardwareConcurrency: 12, 116 | cookieEnabled: true, 117 | appCodeName: 'Mozilla', 118 | appName: 'Netscape', 119 | appVersion: getAppVersionFromUserAgent(userAgent), 120 | platform: 'Win32', 121 | product: 'Gecko', 122 | userAgent: userAgent, 123 | language: 'zh-CN', 124 | onLine: true, 125 | webdriver: false, 126 | javaEnabled: false, 127 | deprecatedRunAdAuctionEnforcesKAnonymity: true, 128 | deviceMemory: 8, 129 | enumerationOrder: [ 130 | 'vendorSub', 131 | 'productSub', 132 | 'vendor', 133 | 'maxTouchPoints', 134 | 'scheduling', 135 | 'userActivation', 136 | 'doNotTrack', 137 | 'geolocation', 138 | 'connection', 139 | 'plugins', 140 | 'mimeTypes', 141 | 'pdfViewerEnabled', 142 | 'webkitTemporaryStorage', 143 | 'webkitPersistentStorage', 144 | 'windowControlsOverlay', 145 | 'hardwareConcurrency', 146 | 'cookieEnabled', 147 | 'appCodeName', 148 | 'appName', 149 | 'appVersion', 150 | 'platform', 151 | 'product', 152 | 'userAgent', 153 | 'language', 154 | 'languages', 155 | 'onLine', 156 | 'webdriver', 157 | 'getGamepads', 158 | 'javaEnabled', 159 | 'sendBeacon', 160 | 'vibrate', 161 | 'deprecatedRunAdAuctionEnforcesKAnonymity', 162 | 'protectedAudience', 163 | 'bluetooth', 164 | 'storageBuckets', 165 | 'clipboard', 166 | 'credentials', 167 | 'keyboard', 168 | 'managed', 169 | 'mediaDevices', 170 | 'storage', 171 | 'serviceWorker', 172 | 'virtualKeyboard', 173 | 'wakeLock', 174 | 'deviceMemory', 175 | 'userAgentData', 176 | 'login', 177 | 'ink', 178 | 'mediaCapabilities', 179 | 'hid', 180 | 'locks', 181 | 'gpu', 182 | 'mediaSession', 183 | 'permissions', 184 | 'presentation', 185 | 'usb', 186 | 'xr', 187 | 'serial', 188 | 'adAuctionComponents', 189 | 'runAdAuction', 190 | 'canLoadAdAuctionFencedFrame', 191 | 'canShare', 192 | 'share', 193 | 'clearAppBadge', 194 | 'getBattery', 195 | 'getUserMedia', 196 | 'requestMIDIAccess', 197 | 'requestMediaKeySystemAccess', 198 | 'setAppBadge', 199 | 'webkitGetUserMedia', 200 | 'clearOriginJoinedAdInterestGroups', 201 | 'createAuctionNonce', 202 | 'joinAdInterestGroup', 203 | 'leaveAdInterestGroup', 204 | 'updateAdInterestGroups', 205 | 'deprecatedReplaceInURN', 206 | 'deprecatedURNToURL', 207 | 'getInstalledRelatedApps', 208 | 'registerProtocolHandler', 209 | 'unregisterProtocolHandler', 210 | ], 211 | }, 212 | p: [], 213 | w: { devicePixelRatio: 4, screenTop: 0, screenLeft: 0 }, 214 | s: { availHeight: 740, availWidth: 360, colorDepth: 24, height: 740, width: 360, pixelDepth: 24 }, 215 | sc: { 216 | ActiveBorder: 'rgb(0, 0, 0)', 217 | ActiveCaption: 'rgb(0, 0, 0)', 218 | AppWorkspace: 'rgb(255, 255, 255)', 219 | Background: 'rgb(255, 255, 255)', 220 | ButtonFace: 'rgb(240, 240, 240)', 221 | ButtonHighlight: 'rgb(240, 240, 240)', 222 | ButtonShadow: 'rgb(240, 240, 240)', 223 | ButtonText: 'rgb(0, 0, 0)', 224 | CaptionText: 'rgb(0, 0, 0)', 225 | GrayText: 'rgb(109, 109, 109)', 226 | Highlight: 'rgba(0, 86, 205, 0.8)', 227 | HighlightText: 'rgb(255, 255, 255)', 228 | InactiveBorder: 'rgb(0, 0, 0)', 229 | InactiveCaption: 'rgb(255, 255, 255)', 230 | InactiveCaptionText: 'rgb(128, 128, 128)', 231 | InfoBackground: 'rgb(255, 255, 255)', 232 | InfoText: 'rgb(0, 0, 0)', 233 | Menu: 'rgb(255, 255, 255)', 234 | MenuText: 'rgb(0, 0, 0)', 235 | Scrollbar: 'rgb(255, 255, 255)', 236 | ThreeDDarkShadow: 'rgb(0, 0, 0)', 237 | ThreeDFace: 'rgb(240, 240, 240)', 238 | ThreeDHighlight: 'rgb(0, 0, 0)', 239 | ThreeDLightShadow: 'rgb(0, 0, 0)', 240 | ThreeDShadow: 'rgb(0, 0, 0)', 241 | Window: 'rgb(255, 255, 255)', 242 | WindowFrame: 'rgb(0, 0, 0)', 243 | WindowText: 'rgb(0, 0, 0)', 244 | }, 245 | ss: { cookie: true, localStorage: true, sessionStorage: true, globalStorage: false, indexedDB: true }, 246 | tz: -480, 247 | lil: '', 248 | wil: '', 249 | }); 250 | 251 | const a = TDEncrypt({ 252 | pin: '', 253 | oid: '', 254 | bizId: bizId, 255 | fc: '', 256 | mode: 'strict', 257 | p: 's', 258 | fp: 'b772d9635edebaa1a47c5a1fd086186a', 259 | ctype: 1, 260 | v: '3.2.1.0', 261 | f: '3', 262 | o: getCurrentPageUrl(url), 263 | qs: '', 264 | qi: '', 265 | }); 266 | 267 | let { status, data } = await axios({ 268 | method: 'POST', 269 | url: `https://jra.jd.com/jsTk.do?a=${encodeURIComponent(a)}`, 270 | headers: { 271 | 'User-Agent': userAgent, 272 | 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8', 273 | }, 274 | data: qs.stringify({ 275 | d: d, 276 | }), 277 | }); 278 | if (status === 200 && data.data) { 279 | return data.data; 280 | } else return null; 281 | } 282 | 283 | module.exports.getJsToken = getJsToken; 284 | 285 | -------------------------------------------------------------------------------- /utils/rs_config.js: -------------------------------------------------------------------------------- 1 | //环境变量配置文件,一般请勿修改 2 | 3 | const rsbels_config = {} 4 | 5 | module.exports = rsbels_config 6 | --------------------------------------------------------------------------------