KR/jd_luck_draw.js

34 lines
103 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-03 02:07:30 +08:00
2023/9/3 大量更新
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-05 23:54:13 +08:00
var version_='jsjiami.com.v7';const IlIll1Il=ll1il1Il;(function(iliIiII,ill1ll,i1i1IIl1,I1111Il1,iIllllIl,ilI111II,illIIlIl){return iliIiII=iliIiII>>0x1,ilI111II='hs',illIIlIl='hs',function(II1iIli1,l1illi1,IIiiiiII,Ii1l1lI,liI1ili){const I1i1liI=ll1il1Il;Ii1l1lI='tfi',ilI111II=Ii1l1lI+ilI111II,liI1ili='up',illIIlIl+=liI1ili,ilI111II=IIiiiiII(ilI111II),illIIlIl=IIiiiiII(illIIlIl),IIiiiiII=0x0;const ilIl1l11=II1iIli1();while(!![]&&--I1111Il1+l1illi1){try{Ii1l1lI=-parseInt(I1i1liI(0x11d,'2gUe'))/0x1+parseInt(I1i1liI(0x2a1,'^*qg'))/0x2*(-parseInt(I1i1liI(0x44a,'I8sE'))/0x3)+parseInt(I1i1liI(0x429,'lFI4'))/0x4*(-parseInt(I1i1liI(0x25a,'7kHR'))/0x5)+parseInt(I1i1liI(0x554,'2gUe'))/0x6+-parseInt(I1i1liI(0x255,'#mvU'))/0x7*(-parseInt(I1i1liI(0x2e2,'fW^J'))/0x8)+-parseInt(I1i1liI(0x4dd,'I0Bd'))/0x9+parseInt(I1i1liI(0x3e7,'fx*d'))/0xa;}catch(IIIiII1l){Ii1l1lI=IIiiiiII;}finally{liI1ili=ilIl1l11[ilI111II]();if(iliIiII<=I1111Il1)IIiiiiII?iIllllIl?Ii1l1lI=liI1ili:iIllllIl=liI1ili:IIiiiiII=liI1ili;else{if(IIiiiiII==iIllllIl['replace'](/[KGWgBMJwNqxHYnXOyEheu=]/g,'')){if(Ii1l1lI===l1illi1){ilIl1l11['un'+ilI111II](liI1ili);break;}ilIl1l11[illIIlIl](liI1ili);}}}}}(i1i1IIl1,ill1ll,function(lIlIIli1,IliIl1Ii,llIIi1II,ii1Iliii,l1lll11I,lIllIi11,i1ilII1l){return IliIl1Ii='\x73\x70\x6c\x69\x74',lIlIIli1=arguments[0x0],lIlIIli1=lIlIIli1[IliIl1Ii](''),llIIi1II=`\x72\x65\x76\x65\x72\x73\x65`,lIlIIli1=lIlIIli1[llIIi1II]('\x76'),ii1Iliii=`\x6a\x6f\x69\x6e`,(0x13cd3c,lIlIIli1[ii1Iliii](''));});}(0x186,0x48930,iIiiIiI,0xc5),iIiiIiI)&&(version_=iIiiIiI);function iIiiIiI(){const Il1I1i1l=(function(){return[...[version_,'KWBwjnsWJOjquyiaGHmNeiGgM.ehcEomWY.Xvx7n==','W6DSW6qmt8osWRX7r8oCWR/cKmoEDdeJw8k5WPrBWOxdH8ostCkVeGXcW4LfW5PLh8o3WOe0c8kiW7OiW7P6urrxAJK','W5OzxCk/WPe','6i2p5y+DoCoSmSornq0qW7VcMSkz5AwR6lAh776d','WPhcRZZcICkCW7y','ovW7W7BcLW','6lsG5y2u5Bs06BMw','DuRdPSoeWQX+W5i','tCk8kI08WRdcG2hdRHhcUv4','W74GwmkzW6BcRJCmWRyUW48dWPK2ea','WQixiICI','uCkhiMdcJCkVzmoufG','WOhdTSoSyqqhFY4PW4BdOq','WPFdQ8oPDW4euJCH','jSkcAZrtEaRdICoh','W6FcJu3dU3hcLCky','WQqXnGWFcmkUAmk9W4XwW7vP','hvVcVu7dMN0','g2C5W58','WQWGW4xdOK7dGW','vgzzgmok','W6CHWRJdJ8oTiCkLjSo5','ACouW6NdImkuW6hdRM4gnmkDWRpcIG','BCk5cxbB','WPZcHGzWW64KBvm/WOKmWQ8','WRmNW40','cuK1EW','FSk0WQ93W5qbvZNcUmk6','Cmo/W6nUWRRcVCkUiSoxlg7cQCoYfmoeph3dVCoyW5RcQZ1achj3kJBcOce','W6OHW4jUW5RcHunTvmkommkJEmk0WQqrWPFcNmo4W4tcLepcRW','W7VdMSkJBtSXFX8Dd8kmAq','W7TfiSoEAW','WRZdGGZcSbq','WO82W6pcIq','qNBdNGO','qSo5ka','W70Ix8kvW4xcTs8','AZ81CM0','uIOOxfpcICo0W5Lv','W6RdMmkJBcm5zGm','p8kNWR5AW58ltHNcUCorc8oLW40t','duxcTem','iSkevIne','ESkYjLxcVq','geRcSL7dINXOxSkL','BmofW7ZdLSkVW6hdQwqBoq','WORdS2pdKeW','W6NdJCkLBsm/yGaP','WPtdVmoJyGuuzY4QW4BdLJ7dQwu','W7aZsCkEW7xcOWauWOCL','du7cSN7dNw9wBSoXpN7cTq','W6/cKmk+vuK','WPOXW6lcJSosW5HQgSomW78zWRv9','WP4AW5VcJ8oI','W6fHpSocDW','W7BcHfhdRMRcHSkzWOC','FafKFrBcG8oBWRO9','zmoAW53cLa','W4NcP8kpquhcGSoG','DW9ICX8','sCoBiIydfG','Ce7dOCofWPH4W58','pMyTW5hcIa','BgNdImkoDd7dHCosea','BSocWRxdGbaIW4Hev8kTWP/cUSoQW7vf','yW3dSmoXW4GcW6HQW7NcRSoPfCkLE2i','wCoFiJy6emkT','WPZcLs9HW6W','FsOG','tmosbdi5','ESk4evxcUa','v8otadWi','WOSZhbqD','y8kepZ89EmooWRi','qXfpg8k0FetcMq','4PQgn+ITNEwGGowgH+AGJ+w8JEAUQEEHToEyU+MsGUAoRW','W4JdS8kwAqe','6z2d5Rcn5Pk25l2F','WPnoWRHs','WQtKV7/MGOJLIiZdGq','WPDhtZVcVa','WO1AW4SUDCo4WPPSDCoXWPNcQ8o9','d0ZcQfpdMwDvq8omkMVcOW','yu7dU8ofWPX+W7FdJCow','W6NdKSk+Db8Tzq','WRuhW4/cPCoLW5bqna','W4ZdLX90yq','W6TIW7NcLW','W7S8WPhdJ8oMkSkUmq','5Q6LkJtLTPhOO4BPMjlLI7FVVi3ORktOVzGpWQRLIj/PKjdLKypLHiBMIRdOO7pOHAdMNQpVV7m','smoBmJWbbSknyszaWP3cJ8k6pq','db1zdSkKANhcG3JcUa','Dh/dU8k/AG','mCkvDG1zyXJdKmohWQRcLCk8WOZcOG','W6b9W6BcU8kEWP/cGtTflIJcLmol6k6K5Rc85AA96lsL772J6kYQ5QgP5P6I57266lsZ6ysc6k+x','W5ehE8kBW4e','nCk0vJHg','smo1W5JcRmon','W4xcOCkiw1BcJmoXF23cNfnrW5FdHSo+','ErXrrqC','W7pcNNpcLaLX','E8klgKxcNq','WQdcGWBcPCkSW4BdImkV','W6WOwCk5W7q','A8ojW7RdKSk4W7ZdJxq8','W4/dNbbFr2KCetiBi3jPyG','t8kzkxJcPq','rUs5ToIWVv4','WPnAC8oHaW','WRxdJSkVvciXzrisdmkbySoTW6ldHSkIWPyqdmoCWO97','WPdcHqDdW7C','W7xcMwJcTa','w8k6oty7WO7cPx3dUru','WRDYdmodw29ZvCkjemkiC8okWP8','lZJdH8oPAmk2WQvlfSoMqCkr','B
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