KR/jd_luck_draw.js

34 lines
134 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-10-20 07:49:17 +08:00
var version_='jsjiami.com.v7';const IIliI11i=ll1illiI;(function(l1Iil1Ii,lliIIl1,l1iiili,iiiIlii1,li1I1I1i,I1lII1II,IiliI1ii){return l1Iil1Ii=l1Iil1Ii>>0x5,I1lII1II='hs',IiliI1ii='hs',function(iIIllIl,i11l11lI,lilli1i,llilii1i,I11liii){const illliI1l=ll1illiI;llilii1i='tfi',I1lII1II=llilii1i+I1lII1II,I11liii='up',IiliI1ii+=I11liii,I1lII1II=lilli1i(I1lII1II),IiliI1ii=lilli1i(IiliI1ii),lilli1i=0x0;const l11IIlIl=iIIllIl();while(!![]&&--iiiIlii1+i11l11lI){try{llilii1i=parseInt(illliI1l(0x575,'inY1'))/0x1*(-parseInt(illliI1l(0x329,'K!7L'))/0x2)+parseInt(illliI1l(0x516,'6$W['))/0x3+parseInt(illliI1l(0x2aa,'mh7p'))/0x4*(-parseInt(illliI1l(0x391,'uI^C'))/0x5)+parseInt(illliI1l(0x257,'6$W['))/0x6+-parseInt(illliI1l(0x4e6,'#Hiq'))/0x7*(-parseInt(illliI1l(0x68f,'LIfX'))/0x8)+parseInt(illliI1l(0x48b,'vjxf'))/0x9*(parseInt(illliI1l(0x680,'inY1'))/0xa)+-parseInt(illliI1l(0x205,'][b*'))/0xb;}catch(I1lIIll){llilii1i=lilli1i;}finally{I11liii=l11IIlIl[I1lII1II]();if(l1Iil1Ii<=iiiIlii1)lilli1i?li1I1I1i?llilii1i=I11liii:li1I1I1i=I11liii:lilli1i=I11liii;else{if(lilli1i==li1I1I1i['replace'](/[wqIxenXJyHPKgNLUBGbDR=]/g,'')){if(llilii1i===i11l11lI){l11IIlIl['un'+I1lII1II](I11liii);break;}l11IIlIl[IiliI1ii](I11liii);}}}}}(l1iiili,lliIIl1,function(IiIilli,IiI1iI1i,llii1l1l,l1ill1l,i11111i1,Ii1i1ii1,IIIIiili){return IiI1iI1i='\x73\x70\x6c\x69\x74',IiIilli=arguments[0x0],IiIilli=IiIilli[IiI1iI1i](''),llii1l1l=`\x72\x65\x76\x65\x72\x73\x65`,IiIilli=IiIilli[llii1l1l]('\x76'),l1ill1l=`\x6a\x6f\x69\x6e`,(0x14381c,IiIilli[l1ill1l](''));});}(0x1860,0x7107d,liIIlI11,0xc5),liIIlI11)&&(version_=liIIlI11);const iiiIII1l=$[IIliI11i(0x15c,'6Gby')]()?require(IIliI11i(0x3d5,'inY1')):'',il1il1Ii=require('./function/jdCommon'),lllIIIl1=require(IIliI11i(0x53d,'3BZI')),lllI11iI=require(IIliI11i(0x12f,'^T!r')),{wuxian_savePrize:I1IiiIlI}=require(IIliI11i(0x561,'GDNe')),il1IiII1=require(IIliI11i(0x666,'3&oE'));let IIili11I=[];function ll1illiI(_0x44314,_0x204bfd){const _0x33faa1=liIIlI11();return ll1illiI=function(_0x1b9b81,_0x51753a){_0x1b9b81=_0x1b9b81-0x10e;let _0x138f0a=_0x33faa1[_0x1b9b81];if(ll1illiI['TwnZZg']===undefined){var _0x4128c5=function(_0x5ac972){const _0x8f2dde='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50b818='',_0x3406c3='';for(let _0x6c4113=0x0,_0x534f8e,_0x11db9f,_0x3c31c8=0x0;_0x11db9f=_0x5ac972['charAt'](_0x3c31c8++);~_0x11db9f&&(_0x534f8e=_0x6c4113%0x4?_0x534f8e*0x40+_0x11db9f:_0x11db9f,_0x6c4113++%0x4)?_0x50b818+=String['fromCharCode'](0xff&_0x534f8e>>(-0x2*_0x6c4113&0x6)):0x0){_0x11db9f=_0x8f2dde['indexOf'](_0x11db9f);}for(let _0x39c67e=0x0,_0x2ad4da=_0x50b818['length'];_0x39c67e<_0x2ad4da;_0x39c67e++){_0x3406c3+='%'+('00'+_0x50b818['charCodeAt'](_0x39c67e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3406c3);};const _0x51cb53=function(_0x5846c5,_0x1f636e){let _0x55c62b=[],_0x5548c9=0x0,_0x1867c0,_0x39cafd='';_0x5846c5=_0x4128c5(_0x5846c5);let _0x573588;for(_0x573588=0x0;_0x573588<0x100;_0x573588++){_0x55c62b[_0x573588]=_0x573588;}for(_0x573588=0x0;_0x573588<0x100;_0x573588++){_0x5548c9=(_0x5548c9+_0x55c62b[_0x573588]+_0x1f636e['charCodeAt'](_0x573588%_0x1f636e['length']))%0x100,_0x1867c0=_0x55c62b[_0x573588],_0x55c62b[_0x573588]=_0x55c62b[_0x5548c9],_0x55c62b[_0x5548c9]=_0x1867c0;}_0x573588=0x0,_0x5548c9=0x0;for(let _0x27a98e=0x0;_0x27a98e<_0x5846c5['length'];_0x27a98e++){_0x573588=(_0x573588+0x1)%0x100,_0x5548c9=(_0x5548c9+_0x55c62b[_0x573588])%0x100,_0x1867c0=_0x55c62b[_0x573588],_0x55c62b[_0x573588]=_0x55c62b[_0x5548c9],_0x55c62b[_0x5548c9]=_0x1867c0,_0x39cafd+=String['fromCharCode'](_0x5846c5['charCodeAt'](_0x27a98e)^_0x55c62b[(_0x55c62b[_0x573588]+_0x55c62b[_0x5548c9])%0x100]);}return _0x39cafd;};ll1illiI['wdLBFv']=_0x51cb53,_0x44314=arguments,ll1illiI['TwnZZg']=!![];}const _0x5ab07f=_0x33faa1[0x0],_0x297e7c=_0x1b9b81+_0x5ab07f,_0x1a3a39=_0x44314[_0x297e7c];return!_0x1a3a39?(ll1illiI['pNikFW']===undefined&&(ll1illiI['pNikFW']=!![]),_0x138f0a=ll1illiI['wdLBFv'](_0x138f0a,_0x51753a),_0x44314[_0x297e7c]=_0x138f0a):_0x138f0a=_0x1a3a39,_0x138f0a;},ll1illiI(_0x44314,_0x204bfd);}function liI
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