From b67a6b152989b7017b03074e9e973cfac5aa64c5 Mon Sep 17 00:00:00 2001 From: Faker Date: Sun, 10 Jul 2022 18:53:20 +0800 Subject: [PATCH] update --- gua_wealth_island.js | 119 +- gua_wealth_island_help.js | 615 +++++++ jd_dpqd.js | 20 +- jd_joy_run_reward.ts | 88 + jd_ry.js | 3493 +++++++++++++++++++++++++++++++++---- jd_share.js | 68 +- 6 files changed, 4026 insertions(+), 377 deletions(-) create mode 100644 gua_wealth_island_help.js create mode 100644 jd_joy_run_reward.ts diff --git a/gua_wealth_island.js b/gua_wealth_island.js index b064ef1..56f2ff8 100644 --- a/gua_wealth_island.js +++ b/gua_wealth_island.js @@ -1,11 +1,11 @@ /* https://st.jingxi.com/fortune_island/index2.html - 18 0-23/2 * * * https://raw.githubusercontent.com/11111120/scripts/master/gua_wealth_island.js 财富大陆 + 33 0,6-23/2 * * * https://raw.githubusercontent.com/smiek2121/scripts/master/gua_wealth_island.js 财富大陆 */ -const $ = new Env('财富大陆'); +const $ = new Env('京喜财富岛'); const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; // const notify = $.isNode() ? require('./sendNotify') : ''; CryptoScripts() @@ -50,6 +50,7 @@ $.appId = 10032; 我把它放在一个神奇的岛屿 去找吧 `) + $.pearlEnd = false await requestAlgo(); for (let i = 0; i < cookiesArr.length; i++) { if (cookiesArr[i]) { @@ -83,7 +84,7 @@ async function run() { if($.HomeInfo){ $.InviteList.push($.HomeInfo.strMyShareId) - console.log(`等级:${$.HomeInfo.dwLandLvl} 当前金币:${$.HomeInfo.ddwCoinBalance} 当前财富:${$.HomeInfo.ddwRichBalance} 助力码:${$.HomeInfo.strMyShareId}`) + console.log(`等级:${$.HomeInfo.dwLandLvl} 当前金币:${addChineseUnit($.HomeInfo.ddwCoinBalance, 4)} 当前财富:${addChineseUnit($.HomeInfo.ddwRichBalance, 4)} 助力码:${$.HomeInfo.strMyShareId}`) } if($.LeadInfo && $.LeadInfo.dwLeadType == 2){ await $.wait(2000) @@ -113,7 +114,7 @@ async function run() { // 导游 await Guide() // 撸珍珠 - await Pearl() + if (!$.pearlEnd) await Pearl() // 牛牛任务 await ActTask() // 日常任务、成就任务 @@ -151,7 +152,7 @@ async function XBDetail(){ 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},获得 ${res.AwardInfo.ddwValue} 金币`) + console.log(`${res.strAwardDesc},获得 ${addChineseUnit(res.AwardInfo.ddwValue, 4)} 金币`) } else if (res.AwardInfo.dwAwardType === 1) { console.log(`${res.strAwardDesc},获得 ${res.AwardInfo.ddwValue} 财富`) } else { @@ -351,7 +352,7 @@ async function StoryInfo(){ async function buildList(){ try{ await $.wait(2000) - console.log(`\n升级房屋、收集金币`) + console.log(`\n升级房屋、收集金币\n(升级:需要当前金币大于升级金币的2.5倍)`) if($.buildList){ for(let i in $.buildList){ let item = $.buildList[i] @@ -369,18 +370,21 @@ async function buildList(){ 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升级->需要金币:${GetBuildInfo.ddwNextLvlCostCoin} 获得财富:${GetBuildInfo.ddwLvlRich}` + if(GetBuildInfo) msg += `\n升级->需要金币:${addChineseUnit(GetBuildInfo.ddwNextLvlCostCoin, 4)} 获得财富:${GetBuildInfo.ddwLvlRich}` console.log(msg) await $.wait(1000) if(GetBuildInfo.dwCanLvlUp > 0){ - console.log(`${item.dwLvl == 0 && '开启' || '升级'}${title}`) if(item.dwLvl == 0){ + console.log(`开启${title}`) await taskGet(`user/createbuilding`, stk, additional) + await $.wait(2000) }else{ - if(GetBuildInfo){ + 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) @@ -388,15 +392,16 @@ async function buildList(){ stk = `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` // await taskGet(`story/QueryUserStory`, stk, additional) } + await $.wait(2000) } } - 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(`收集金币:${CollectCoin.ddwCoin} 当前剩余:${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` @@ -652,6 +657,12 @@ 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 = '' @@ -743,7 +754,7 @@ async function ActTask(){ res.data.prizeInfo = $.toObj(res.data.prizeInfo) } if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney){ - console.log(`${item.strTaskName} 领取奖励:${res.data.prizeInfo.ddwCoin && res.data.prizeInfo.ddwCoin+'金币' || ''} ${res.data.prizeInfo.ddwMoney && 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)) } @@ -759,7 +770,7 @@ async function ActTask(){ // 热气球接客 await service(b) await $.wait((Number(item.dwLookTime) * 1000) || 1000) - }else if(item.dwPointType == 301){ + }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=`) } @@ -769,8 +780,8 @@ async function ActTask(){ 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 && res.data.prizeInfo.ddwCoin+'金币' || ''} ${res.data.prizeInfo.ddwMoney && res.data.prizeInfo.ddwMoney+'财富' || ''}`) + 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)) } @@ -793,7 +804,7 @@ async function UserTask(){ 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日常任务、成就任务`) + 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 @@ -805,7 +816,7 @@ async function UserTask(){ 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 && ' '+res.data.prizeInfo.ddwCoin+'金币' || ''}${res.data.prizeInfo.ddwMoney && ' '+res.data.prizeInfo.ddwMoney+'财富' || ''}${res.data.prizeInfo.strPrizeName && ' '+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)) } @@ -815,7 +826,7 @@ async function UserTask(){ await $.wait(1000) } if(item.dateType == 2){ - if(item.completedTimes < item.targetTimes && ![7,8,9,10].includes(item.orderId)){ + 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++){ @@ -829,7 +840,7 @@ async function UserTask(){ 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 && ' '+res.data.prizeInfo.ddwCoin+'金币' || ''}${res.data.prizeInfo.ddwMoney && ' '+res.data.prizeInfo.ddwMoney+'财富' || ''}${res.data.prizeInfo.strPrizeName && ' '+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)) } @@ -858,7 +869,7 @@ function printRes(res, msg=''){ result = res.Data } if(result.ddwCoin || result.ddwMoney || result.strPrizeName || result.StagePrizeInfo && result.StagePrizeInfo.strPrizeName){ - console.log(`${msg}获得:${result.ddwCoin && ' '+result.ddwCoin+'金币' || ''}${result.ddwMoney && ' '+result.ddwMoney+'财富' || ''}${result.strPrizeName && ' '+result.strPrizeName+'红包' || ''}${result.StagePrizeInfo && result.StagePrizeInfo.strPrizeName && ' '+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){ @@ -984,7 +995,7 @@ function getGetRequest(type, stk='', additional='') { "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", "Connection": "keep-alive", - 'Cookie': $.cookie, + 'Cookie': `cid=4;${$.cookie}`, 'Host': 'm.jingxi.com', "Referer": "https://st.jingxi.com/", "User-Agent": UA, @@ -1002,7 +1013,7 @@ function biz(contents){ "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", "Connection": "keep-alive", - 'Cookie': $.cookie, + 'Cookie': `cid=4;${$.cookie}`, 'Host': 'm.jingxi.com', "Referer": "https://st.jingxi.com/", "User-Agent": UA, @@ -1298,6 +1309,69 @@ function timeFn(dateBegin) { 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 { @@ -1317,3 +1391,4 @@ function CryptoScripts() { 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 new file mode 100644 index 0000000..b3ce056 --- /dev/null +++ b/gua_wealth_island_help.js @@ -0,0 +1,615 @@ +/* + 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/jd_dpqd.js b/jd_dpqd.js index 7b56609..3da43fc 100644 --- a/jd_dpqd.js +++ b/jd_dpqd.js @@ -25,7 +25,7 @@ let vender='' let num=0 let shopname='' const token = [ - "3F56A097F60FF8E435784C2B1102D82B", + "374951B8D50E5D4E01E40153413F00E9", "1565B6639C0F5315D41C7D07129EBB9C", "3949F55A02AA8A345409AFD9821C861F", "C387DE3A3F4381FB3E451F0C40069FE6", @@ -34,29 +34,27 @@ const token = [ "62CED31ECD51A5D51A2BBB9FB793393A", "2ED2F283E4640130BA5128E8BBDC3DDA", "1DD46671387EAC6FDC14B753E01D5E30", - "0F14035F1DDD2F44460D36B0A007A548", + "55F4692F86018A4E5FE035E96942C985", "662E62C629FB6B20CED938E41A0DC026", "F573A078062F9F18BFCC39080864D7F5", "D7DCB5D6D847EB0167C2B0A180B95F68", "F7534A237EC4CFD50B8901BEF08E6FB7", "6F92A6B2AF1D1C6BA2315F12C15194D2", - "3F5E5185BCDF88ADEF76867A9CC7AD44", + "137B6809356B33FFACA79B8D6115208F", "9112C9042DF613BFAD089EDA19485E86", "67D2D5824D043A5C2EA9C53B900B932C", "43FE9201AB1206649B74BE1487A4BB3C", - "9C6F1F170565F3FA9253FCC9375248C0", + "A3DD0D4F4068F0FA9671937E4CC402CD", "AA515683C3F7D2A4797AD5B4B52E4496", - "BFD5D11942F2349BBB3F910BCE954E8F", + "205E1E703925C48276C0DEBF16C6CBAD", "DC2D503AEC0235CB3F574DE47192325A", "921478C146E5C60F2444E3978AC8E94F", "65F125FA81931EFB87E3558AB203D3E3", - "6A1D522B151D1245362A9EED52D50CC6", - "20564C6C72406F2707C9069D113B4449", + "DCD4903E0278DBA70A302612F411876F", + "DB872465EDEB653BB501819F9B9DD326", "D4BE8025929E6D662FBCB9F946BF4215", - "28F4291D4B1829B2B10193786F6005C0", - "BC28601FD2C5B9A5D50038825C842358", - "A622DB2BAEB4C3B6054CE62968371E43", - "7879A6C855D8D5D52F6329A59DA949FF" + "4299C28E3A8C24A1E38E5D90B70C3107", + "BC28601FD2C5B9A5D50038825C842358" ] if ($.isNode()) { diff --git a/jd_joy_run_reward.ts b/jd_joy_run_reward.ts new file mode 100644 index 0000000..d8b129a --- /dev/null +++ b/jd_joy_run_reward.ts @@ -0,0 +1,88 @@ +/** +汪汪赛跑-提现10元 +2 0 0 * * 5 jd_joy_run_reward.ts +new Env('汪汪赛跑提现') +Modify By Dylan from HW +updateTime:2022-07-09 +**/ + +import {get, post, requireConfig, wait} from './function/TS_USER_AGENTS' +import {H5ST} from "./function/h5st" + +let cookie: string = '', res: any = '', UserName: string = '', fp_448de: string = '' || process.env.FP_448DE, fp_b6ac3: string = '' || process.env.FP_B6AC3 +let h5stTool: H5ST = null + +!(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`) + 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}) + rewardAmount = res.data.rewardAmount + if (res.data.runningCashStatus.currentEndTime && res.data.runningCashStatus.status === 0) { + console.log('可提现', rewardAmount) + res = await api('runningPrizeDraw', {"linkId": "L-sOanK_5RJCz7I314FpnQ", "type": 2, "level": 3}) + await wait(2000) + if (res.success){ + console.log(res.data.message) + } else { + console.log('提现失败:', res.errMsg) + } + }else{ + console.log('还未到提现时间') + } + } catch (e) { + console.log('Error', e) + await wait(1000) + } + } +})() + +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 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 + }) +} diff --git a/jd_ry.js b/jd_ry.js index 949c6d0..3690d6a 100644 --- a/jd_ry.js +++ b/jd_ry.js @@ -1,337 +1,3220 @@ /* +默认开卡、加购。 + +7.6-7.31 荣耀7月搜索有奖 +============Quantumultx=============== [task_local] -#荣耀抽奖机活动 -40 0 * * * jd_618jk.js, tag=荣耀抽奖机活动, enabled=true - */ -const $ = new Env('荣耀抽奖机活动'); -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; +#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') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -$.configCode = "aa6afd716cda497ab83d3f452443ecf6"; +const notify = $.isNode() ? require('./sendNotify') : ''; //IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; +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 = () => { - }; + 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); + 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 () => { - console.log('入口下拉:https://prodev.m.jd.com/mall/active/3z1Vesrhx3GCCcBn2HgbFR4Jq68o/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 (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - await jdmodule(); - //await showMsg(); - } + $.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) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -function showMsg() { - return new Promise(resolve => { - $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); - resolve() - }) -} + .catch((e) => $.logErr(e)) + .finally(() => $.done()) -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); + 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 } -} - - -// 获取任务 -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); - } + 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 + } } - } 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"), - } + } + }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 safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; +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 []; + 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; + } } -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']; +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)); + } + } - // 随机产生 - if (randomFlag) { - range = Math.round(Math.random() * (max - min)) + min; + 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; } - for (var i = 0; i < range; i++) { - pos = Math.round(Math.random() * (arr.length - 1)); - str += arr[pos]; + + 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 str; + 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_share.js b/jd_share.js index 654dc03..974b2af 100644 --- a/jd_share.js +++ b/jd_share.js @@ -1,40 +1,25 @@ -/* -活动地址为:https://lzkjdz-isv.isvjcloud.com/wxShareActivity/activity/6432842?activityId=xxxxx -一共有2个变量 -jd_fxyl_activityId 活动ID 必需 - - -其他变量: -OWN_COOKIE_NUM 需要被助力的人数 -HELP_COOKIE_NUM 助力的人数 - -作者:小埋 - -cron:1 1 1 1 * -============Quantumultx=============== -[task_local] -#LZ分享有礼 -1 1 1 1 * jd_share.js, tag=LZ分享有礼, enabled=true - +/* +https://t.me/okyydsnb +活动可能只限制,店铺会员参与, 不会自动入会。 +export jd_fxyl_activityId="xxx" 活动id +export OWN_COOKIE_NUM="4" 需要助力数量 非必须 +cron "1 1 1 1 1" jd_share.js */ -const $ = new Env("LZ分享有礼"); + +const $ = new Env("分享有礼"); const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; const notify = $.isNode() ? require('./sendNotify') : ''; let cookiesArr = [], cookie = '', message = ''; let authorCodeList = []; -let ownCookieNum = 3; -let helpCookieNum = 5; +let ownCookieNum = 1; let isGetAuthorCodeList = true -let activityId = '' +let activityId = '5da58c75d1204bd1a873c568567844a9' let activityShopId = '' -if (process.env.HELP_COOKIE_NUM && process.env.HELP_COOKIE_NUM != 5) { - helpCookieNum = process.env.HELP_COOKIE_NUM; -} -if (process.env.OWN_COOKIE_NUM && process.env.OWN_COOKIE_NUM != 3) { +if (process.env.OWN_COOKIE_NUM && process.env.OWN_COOKIE_NUM != 4) { ownCookieNum = process.env.OWN_COOKIE_NUM; } -if (process.env.jd_fxyl_activityId && process.env.jd_fxyl_activityId != "") { +if (process.env.jd_fxyl_activityId) { activityId = process.env.jd_fxyl_activityId; } @@ -52,13 +37,17 @@ if ($.isNode()) { 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 (!activityId) { + console.log('export jd_fxyl_activityId="xxx" 未设置 退出!!!'); + return; + } isGetAuthorCodeList = true; - console.log(`【入口:\nhttps://lzkjdz-isv.isvjcloud.com/wxShareActivity/activity/activity?activityId=${activityId}】`) for (let i = 0; i < ownCookieNum; i++) { if (cookiesArr[i]) { cookie = cookiesArr[i] @@ -76,7 +65,7 @@ if ($.isNode()) { // } continue } - + $.bean = 0; $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); @@ -86,14 +75,13 @@ if ($.isNode()) { $.activityShopId = '' $.activityUrl = `https://lzkjdz-isv.isvjcloud.com/wxShareActivity/activity/${$.authorNum}?activityId=${$.activityId}&friendUuid=${encodeURIComponent($.authorCode)}&shareuserid4minipg=null&shopid=${$.activityShopId}` await share(); - await $.wait(1000) activityShopId = $.venderId; } } isGetAuthorCodeList = false; console.log('需要助力助力码') console.log(authorCodeList) - for (let i = 0; i < helpCookieNum; i++) { + for (let i = 0; i < cookiesArr.length; i++) { if (cookiesArr[i]) { cookie = cookiesArr[i] originCookie = cookiesArr[i] @@ -101,7 +89,7 @@ if ($.isNode()) { $.index = i + 1; $.isLogin = true; $.nickName = ''; - $.errorMessage = '' + $.errorMessage = '' await checkCookie(); console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); if (!$.isLogin) { @@ -111,7 +99,7 @@ if ($.isNode()) { // } continue } - + $.bean = 0; $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); @@ -124,14 +112,15 @@ if ($.isNode()) { for(let i in authorCodeList){ $.authorCode = authorCodeList[i] console.log('去助力: '+$.authorCode) + await share(); - await $.wait(1000) if ($.errorMessage === '活动太火爆,还是去买买买吧') { break } - + // await $.wait(2000) } } + // await $.wait(2000) } for (let i = 0; i < ownCookieNum; i++) { if (cookiesArr[i]) { @@ -146,7 +135,7 @@ if ($.isNode()) { $.activityId = activityId $.activityShopId = activityShopId await getPrize(); - await $.wait(2000) + // await $.wait(2000) } } })() @@ -167,7 +156,7 @@ async function share() { if ($.token) { await getMyPing(); if ($.secretPin) { - await $.wait(2000) + await $.wait(500) await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=25&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); await task('activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&friendUuid=${encodeURIComponent($.authorCode)}`) } else { @@ -367,7 +356,7 @@ function getFirstLZCK() { } } } - $.cookie = cookie + $.cookie = cookie } } catch (error) { console.log(error) @@ -472,6 +461,7 @@ function checkCookie() { }) }) } + // 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) } +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