KR/jd_luck_draw.js

34 lines
135 KiB
JavaScript
Raw Normal View History

2023-07-27 16:14:01 +08:00
/*
2023-09-03 02:07:30 +08:00
活动名称店铺抽奖 · 超级无线/超级会员
活动链接https://lzkj-isv.isvjd.com/lzclient/<活动id>/cjwx/common/entry.html?activityId=<活动id>&gameType=<玩法类型>
https://lzkj-isv.isvjd.com/wxDrawActivity/activity/activity?activityId=<活动id>
2023-07-27 16:14:01 +08:00
https://cjhy-isv.isvjcloud.com/wxDrawActivity/activity/activity?activityId=<活动id>
环境变量LUCK_DRAW_URL // 活动链接
2023-09-03 02:07:30 +08:00
LUCK_DRAW_NOTIFY // 是否推送通知true/false默认不推送
LUCK_DRAW_OPENCARD // 是否入会true/false默认不入会
2023-09-03 17:41:54 +08:00
LUCK_DRAW_BREAK // 493后继续执行默认退出运行true/false
2023-09-03 02:07:30 +08:00
LUCK_DRAW_INTERVAL // 自定义抽奖间隔正整数默认1秒
LUCK_DRAW_MAX_MISS // 最大连续未抽中次数(正整数),达到此次数后会跳过运行对应账号,默认不启用此功能
LUCK_DRAW_NUM //运行账号数量默认运行前7
LUCK_DRAW_Number // 连续无次数跳出,默认 7 次,火爆账号请设置黑名单,否则也会占用次数
2023-07-27 16:14:01 +08:00
LUCK_DRAW_BLACKLIST 黑名单 &隔开 pin值
2023-09-03 02:36:30 +08:00
JD_LZ_OPEN // 是否开启LZ活动运行true/false默认运行
JD_CJ_OPEN // 是否开启CJ活动运行true/false默认运行
2023-07-27 16:14:01 +08:00
2023-09-03 10:16:18 +08:00
只有在没有抽奖次数的情况下才会去做任务获取部分活动涉及定制接口会导致请求响应非法操作
2023-07-27 16:14:01 +08:00
2023-09-08 09:15:50 +08:00
2023/9/8 修复 500错误 修复黑名单无效
2023-07-27 16:14:01 +08:00
cron:1 1 1 1 *
============Quantumultx===============
[task_local]
2023-09-03 17:41:54 +08:00
#店铺抽奖通用活动
1 1 1 1 * jd_luck_draw.js, tag=店铺抽奖通用活动, enabled=true
2023-07-27 16:14:01 +08:00
2023-09-03 02:07:30 +08:00
*/
2023-07-27 16:14:01 +08:00
2023-09-03 02:07:30 +08:00
const $ = new Env('店铺抽奖(超级无线/超级会员)');
2023-09-21 08:49:50 +08:00
var version_='jsjiami.com.v7';const i11iII11=illi11il;(function(I1iIiIi1,iilIIli,iIIIIli,iliIIIIi,illIlilI,llI1ii1,ii1l1ilI){return I1iIiIi1=I1iIiIi1>>0x1,llI1ii1='hs',ii1l1ilI='hs',function(I11l1i1i,IIII1ii1,l1IIIlI,lliiI1,l1iliI11){const IilI1Iii=illi11il;lliiI1='tfi',llI1ii1=lliiI1+llI1ii1,l1iliI11='up',ii1l1ilI+=l1iliI11,llI1ii1=l1IIIlI(llI1ii1),ii1l1ilI=l1IIIlI(ii1l1ilI),l1IIIlI=0x0;const iiII1lii=I11l1i1i();while(!![]&&--iliIIIIi+IIII1ii1){try{lliiI1=parseInt(IilI1Iii(0x64d,'oh&M'))/0x1+-parseInt(IilI1Iii(0x163,'ll)R'))/0x2*(-parseInt(IilI1Iii(0xcd,'Dz@Z'))/0x3)+-parseInt(IilI1Iii(0x2ce,'Or&E'))/0x4+parseInt(IilI1Iii(0x64f,'Or&E'))/0x5*(-parseInt(IilI1Iii(0x134,'JD&9'))/0x6)+-parseInt(IilI1Iii(0x27d,'FRUz'))/0x7+parseInt(IilI1Iii(0x4b0,'DmI^'))/0x8+parseInt(IilI1Iii(0x1ac,'n@m4'))/0x9;}catch(Ii1l1lli){lliiI1=l1IIIlI;}finally{l1iliI11=iiII1lii[llI1ii1]();if(I1iIiIi1<=iliIIIIi)l1IIIlI?illIlilI?lliiI1=l1iliI11:illIlilI=l1iliI11:l1IIIlI=l1iliI11;else{if(l1IIIlI==illIlilI['replace'](/[rbKNqDGLOQEkefnlFSI=]/g,'')){if(lliiI1===IIII1ii1){iiII1lii['un'+llI1ii1](l1iliI11);break;}iiII1lii[ii1l1ilI](l1iliI11);}}}}}(iIIIIli,iilIIli,function(I1Illl,IIiIiiil,l1i1l1,i11ilIi1,I11IiIil,Iiilll1I,lIIl11ll){return IIiIiiil='\x73\x70\x6c\x69\x74',I1Illl=arguments[0x0],I1Illl=I1Illl[IIiIiiil](''),l1i1l1=`\x72\x65\x76\x65\x72\x73\x65`,I1Illl=I1Illl[l1i1l1]('\x76'),i11ilIi1=`\x6a\x6f\x69\x6e`,(0x13f321,I1Illl[i11ilIi1](''));});}(0x18a,0x94448,iiiillI,0xc7),iiiillI)&&(version_=iiiillI);const li1Ii11I=$['isNode']()?require(i11iII11(0x200,'Vc%k')):'',l1Ili1iI=require(i11iII11(0x5ab,'&N0s')),l1i1iIii=require('./function/sendJDNotify'),lIi1l=require(i11iII11(0x472,'9Z$&')),iIili1li=require('./function/krgetToken'),{wuxian_savePrize:i1liIl1l}=require(i11iII11(0x359,'8TOL')),IllIii1=require(i11iII11(0x4d0,'@MCg'));function iiiillI(){const liI1lIiI=(function(){return[...[version_,'bOjqsNjLfiarmliFK.Oclonm.vLK7KkIeEQGSSkD==','WO3cLJJdMCk7tSoYoCoP','ACkCWRZdKW','jg7dMHNdO8o5','W65gh8o2ua','uSoNAmowgINcVG','wCoOEmoFoJ/cT2q','ivJdLSoGWOG','W4igWOxdSaa','mSkmWQtcH1y','lCo3W6JdISoju2NdSrCn','W7XwW6HmWQC','WPPJECkxW4S','W7pdUqBcKCoSWQK9Cs5CW7tdPq3dUSoxW54','5P+d6igP6i+Q5y+p5REA5yIZ5l6T5OgF','WQdcJftcHX8','umo7W59pWQa','W7ZNUlJLJyJdHW','W6FcNCo4W5LpW5Sey2tdTuG','C8oQW4urtG','W507WR3cRWG','xmk7WP3dVM4BAmo9s8knuq','WQ8GCSoiW7hdIay','WOxcIZ4','W7jeW4veWRFdIrv4WOOTcSoD','z8oupWpdNq','yePTWRTAxsm4','W4SFWRRcGWW','W6lcK8o6W7fsW40NxMddVv4V','W6pdO2ZdSSkN','W6SOWQRcId/dSSo9W75IW6Wzeq','d8o7W7ldL8oAvgNcPqOqWOPP','h8kdWPxcPKK','W6DZa8oRyCoPW41XiZ/cIK4GgstdGSku','B0b6WRLcvtOKpmkhfq','WPXDyq','5P2+6ikM6i665y6t5yUH5REU5yQv5l2O5Oou','q8oYACoAitZcU3hdJW','WQ5CEa','W4BcGXapBW','WPpdRctdI8o4cJu8W5tdHeWWW4tdOfroW48mb8oRW7qhq8kIW5BcUJS+qCo/uvFcTSovi8kPWOBcSNzGW7NdSG98srxdPbSrWRjPWRldLmkdW7/cNmoMWR3cMezcW7/cUSoAxSo4qHb4W7S0smkxDr3cLmkiWPZcLrldKmkeW4ZdUf5ibKeFWRhdGH/cLXVdJ8knWRJdS8kSWOldHmkmWQSBl8k1WRuyWQ1nWQPBW43cOmoNW5xdL8kdW7/cQxtdHbzrpI1OWQujWPjNWQHrimorBNxcMGdcQarAW4KkuxpcN8ozD1farCojwtdcOZRcV3KuW59CW7NcOmoQWPBdOmoeW58oCmkVuvv3wdVcUmkfgCoVWQFcIZ3dGx/dTmk9W4BdKSoHWRpdM8klqJhcOSosbHm','aCkAcq','eSkYW448WQPW','Dw/dRSoRW7K','fgruoCkdpsVdJgxcUWyC','W63cJY0dDq','oYTOk8ksWRrpW60','CfhdT8o7bW','5RsF5yI85Bwg57U55P6r5OUw5lUR5A2x5z26','BqeqWRSn','DCk+WQtdVKa','8kkeTo+7JSoE','tCo8W4CKxa','h8kQWOJcUNK','WQe5WQ3cLdNdKmo1W6HJWQizex0aW5hdICkKsSotdCktWPxdGXG','W7rSW6LiWRq','imk8xhVcGCoAWP86uLJdHmogW5q','yvz6WPzyxsK','W5RdLgZdPSk8CCovpmo8','WO/dSbDjWQpdSHHchmoIFLNcUG0WWRK+bIWPW7LBamkTW7xcPIFcVbrQh2KEWOpcUCk4ktW6WQNcPXtdVCk0E2lcTZK+bSokW7xcLxPTWO7cTSkCn8opqCo3uZCiySoolW4eWPFcGXtdNsGoWRldIKn6W47cRHXyWOavWO9EeCoEWPBcJhBdSSktbmk2eGxdSmoefmokW4ZdHHrSi8kRW5pdJGpcLmkSx8kWWQ7cQszlW7JdMmoxW5qGW7RcU8k1mmkvWRFdTx8AxCkhWOhdO3VcV1XtEraNW51Xfmozz3nEyNNcOX/dLmkbBI3dMSo2vSotphBdQSk5FCofW60KW7aQWRJcISkNemk1v8oquMRcMaWxbSk7l8oegmo/WQFcOdxdK8k3W5q0W4W','WPvwECk4W7VdTq','aujpkSkd','j0zEcCka','DZWWWOuGWRNdRwfO','zLRdQSoGW7m','WOxdUZO','W7JcLYGdse3cO0ZdUG','W6tcTmoyW6Dy','qvxdT8oYgSoGW5a','W4eaW4qCBq','W7hcGmo9W49fW5GPEMW','A0FdMa','kCoMW67dJmonD3JdUY0iWP1P','WR/dOZfYWRm','gr1bnSkc','ueddTSo+iCo1W5u9Ca','gSk1
2023-07-27 16:14:01 +08:00
// prettier-ignore
2023-09-03 02:07:30 +08:00
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.d